100+ integrations are ready to connect to your AI.Connect your first MCP

Greenhouse MCP server for your AI

Ask where a candidate stands, see which jobs are stalling and who has gone quiet, move people between stages, log notes and read scorecards, all in the Greenhouse account your hiring team already uses.

PopMCPGreenhouse

Where is Ada Byron in our hiring process, and what did her interviewers say?

Supported Greenhouse tools

Every documented operation in Greenhouse's Harvest API, with the everyday hiring tools loaded by default and the rest, from approvals and custom fields to prospect pools, your public job boards and the audit log, one search away.

201 tools in the full catalog: 95 read and 106 write. 42 load by default, and the rest are found with tool search.

greenhouse_create_application

Create a new application for an existing candidate.

greenhouse_hire_application

Mark an application as hired and close out the matching opening on the job.

greenhouse_list_applications

Applications represent a candidate's journey on a specific job, the bridge between a candidate (person) and a job.

greenhouse_list_users

Users are the Greenhouse accounts inside your organization, recruiters, hiring managers, interviewers, coordinators, sourcers, and site admins.

greenhouse_move_application

Advance the candidate to a new interview stage.

greenhouse_search_applications

Search applications through Greenhouse's full-text candidate search index, returning the same application shape as GET /v3/applications with richer pipeline filters (job status, department, office, hiring team, candidate tag, stage outcome, etc.).

greenhouse_unreject_application

Reverse a rejection, putting the application back into the in-process state on the stage it was rejected from.

greenhouse_update_application

Patch attribution and metadata fields on an existing application (source, referrer, recruiter, coordinator, prospect pool/stage, rejection date, custom fields).

greenhouse_create_candidate

Create a new candidate profile in your organization.

greenhouse_list_candidates

Candidates are the people your organization is recruiting, both active applicants and prospects.

greenhouse_search_candidates

Search candidates through Greenhouse's full-text candidate search index, returning the same candidate shape as GET /v3/candidates with richer pipeline filters (job, stage, recruiter, coordinator, source, candidate tag, prospect pool, etc.).

greenhouse_update_candidate

Patch an existing candidate's profile fields.

greenhouse_candidate_overview

Everything about one candidate in one call: profile, every application with its job and stage, recent notes, scorecards, interviews and the list of files.

greenhouse_download_attachment

Read a file on a candidate: a resume, cover letter, take-home test or offer document.

greenhouse_get_bulk_results

Read the row-by-row results of a finished bulk job, to see which rows failed and why.

greenhouse_get_record

Fetch ONE Greenhouse record by id: a candidate, application, job, offer, scorecard, interview, user, note or any other resource.

greenhouse_job_pipeline

See how a job's hiring is going: each interview stage in order, how many active candidates sit in it, and who has had no activity for stalled_days (default 14), oldest first.

greenhouse_list_openings

Openings are the individual headcount slots beneath a job, one opening per seat you intend to hire for.

greenhouse_move_application_to_stage

Move a candidate's application to another stage of the same job, by stage name, or to the next stage if you name none.

greenhouse_reject_application_by_reason

Reject a candidate's application with a reason given by name.

greenhouse_list_jobs

Jobs are the open requisitions and hiring plans your organization is recruiting against.

greenhouse_search_jobs

Search jobs by free-text term, returning the same job shape as GET /v3/jobs with hiring-team and custom-field filters (assigned user and role, department, office, external posting, custom field answer, templates).

greenhouse_update_job

Patch an existing job's editable fields.

greenhouse_create_interview

Record an interview that is already scheduled on an external calendar against a candidate's application at a specific slot on the job's interview plan.

greenhouse_create_note

Create a candidate note, log an email, or record an activity-feed entry on a candidate.

greenhouse_list_departments

Departments are the organizational units jobs are assigned to (e.g. Engineering, Marketing).

greenhouse_list_interviews

Interviews are scheduled interview events on a candidate's application, each row pairs an application with a slot on the job's interview plan (the job_interview) and carries the start/end time, location, organizer, video conferencing link, and lifecycle status.

greenhouse_list_notes

Notes are free-form entries on a candidate's profile, candidate notes, logged emails, system activity, interview feedback, and other entries that appear in the candidate activity feed.

greenhouse_list_offices

