greenhouse_create_ applicationCreate a new application for an existing candidate.
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
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_ applicationCreate a new application for an existing candidate.
greenhouse_hire_ applicationMark an application as hired and close out the matching opening on the job.
greenhouse_list_ applicationsApplications represent a candidate's journey on a specific job, the bridge between a candidate (person) and a job.
greenhouse_list_ usersUsers are the Greenhouse accounts inside your organization, recruiters, hiring managers, interviewers, coordinators, sourcers, and site admins.
greenhouse_move_ applicationAdvance the candidate to a new interview stage.
greenhouse_search_ applicationsSearch 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_ applicationReverse a rejection, putting the application back into the in-process state on the stage it was rejected from.
greenhouse_update_ applicationPatch attribution and metadata fields on an existing application (source, referrer, recruiter, coordinator, prospect pool/stage, rejection date, custom fields).
greenhouse_create_ candidateCreate a new candidate profile in your organization.
greenhouse_list_ candidatesCandidates are the people your organization is recruiting, both active applicants and prospects.
greenhouse_search_ candidatesSearch 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_ candidatePatch an existing candidate's profile fields.
greenhouse_candidate_ overviewEverything 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_ attachmentRead a file on a candidate: a resume, cover letter, take-home test or offer document.
greenhouse_get_ bulk_ resultsRead the row-by-row results of a finished bulk job, to see which rows failed and why.
greenhouse_get_ recordFetch ONE Greenhouse record by id: a candidate, application, job, offer, scorecard, interview, user, note or any other resource.
greenhouse_job_ pipelineSee 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_ openingsOpenings are the individual headcount slots beneath a job, one opening per seat you intend to hire for.
greenhouse_move_ application_ to_ stageMove 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_ reasonReject a candidate's application with a reason given by name.
greenhouse_list_ jobsJobs are the open requisitions and hiring plans your organization is recruiting against.
greenhouse_search_ jobsSearch 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_ jobPatch an existing job's editable fields.
greenhouse_create_ interviewRecord 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_ noteCreate a candidate note, log an email, or record an activity-feed entry on a candidate.
greenhouse_list_ departmentsDepartments are the organizational units jobs are assigned to (e.g. Engineering, Marketing).
greenhouse_list_ interviewsInterviews 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_ notesNotes 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_ officesOffices 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_ interviewPatch a scheduled interview's time, location, video conferencing link, external calendar event id, or interviewer panel.
greenhouse_create_ applied_ candidate_ tagApply an existing tag to a candidate.
greenhouse_create_ attachmentAttach a file to an existing application.
greenhouse_list_ attachmentsAttachments are files associated with an application, resumes, cover letters, take-home tests, offer documents, e-signed agreements, and other supporting documents.
greenhouse_list_ candidate_ tagsCandidate tags are the org-wide library of tag names available to apply to candidates (e.g. engineering, referral, 2026-grad).
greenhouse_list_ job_ postsJob posts are the candidate-facing listings of a job.
greenhouse_list_ offersOffers are the formal job offers extended to a candidate's application.
greenhouse_list_ scorecardsScorecards 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_ offerPatch fields on an existing offer.
greenhouse_list_ rejection_ reasonsRejection 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_ stagesApplication 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_ stagesInterview stages are the steps of a job's interview plan, for example Application Review, Phone Screen, Onsite, and Offer.
greenhouse_list_ sourcesSources 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_ departmentRead one department on a public job board, with its published jobs.
greenhouse_get_ public_ jobRead one published job post as candidates see it.
greenhouse_get_ public_ job_ boardRead a public job board's name and intro text, as candidates see it.
greenhouse_get_ public_ officeRead one office on a public job board, with its published jobs.
greenhouse_get_ public_ sectionRead one prospect post section of a public job board.
greenhouse_list_ public_ degreesList the degrees an application form offers.
greenhouse_list_ public_ departmentsList a public job board's departments with the jobs published in each.
greenhouse_list_ public_ disciplinesList the disciplines an application form offers.
greenhouse_list_ public_ jobsList the jobs published on a public job board, as candidates see them.
greenhouse_list_ public_ officesList a public job board's offices with the jobs published in each.
greenhouse_list_ public_ schoolsList the schools an application form offers.
greenhouse_list_ public_ sectionsList the prospect post sections of a public job board.
greenhouse_submit_ job_ applicationSubmit an application to a published job post, the way the careers page does.
greenhouse_activate_ userReactivate a previously deactivated user so they can sign in to Greenhouse and be assigned to new jobs again.
greenhouse_bulk_ activate_ usersReactivate up to the bulk-endpoint cap of users in a single request.
greenhouse_bulk_ create_ usersCreate up to the bulk-endpoint cap of users in a single request.
greenhouse_bulk_ deactivate_ usersDeactivate up to the bulk-endpoint cap of users in a single request.
greenhouse_bulk_ move_ applicationsMove many applications between stages, or to other jobs, in a single request.
greenhouse_bulk_ revoke_ user_ permissionsDemote up to the bulk-endpoint cap of site admins to Basic users in a single request.
greenhouse_bulk_ update_ usersUpdate up to the bulk-endpoint cap of users in a single request.
greenhouse_convert_ prospect_ to_ candidatePromote a prospect application to a candidate application on a specific job.
greenhouse_create_ userCreate a new Greenhouse user in your organization.
greenhouse_deactivate_ userDeactivate a Greenhouse user.
greenhouse_delete_ applicationPermanently delete a single application, along with its interview stages, scorecards, rejection details, and prospect details.
greenhouse_reject_ applicationReject an application and record the reason.
greenhouse_revoke_ user_ permissionsDemote a Site Admin to a Basic user, removing their organization-wide access.
greenhouse_update_ userPatch an existing user's profile fields.
greenhouse_anonymize_ candidateAnonymize selected categories of personally identifiable data on a candidate (for GDPR, CCPA, or other right-to-be-forgotten requests).
greenhouse_bulk_ create_ candidatesAsynchronously create many candidate profiles in a single call, typically for HRIS sync workflows that create a batch of candidates at once.
greenhouse_delete_ candidatePermanently delete a candidate and all of their applications, attachments, scorecards, notes, and other associated records.
greenhouse_merge_ candidatesMerge two candidate profiles by collapsing the candidate identified by secondary_candidate_id into the candidate at {id}.
greenhouse_bulk_ create_ blocked_ spam_ sourcesAdds multiple blocked spam sources in a single request, typically used to sync the blocklist from an external security tool.
greenhouse_bulk_ create_ custom_ field_ optionsAsynchronously 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_ openingsAsynchronously 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_ sourcesRemoves multiple blocked spam sources in a single request, identified by id.
greenhouse_bulk_ delete_ custom_ field_ optionsAsynchronously archive many options at once by id.
greenhouse_bulk_ delete_ openingsAsynchronously remove many openings in a single call.
greenhouse_bulk_ update_ blocked_ spam_ sourcesUpdates the note on multiple blocked spam sources in a single request.
greenhouse_bulk_ update_ custom_ field_ optionsAsynchronously 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_ openingsAsynchronously 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_ sourceAdds a new IP address, CIDR range, email address, or email domain to the organization's spam blocklist.
greenhouse_create_ custom_ field_ optionAdd a new selectable value to a single_select or multi_select custom field.
greenhouse_create_ openingAdd a new headcount slot to an existing job.
greenhouse_delete_ blocked_ spam_ sourceRemoves a blocked spam source.
greenhouse_delete_ custom_ field_ optionArchive a custom field option so it can no longer be selected on new records.
greenhouse_delete_ openingPermanently remove an opening from its job.
greenhouse_list_ blocked_ spam_ sourcesLists the IP addresses, CIDR ranges, email addresses, and email domains the organization has blocked from submitting applications.
greenhouse_list_ custom_ field_ optionsCustom 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_ sourceUpdates the note on a blocked spam source.
greenhouse_update_ custom_ field_ optionEdit the display label, sort order, or external id of an existing custom field option.
greenhouse_update_ openingPatch an existing opening's editable fields, or change its status.
greenhouse_bulk_ create_ jobsAsynchronously create many jobs in a single call, typically for HRIS sync workflows that open a batch of requisitions at once.
greenhouse_create_ approval_ flowCreate a multi-step approval flow on a job (and optionally a specific offer), seeded with the supplied approver groups.
greenhouse_create_ jobCreate a new job from an existing template.
greenhouse_list_ approval_ flowsApproval flows are the multi-step approval definitions attached to a job or to a candidate's offer.
greenhouse_replace_ approval_ flow_ approver_ groupsWholesale-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_ approvalsStart an existing pending approval flow by emailing its initial approver(s) and recording who requested the approvals.
greenhouse_update_ approval_ flowToggle 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_ permissionsAsynchronously grant Job Admin roles on specific jobs to many users in a single call.
greenhouse_bulk_ update_ departmentsAsynchronously update many departments in a single request.
greenhouse_bulk_ update_ officesUpdate up to the bulk-endpoint cap of offices in a single request.
greenhouse_create_ custom_ fieldAdd a new custom field to your organization's dictionary.
greenhouse_create_ departmentCreate a department in the caller's organization.
greenhouse_create_ job_ noteCreate a free-form note attached to a job.
greenhouse_create_ officeCreate a new office for the organization.
greenhouse_create_ user_ job_ permissionGrant an user a Job Admin role on a single job.
greenhouse_delete_ custom_ fieldPermanently 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_ interviewCancel and delete a scheduled interview.
greenhouse_delete_ job_ notePermanently delete a job note.
greenhouse_delete_ notePermanently delete a candidate note.
greenhouse_delete_ user_ job_ permissionRevoke a single user job permission by id, removing that user's Job Admin role on the job.
greenhouse_list_ custom_ fieldsCustom 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_ notesJob notes are free-form, organization-internal notes attached to a job (the requisition).
greenhouse_list_ user_ job_ permissionsUser 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_ fieldEdit the definition of an existing custom field.
greenhouse_update_ departmentUpdate an existing department's name, external_id, or position in the department tree.
greenhouse_update_ job_ noteUpdate an existing job note.
greenhouse_update_ noteUpdate a candidate note.
greenhouse_update_ officeUpdate an existing office.
greenhouse_create_ candidate_ educationAdd a new education entry to a candidate's profile.
greenhouse_create_ candidate_ employmentAdd a new work history entry to a candidate's profile.
greenhouse_create_ candidate_ tagAdd a new tag to your organization's candidate-tag dictionary.
greenhouse_create_ custom_ field_ departmentRestrict a custom field's visibility to one additional department.
greenhouse_create_ custom_ field_ officeRestrict a custom field's visibility to one additional office.
greenhouse_create_ future_ job_ permissionGrant an user a Job Admin role on future jobs matching an optional department and/or office scope.
greenhouse_create_ job_ hiring_ managerAssign an user as a hiring manager on a job.
greenhouse_create_ job_ ownerAdd an user to a job's hiring team as a recruiter, sourcer, or coordinator.
greenhouse_create_ job_ postCreate a new job post by duplicating an existing one.
greenhouse_create_ job_ post_ locationAttach a location to an existing job_post.
greenhouse_create_ offerCreate a new offer on an existing application.
greenhouse_create_ scorecardCreate a scorecard for a given interview kit on a given application.
greenhouse_delete_ applied_ candidate_ tagDetach a single tag from a candidate.
greenhouse_delete_ attachmentPermanently remove an attachment from its application.
greenhouse_delete_ candidate_ educationRemove a single education entry from a candidate's profile.
greenhouse_delete_ candidate_ employmentRemove a single employment entry from a candidate's profile.
greenhouse_delete_ candidate_ tagRemove a tag from your organization's candidate-tag dictionary.
greenhouse_delete_ custom_ field_ departmentRemove a department from a custom field's visibility scope.
greenhouse_delete_ custom_ field_ officeRemove an office from a custom field's visibility scope.
greenhouse_delete_ future_ job_ permissionRevoke a single future job permission by id.
greenhouse_delete_ job_ hiring_ managerUnassign a hiring manager from a job by deleting the join row.
greenhouse_delete_ job_ ownerRemove an user from the hiring team in one role by deleting the join row.
greenhouse_delete_ job_ post_ locationDetach a single location from a job post.
greenhouse_list_ applied_ candidate_ tagsApplied candidate tags are the join rows between candidates and the organization's candidate-tag dictionary, one row per (candidate, tag) pair.
greenhouse_list_ candidate_ educationsCandidate educations are the school/degree/discipline entries on a candidate's profile, one row per education entry.
greenhouse_list_ candidate_ employmentsCandidate employments are the work history entries on a candidate's profile, one row per employer/title the candidate has held.
greenhouse_list_ custom_ field_ departmentsA 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_ officesA 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_ permissionsFuture 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_ managersJob 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_ ownersJob 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_ locationsJob 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_ postEdit a job post in place, change its public title, replace its HTML body, or transition its publication status between draft and live.
greenhouse_update_ scorecardPatch an existing scorecard.
greenhouse_create_ referrerCreate a referrer that has no Greenhouse user account, such as an outside referrer, so applications can be credited to them.
greenhouse_create_ user_ emailAttach an additional email address to a Greenhouse user, the V3 replacement for V1 POST /users/{id}/email_addresses.
greenhouse_get_ bulk_ requestRetrieve a single bulk request, including the per-row success and failure result files.
greenhouse_get_ rejection_ reasonRetrieve a single rejection reason by id.
greenhouse_list_ approver_ groupsApprover groups are the ordered tiers of approvers inside a single approval flow on a job or offer.
greenhouse_list_ bulk_ requestsBulk requests track the asynchronous bulk operations submitted to Harvest V3.
greenhouse_list_ referrersReferrers 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_ detailsRejection 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_ emailsUser emails are the email addresses attached to a Greenhouse user.
greenhouse_replace_ approver_ in_ groupSwap 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_ detailPatch the rejection reason or rejection question custom field answers on a rejected application without changing its rejected_at timestamp.
greenhouse_list_ ai_ opt_ out_ statusesA candidate's decision to opt out of AI-assisted review (Talent Matching) for a specific job.
greenhouse_list_ approversApprovers are the individual users assigned to approve a job, offer, or other approvable resource.
greenhouse_list_ audit_ log_ eventsRead the audit log: who changed or looked at what in Greenhouse in the last 30 days.
greenhouse_list_ candidate_ attribute_ typesCandidate 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_ reasonsClose 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_ interviewersDefault interviewers are the users pre-selected as the interview panel for a specific stage on a job.
greenhouse_list_ demographic_ answer_ optionsDemographic answer options are the selectable choices on a demographic_question.
greenhouse_list_ demographic_ answersDemographic 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_ setsDemographic 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_ questionsDemographic 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_ eeocEEOC 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_ templatesEmail templates are reusable subject/body pairs your organization uses to communicate with candidates, prospects, and the hiring team.
greenhouse_list_ focus_ candidate_ attributesFocus 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_ kitsInterview 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_ mediaInterview media contains recordings and transcripts created by Greenhouse AI notetaking.
greenhouse_list_ interviewer_ tagsInterviewer 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_ interviewersInterviewers 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_ locationsJob 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_ boardsA 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_ attributesJob 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_ interviewsJob 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_ locationsSearchable 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_ rangesPay 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_ inputsPay 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_ detailsA 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_ stagesProspect 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_ poolsA 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_ attributesScorecard 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_ optionsScorecard 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_ answersA scorecard question answer is one interviewer's response to a single question on a scorecard.
greenhouse_list_ scorecard_ question_ candidate_ attributesScorecard 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_ optionsScorecard question options are the multiple-choice values shown to interviewers for single_select and multi_select scorecard_questions.
greenhouse_list_ scorecard_ questionsScorecard questions are the prompts configured on an interview_kit that interviewers answer when submitting a scorecard.
greenhouse_list_ tracking_ linksTracking 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_ rolesUser roles are the organization-wide dictionary of access levels an user can hold, the categories themselves, not the per-user assignments.
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.
Paste the Client ID••••••••••••3f7a12345Moving, rejecting and hiring candidates and everything else that edits Greenhouse are writes and wait until an owner or admin allows write actions; new connections start read-only. The scopes you tick on the credential are a second limit that Greenhouse enforces itself. Moves and rejections can email candidates, so the AI is told to ask first.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Greenhouse credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Where is Ada Byron in our hiring process, and what did her interviewers say?
greenhouse_candidate_overviewok
Then just ask for the work
“Where is Ada Byron in our hiring process, and what did her interviewers say?”
“How is the Senior Engineer job going? Who has had no activity for two weeks?”
“Move Ada's application to the Onsite stage”
“Which interviews are booked next week, and which scorecards are still missing?”
“Add this candidate to the Product Designer job and note that a teammate referred her”
“Reject this application as lacking skills, with no email to the candidate”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Greenhouse behind an AI client.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Launch a hosted MCP endpoint for Greenhouse, keep tool access under control, and start testing real workflow prompts right away.