Offices are the organization's recruiting locations (e.g. San Francisco, New York, Remote (US)) and the foundational scoping unit for jobs, candidates, custom-field visibility, and pay-range display.

greenhouse_update_interview

Patch a scheduled interview's time, location, video conferencing link, external calendar event id, or interviewer panel.

greenhouse_create_applied_candidate_tag

Apply an existing tag to a candidate.

greenhouse_create_attachment

Attach a file to an existing application.

greenhouse_list_attachments

Attachments are files associated with an application, resumes, cover letters, take-home tests, offer documents, e-signed agreements, and other supporting documents.

greenhouse_list_candidate_tags

Candidate tags are the org-wide library of tag names available to apply to candidates (e.g. engineering, referral, 2026-grad).

greenhouse_list_job_posts

Job posts are the candidate-facing listings of a job.

greenhouse_list_offers

Offers are the formal job offers extended to a candidate's application.

greenhouse_list_scorecards

Scorecards are the per-interview evaluations that interviewers fill out: overall recommendation, key takeaways, private and public notes, and ratings on the interview kit's focus attributes.

greenhouse_update_offer

Patch fields on an existing offer.

greenhouse_list_rejection_reasons

Rejection reasons are the organization-defined dictionary of outcomes recorded when an application is rejected (e.g. Not a cultural fit, Lacking skill(s)/qualification(s), Wasn't interested, Didn't like offer, Spam).

greenhouse_list_application_stages

Application stages are the rows that make up a candidate's stage history on an application, one row per interview stage the application has occupied, with entered_at and exited_at timestamps.

greenhouse_list_job_interview_stages

Interview stages are the steps of a job's interview plan, for example Application Review, Phone Screen, Onsite, and Offer.

greenhouse_list_sources

Sources are the organization-defined dictionary of channels through which candidates enter the pipeline, job boards (e.g. LinkedIn, Indeed), agencies, referrals, internal applicants, prospecting tools, events, and other ways an application is attributed.

greenhouse_get_public_department

Read one department on a public job board, with its published jobs.

greenhouse_get_public_job

Read one published job post as candidates see it.

greenhouse_get_public_job_board

Read a public job board's name and intro text, as candidates see it.

greenhouse_get_public_office

Read one office on a public job board, with its published jobs.

greenhouse_get_public_section

Read one prospect post section of a public job board.

greenhouse_list_public_degrees

List the degrees an application form offers.

greenhouse_list_public_departments

List a public job board's departments with the jobs published in each.

greenhouse_list_public_disciplines

List the disciplines an application form offers.

greenhouse_list_public_jobs

List the jobs published on a public job board, as candidates see them.

greenhouse_list_public_offices

List a public job board's offices with the jobs published in each.

greenhouse_list_public_schools

List the schools an application form offers.

greenhouse_list_public_sections

List the prospect post sections of a public job board.

greenhouse_submit_job_application

Submit an application to a published job post, the way the careers page does.

greenhouse_activate_user

Reactivate a previously deactivated user so they can sign in to Greenhouse and be assigned to new jobs again.

greenhouse_bulk_activate_users

Reactivate up to the bulk-endpoint cap of users in a single request.

greenhouse_bulk_create_users

Create up to the bulk-endpoint cap of users in a single request.

greenhouse_bulk_deactivate_users

Deactivate up to the bulk-endpoint cap of users in a single request.

greenhouse_bulk_move_applications

Move many applications between stages, or to other jobs, in a single request.

greenhouse_bulk_revoke_user_permissions

Demote up to the bulk-endpoint cap of site admins to Basic users in a single request.

greenhouse_bulk_update_users

Update up to the bulk-endpoint cap of users in a single request.

greenhouse_convert_prospect_to_candidate

Promote a prospect application to a candidate application on a specific job.

greenhouse_create_user

Create a new Greenhouse user in your organization.

greenhouse_deactivate_user

Deactivate a Greenhouse user.

greenhouse_delete_application

Permanently delete a single application, along with its interview stages, scorecards, rejection details, and prospect details.

greenhouse_reject_application

Reject an application and record the reason.

greenhouse_revoke_user_permissions

Demote a Site Admin to a Basic user, removing their organization-wide access.

greenhouse_update_user

Patch an existing user's profile fields.

greenhouse_anonymize_candidate

Anonymize selected categories of personally identifiable data on a candidate (for GDPR, CCPA, or other right-to-be-forgotten requests).

greenhouse_bulk_create_candidates

Asynchronously create many candidate profiles in a single call, typically for HRIS sync workflows that create a batch of candidates at once.

greenhouse_delete_candidate

Permanently delete a candidate and all of their applications, attachments, scorecards, notes, and other associated records.

greenhouse_merge_candidates

Merge two candidate profiles by collapsing the candidate identified by secondary_candidate_id into the candidate at {id}.

greenhouse_bulk_create_blocked_spam_sources

Adds multiple blocked spam sources in a single request, typically used to sync the blocklist from an external security tool.

greenhouse_bulk_create_custom_field_options

Asynchronously add many options at once, typically for HRIS sync workflows that replace or extend a dropdown's option set in a single pass.

greenhouse_bulk_create_openings

Asynchronously add many openings across one or more jobs in a single call, typically for HRIS sync workflows that open or extend headcount on a batch of requisitions.

greenhouse_bulk_delete_blocked_spam_sources

Removes multiple blocked spam sources in a single request, identified by id.

greenhouse_bulk_delete_custom_field_options

Asynchronously archive many options at once by id.

greenhouse_bulk_delete_openings

Asynchronously remove many openings in a single call.

greenhouse_bulk_update_blocked_spam_sources

Updates the note on multiple blocked spam sources in a single request.

greenhouse_bulk_update_custom_field_options

Asynchronously edit the label, sort order, or external id of many options in one call, most often used to reorder a dropdown after an upstream HRIS reshuffle or to rename options en masse.

greenhouse_bulk_update_openings

Asynchronously patch many openings in a single call, commonly for HRIS integrations that close batches of headcount with status: "closed" and close_reason_id, or reconcile partner opening_id values after a sync.

greenhouse_create_blocked_spam_source

Adds a new IP address, CIDR range, email address, or email domain to the organization's spam blocklist.

greenhouse_create_custom_field_option

Add a new selectable value to a single_select or multi_select custom field.

greenhouse_create_opening

Add a new headcount slot to an existing job.

greenhouse_delete_blocked_spam_source

Removes a blocked spam source.

greenhouse_delete_custom_field_option

Archive a custom field option so it can no longer be selected on new records.

greenhouse_delete_opening

Permanently remove an opening from its job.

greenhouse_list_blocked_spam_sources

Lists the IP addresses, CIDR ranges, email addresses, and email domains the organization has blocked from submitting applications.

greenhouse_list_custom_field_options

Custom field options are the selectable values on a single_select or multi_select custom field, each row belongs to exactly one custom field via custom_field_id.

greenhouse_update_blocked_spam_source

Updates the note on a blocked spam source.

greenhouse_update_custom_field_option

Edit the display label, sort order, or external id of an existing custom field option.

greenhouse_update_opening

Patch an existing opening's editable fields, or change its status.

greenhouse_bulk_create_jobs

Asynchronously create many jobs in a single call, typically for HRIS sync workflows that open a batch of requisitions at once.

greenhouse_create_approval_flow

Create a multi-step approval flow on a job (and optionally a specific offer), seeded with the supplied approver groups.

greenhouse_create_job

Create a new job from an existing template.

greenhouse_list_approval_flows

Approval flows are the multi-step approval definitions attached to a job or to a candidate's offer.

greenhouse_replace_approval_flow_approver_groups

Wholesale-replace the ordered tiers of approvers on an existing approval flow, the V3 equivalent of rebuilding the flow's structure from an external HRIS.

greenhouse_request_approval_flow_approvals

Start an existing pending approval flow by emailing its initial approver(s) and recording who requested the approvals.

greenhouse_update_approval_flow

Toggle whether an existing approval flow is sequential (approver groups resolve one at a time in sort_order) or parallel (all groups activate at once).

greenhouse_bulk_create_user_job_permissions

Asynchronously grant Job Admin roles on specific jobs to many users in a single call.

greenhouse_bulk_update_departments

Asynchronously update many departments in a single request.

greenhouse_bulk_update_offices

Update up to the bulk-endpoint cap of offices in a single request.

greenhouse_create_custom_field

Add a new custom field to your organization's dictionary.

greenhouse_create_department

Create a department in the caller's organization.

greenhouse_create_job_note

Create a free-form note attached to a job.

greenhouse_create_office

Create a new office for the organization.

greenhouse_create_user_job_permission

Grant an user a Job Admin role on a single job.

greenhouse_delete_custom_field

Permanently delete a custom field from your organization's dictionary, along with all stored values on parent records (jobs, offers, candidates, applications, etc.) and any associated custom_field_options.

greenhouse_delete_interview

Cancel and delete a scheduled interview.

greenhouse_delete_job_note

Permanently delete a job note.

greenhouse_delete_note

Permanently delete a candidate note.

greenhouse_delete_user_job_permission

Revoke a single user job permission by id, removing that user's Job Admin role on the job.

greenhouse_list_custom_fields

Custom fields are the org-defined dictionary of structured data your organization layers onto core resources, jobs, offers, openings, candidates, applications, and users.

greenhouse_list_job_notes

Job notes are free-form, organization-internal notes attached to a job (the requisition).

greenhouse_list_user_job_permissions

User job permissions are the per-user, per-job access grants that pair an user with a Job Admin role on a specific job.

greenhouse_update_custom_field

Edit the definition of an existing custom field.

greenhouse_update_department

Update an existing department's name, external_id, or position in the department tree.

greenhouse_update_job_note

Update an existing job note.

greenhouse_update_note

Update a candidate note.

greenhouse_update_office

Update an existing office.

greenhouse_create_candidate_education

Add a new education entry to a candidate's profile.

greenhouse_create_candidate_employment

Add a new work history entry to a candidate's profile.

greenhouse_create_candidate_tag

Add a new tag to your organization's candidate-tag dictionary.

greenhouse_create_custom_field_department

Restrict a custom field's visibility to one additional department.

greenhouse_create_custom_field_office

Restrict a custom field's visibility to one additional office.

greenhouse_create_future_job_permission

Grant an user a Job Admin role on future jobs matching an optional department and/or office scope.

greenhouse_create_job_hiring_manager

Assign an user as a hiring manager on a job.

greenhouse_create_job_owner

Add an user to a job's hiring team as a recruiter, sourcer, or coordinator.

greenhouse_create_job_post

Create a new job post by duplicating an existing one.

greenhouse_create_job_post_location

Attach a location to an existing job_post.

greenhouse_create_offer

Create a new offer on an existing application.

greenhouse_create_scorecard

Create a scorecard for a given interview kit on a given application.

greenhouse_delete_applied_candidate_tag

Detach a single tag from a candidate.

greenhouse_delete_attachment

Permanently remove an attachment from its application.

greenhouse_delete_candidate_education

Remove a single education entry from a candidate's profile.

greenhouse_delete_candidate_employment

Remove a single employment entry from a candidate's profile.

greenhouse_delete_candidate_tag

Remove a tag from your organization's candidate-tag dictionary.

greenhouse_delete_custom_field_department

Remove a department from a custom field's visibility scope.

greenhouse_delete_custom_field_office

Remove an office from a custom field's visibility scope.

greenhouse_delete_future_job_permission

Revoke a single future job permission by id.

greenhouse_delete_job_hiring_manager

Unassign a hiring manager from a job by deleting the join row.

greenhouse_delete_job_owner

Remove an user from the hiring team in one role by deleting the join row.

greenhouse_delete_job_post_location

Detach a single location from a job post.

greenhouse_list_applied_candidate_tags

Applied candidate tags are the join rows between candidates and the organization's candidate-tag dictionary, one row per (candidate, tag) pair.

greenhouse_list_candidate_educations

Candidate educations are the school/degree/discipline entries on a candidate's profile, one row per education entry.

greenhouse_list_candidate_employments

Candidate employments are the work history entries on a candidate's profile, one row per employer/title the candidate has held.

greenhouse_list_custom_field_departments

A custom_field_department restricts a custom field's visibility to a single department, so the field only appears on jobs, offers, or candidates whose department matches.

greenhouse_list_custom_field_offices

A custom_field_office restricts a custom field's visibility to a single office, so the field only appears on jobs, openings, or offers whose office matches.

greenhouse_list_future_job_permissions

Future job permissions grant an user a Job Admin role on jobs that don't exist yet, when a new job is created in the matching department and/or office, the permission automatically assigns the user that role on the job.

greenhouse_list_job_hiring_managers

Job hiring managers are users designated as hiring managers on a job, typically the subject-matter expert for the role who reviews candidates in the Hiring Manager Review stage and receives notifications about new applicants.

greenhouse_list_job_owners

Job owners are the recruiters, sourcers, and coordinators on a job's hiring team, the users who own sourcing, recruiting, and scheduling work for the role.

greenhouse_list_job_post_locations

Job post locations are the join rows that attach one or more locations to a job_post, a multi-location posting (e.g. San Francisco, Remote (US), New York on a single role) has one row per location.

greenhouse_update_job_post

Edit a job post in place, change its public title, replace its HTML body, or transition its publication status between draft and live.

greenhouse_update_scorecard

Patch an existing scorecard.

greenhouse_create_referrer

Create a referrer that has no Greenhouse user account, such as an outside referrer, so applications can be credited to them.

greenhouse_create_user_email

Attach an additional email address to a Greenhouse user, the V3 replacement for V1 POST /users/{id}/email_addresses.

greenhouse_get_bulk_request

Retrieve a single bulk request, including the per-row success and failure result files.

greenhouse_get_rejection_reason

Retrieve a single rejection reason by id.

greenhouse_list_approver_groups

Approver groups are the ordered tiers of approvers inside a single approval flow on a job or offer.

greenhouse_list_bulk_requests

Bulk requests track the asynchronous bulk operations submitted to Harvest V3.

greenhouse_list_referrers

Referrers are the people credited with bringing a candidate into the pipeline, typically employees making referrals, but also agency recruiters, LinkedIn recruiters, or any other party captured under "Who Gets Credit" on a candidate's application.

greenhouse_list_rejection_details

Rejection details are the per-application rejection records, one row per rejected application, capturing who rejected it, when, why (the rejection reason), the linked rejection note, and any answers to the organization's rejection question custom fields.

greenhouse_list_user_emails

User emails are the email addresses attached to a Greenhouse user.

greenhouse_replace_approver_in_group

Swap one approver in an approver group for another user without rebuilding the rest of the approval flow, the V3 replacement for V1 PUT /v1/approval_flows/{id}/approver_groups/{id}/replace_approver.

greenhouse_update_rejection_detail

Patch the rejection reason or rejection question custom field answers on a rejected application without changing its rejected_at timestamp.

greenhouse_list_ai_opt_out_statuses

A candidate's decision to opt out of AI-assisted review (Talent Matching) for a specific job.

greenhouse_list_approvers

Approvers are the individual users assigned to approve a job, offer, or other approvable resource.

greenhouse_list_audit_log_events

Read the audit log: who changed or looked at what in Greenhouse in the last 30 days.

greenhouse_list_candidate_attribute_types

Candidate attribute types are the structured attribute dictionary on a job, the per-job catalogue of evaluable traits (e.g. JavaScript, Leadership, Years of experience) that get rated on scorecards and that AI matching uses to score candidate fit.

greenhouse_list_close_reasons

Close reasons are the organization-defined dictionary of outcomes recorded when an opening is closed (e.g. Hire - New Headcount, Hire - Backfill, On Hold, Not Filling).

greenhouse_list_default_interviewers

Default interviewers are the users pre-selected as the interview panel for a specific stage on a job.

greenhouse_list_demographic_answer_options

Demographic answer options are the selectable choices on a demographic_question.

greenhouse_list_demographic_answers

Demographic answers are individual applicant submissions to the organization's voluntary demographic questions on a job post, distinct from the federally-mandated EEOC questionnaire, which has its own resource.

greenhouse_list_demographic_question_sets

Demographic question sets are named groupings of demographic_questions an organization attaches to a job post or candidate survey to collect self-reported applicant demographic data (e.g. for DE&I reporting).

greenhouse_list_demographic_questions

Demographic questions are the voluntary self-identification prompts applicants see on job posts and candidate surveys (separate from the EEOC questionnaire, which carries its own legally-mandated wording).

greenhouse_list_eeoc

EEOC responses capture a candidate's voluntary self-identification of race, gender, veteran status, and disability status, collected via the federally-approved Equal Employment Opportunity Commission questionnaire.

greenhouse_list_email_templates

Email templates are reusable subject/body pairs your organization uses to communicate with candidates, prospects, and the hiring team.

greenhouse_list_focus_candidate_attributes

Focus candidate attributes are the subset of a job's job_candidate_attributes that an individual interview kit elevates as focus areas, the attributes Greenhouse highlights at the top of the interviewer's scorecard so they know which traits to prioritize for that interview.

greenhouse_list_interview_kits

Interview kits are the per-job, per-slot evaluation packets interviewers see when conducting an interview, the instructions, exercises, scorecard questions, and focus attributes attached to one slot on one job's interview plan.

greenhouse_list_interview_media

Interview media contains recordings and transcripts created by Greenhouse AI notetaking.

greenhouse_list_interviewer_tags

Interviewer tags are organization-defined labels assigned to interviewer users, such as "Bar Raiser," "Diversity Trained," or "Senior." They are surfaced as Interviewer Groups in the Greenhouse UI and used by schedulers to narrow the pool of interviewers when selecting one for a stage.

greenhouse_list_interviewers

Interviewers are the panel members on actual scheduled interviews, each row pairs one interview with one user (or, for external attendees, one email address).

greenhouse_list_job_board_custom_locations

Job board custom locations are the curated list of location strings a site admin maintains for posting jobs to a given job board.

greenhouse_list_job_boards

A job board is a destination an organization publishes job posts to, either the organization's single internal board (visible only to signed-in employees) or one of its external boards (public careers site, embedded iFrame, or syndicated integration).

greenhouse_list_job_candidate_attributes

Job candidate attributes are the per-job instances of a job's candidate_attribute_types, one row for each evaluable trait (e.g. JavaScript, Leadership) configured on a specific job.

greenhouse_list_job_interviews

Job interviews are the interview slots configured on a job's interview plan, the template definitions that say, for example, "this job's Onsite stage has a 30-minute recruiter chat, a 45-minute hiring manager interview, and a take-home test." Each slot belongs to a job_interview_stage on a specific job and carries the default name, duration, scheduling type, and scorecard requirement.

greenhouse_list_job_post_searchable_locations

Searchable locations are the individual geographic locations attached to a job post, one row per location, each with a formatted display string plus its component city, region (state/province), postal code, county, country, and latitude/longitude.

greenhouse_list_pay_input_ranges

Pay input ranges are the per-job-post minimum and maximum values for a pay component (e.g. base salary, bonus) referenced by a pay transparency rule.

greenhouse_list_pay_inputs

Pay inputs are the individual compensation components (e.g. Base Salary, Sign-on Bonus, Equity) that make up a Greenhouse pay transparency rule.

greenhouse_list_prospect_details

A prospect detail is the per-prospect record that captures where a candidate sits in the CRM: which prospect pool and stage they currently occupy, who owns them, and the department/office they are being considered for.

greenhouse_list_prospect_pool_stages

Prospect pool stages are the smaller buckets inside a prospect pool that recruiters use to track where each passive prospect sits in their nurture process, for example Not Reviewed, In Discussion, or Keep Warm - Senior.

greenhouse_list_prospect_pools

A prospect pool is an organization-defined collection of prospects (candidates not yet attached to a specific job), typically used to manage talent communities and sourcing pipelines.

greenhouse_list_scorecard_candidate_attributes

Scorecard candidate attributes are the per-scorecard ratings an interviewer captured on each focus attribute, what they thought of this candidate on each attribute on this scorecard.

greenhouse_list_scorecard_question_answer_options

Scorecard question answer options are the join rows between a scorecard question answer and the option(s) selected for it, one row per (scorecard_question_answer_id, scorecard_question_option_id) pair.

greenhouse_list_scorecard_question_answers

A scorecard question answer is one interviewer's response to a single question on a scorecard.

greenhouse_list_scorecard_question_candidate_attributes

Scorecard question candidate attributes are the join that tells an interviewer which focus attributes a given scorecard question is asking them to assess.

greenhouse_list_scorecard_question_options

Scorecard question options are the multiple-choice values shown to interviewers for single_select and multi_select scorecard_questions.

greenhouse_list_scorecard_questions

Scorecard questions are the prompts configured on an interview_kit that interviewers answer when submitting a scorecard.

greenhouse_list_tracking_links

Tracking links are unique short URLs (e.g. https://grnh.se/<token>) that an organization shares to attribute candidates to a source, campaign URLs, referral links, employee outreach, social posts, and third-party board placements.

greenhouse_list_user_roles

User roles are the organization-wide dictionary of access levels an user can hold, the categories themselves, not the per-user assignments.

Connect Greenhouse to Claude, ChatGPT and Claude Code

Credentials off one Greenhouse screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

As a Greenhouse Site Admin, open Configure, then Dev Center, then API Credentials, and create a credential with the API type Harvest V3 (OAuth). Copy the Client ID and Client secret into PopMCP, then tick what the AI may do under Manage scopes. There is no app to review and nothing to deploy.

Client IDPaste the Client ID
Client secret••••••••••••3f7a
Act as this user12345
ConnectionVerified

Then just ask for the work

  • “Where is Ada Byron in our hiring process, and what did her interviewers say?”

    • candidate_overview
  • “How is the Senior Engineer job going? Who has had no activity for two weeks?”

    • job_pipeline
  • “Move Ada's application to the Onsite stage”

    • candidate_overview
    • move_application_to_stage
  • “Which interviews are booked next week, and which scorecards are still missing?”

    • list_interviews
    • list_scorecards
  • “Add this candidate to the Product Designer job and note that a teammate referred her”

    • search_candidates
    • create_candidate
    • create_note
  • “Reject this application as lacking skills, with no email to the candidate”

    • reject_application_by_reason

Use Greenhouse from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Greenhouse MCP server questions

What teams ask before putting Greenhouse behind an AI client.

What does PopMCP need to connect Greenhouse?

A Client ID and Client secret from a Harvest V3 (OAuth) credential. A Site Admin makes one under Configure, Dev Center, API Credentials, then ticks what the AI may do under Manage scopes. Greenhouse shows the secret only once. PopMCP stores it encrypted, exchanges it for short-lived access tokens on the server, and shows you the organization it belongs to. The secret never reaches your AI client.

Which scopes should I tick?

Only what you want the AI to do. For reading, start with List on Candidates, Applications, Jobs, Job interview stages and Users, then add Notes, Interviews, Scorecards and Offers when you need them. To let it make changes, add scopes such as Move and Reject on Applications. If a tool needs a scope you did not tick, the AI is told which one, and you can add it without connecting again.

Why not just use an older Harvest API key?

Greenhouse is retiring Harvest v1 and v2 and the Basic-auth keys that go with them, and said those versions would stop on August 31, 2026. This connector is built on Harvest v3, which uses the Client ID and secret instead, so a new credential is the one to make.

How is candidate data handled?

Your credential's scopes decide what Greenhouse will hand over at all. Temporary file links are held back from the conversation, so a resume is opened only when the AI is asked to read it. Demographic and EEOC tools stay out of the everyday tool list, and the AI is told to read them only when asked.

Whose name do changes appear under in Greenhouse?

By default, the credential's own service user, which Greenhouse creates with it and which has organization-wide access. To show changes under a person instead, add their user id under More options when you connect. That person must be a Site Admin, and what they cannot see in Greenhouse, such as offers without the private-data permission, comes back empty.

Can I stop the AI from changing anything?

Yes, in two ways. Every connection starts read-only, and an owner or admin can allow write actions later. Separately, tick only List scopes on the credential and Greenhouse itself refuses every change.

Is this the same as Greenhouse's own MCP server?

No. Greenhouse's MCP server is in open beta with a curated set of tools, and each organization adds every client under Dev Center, MCP Access. PopMCP connects to the Harvest API directly, so it reaches every documented endpoint, and it uses a credential you control. Greenhouse's MCP audit events do not apply to this traffic: it appears in the audit log as API access.

Which Greenhouse events can start a workflow?

PopMCP can watch for new candidates and applications, stage moves, rejections, jobs opening or closing, offers, interviews, scorecards, notes and files by checking the matching lists for changes. Greenhouse's own webhooks are set up by hand in its settings and have no API, so nothing is registered on your account.

Do I have to run or host the Greenhouse MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Greenhouse to Claude Code?

Connect Greenhouse in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Greenhouse on the consent screen. The Greenhouse tools are then available in that session, and no Greenhouse credential is stored on your machine.

Why do only 42 of the 201 tools load by default?

Loading 201 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 42-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 201 here. A trigger is something PopMCP watches for you: 20 Greenhouse events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Greenhouse.

Connect Greenhouse to your AI in minutes

Launch a hosted MCP endpoint for Greenhouse, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP