Integration · Payroll & HR
Connect Claude & ChatGPT to Greenhouse
Ask your AI who applied for a job, where a candidate is in the process, or which scorecards are still missing, and get the answer from Greenhouse. It can read candidates, applications, jobs, openings, job posts, interviews, scorecards, offers and attachments. It can also create and update candidates, move applications between stages, schedule interviews, and reject or hire, with your approval if you want it.
Free plan, no credit card. Takes about a minute.
Try asking
“Which active applications do we have for the Backend Developer job?”
The AI finds the job and lists its active applications with candidate and current stage.
“Move Sara Jensen to the Onsite Interview stage.”
It looks up the job's stages and moves her application from its current stage to the new one.
“Which scorecards were submitted for Sara's interviews?”
It lists the scorecards on her application with interviewer and status.
What your AI can do
Candidates and applications
Search, create, update and tag candidates, list applications and stage history, and move, reject or hire.
Jobs and openings
List jobs, openings, job posts, interview stages and interview types, create a job from an existing one and update it.
Interviews, scorecards and offers
List, record, reschedule and delete interviews, and read scorecards, offers and candidate attachments.
“Add the candidate Lars Holm, [email protected], with the tag Referral.”
It creates the candidate with name and email and adds the Referral tag.
“Reject Mark Olsen's application with the reason Not a fit, without emailing him.”
It looks up the rejection reasons and rejects the application. No email is sent unless you ask for one.
“Which interviews are scheduled for next week?”
It lists interviews in that date range with application, interviewers and times.
150 tools for Greenhouse
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
add_attachmentChanges dataAttach a file to an application: `application_id`, `filename`, `type` (e.g. resume, cover_letter) and the file as a public `url` or base64 `content`.archive_userVisible to othersDeactivate a user (user id). Has effects visible outside this system.create_addressChanges dataCreate a new address. Required: job post id, type or value. API summary: Create Job Post Location.create_applicationChanges dataCreate a new application. API summary: Create Application.create_application_convert_to_candidateChanges dataCreate a new convert to candidate for a application. Required: job id. API summary: Convert a prospect to a candidate.create_application_unrejectChanges dataCreate a new unreject for a application. API summary: Unreject Application.create_approval_flowChanges dataCreate a new approval flow. Required: job id, approval type, sequential or approver groups. API summary: Create Approval Flow.create_approval_flow_request_approvalChanges dataCreate a new request approval for a approval flow. API summary: Request Approvals.create_candidateChanges dataCreate a candidate with `first_name`, `last_name` and optional email addresses, phone numbers, company, title, tags and custom fields.create_candidate_educationChanges dataCreate a new candidate education. Required: candidate id. API summary: Create Candidate Education.create_candidate_employmentChanges dataCreate a new candidate employment. Required: candidate id, company name, title or start date. API summary: Create Candidate Employment.create_candidate_tagChanges dataCreate a new candidate tag. Required: name. API summary: Create Candidate Tag.create_custom_fieldChanges dataCreate a new custom field. Required: name, value type or field type. Search custom fields first to avoid duplicates. API summary: Create Custom Field.create_custom_field_departmentChanges dataCreate a new custom field department. Required: custom field id or department id. API summary: Create Custom Field Department.create_custom_field_officeChanges dataCreate a new custom field office. Required: custom field id or office id. API summary: Create Custom Field Office.create_custom_field_optionChanges dataCreate a new custom field option. Required: name, sort order or custom field id. API summary: Create Custom Field Option.create_departmentChanges dataCreate a new department. Required: name. API summary: Create Department.create_future_job_permissionDeletesCreate a new future job permission. Required: user id or role id. Destructive action; may require approval. API summary: Create Future Job Permission.create_jobChanges dataCreate a job by copying an existing job (`template_job_id`) with `number_of_openings`, and optional `job_name`, department, offices and requisition ID.create_job_hiring_managerChanges dataCreate a new job hiring manager. Required: job id or user id. API summary: Create Job Hiring Manager.create_job_ownerChanges dataCreate a new job owner. Required: job id, user id or type. API summary: Create Job Owner.create_messageChanges dataCreate a new message. Required: job id, user id, body or visibility. Search messages first to avoid duplicates. API summary: Create Job Note.create_noteChanges dataCreate a new message. Required: body, note type or visibility. Search messages first to avoid duplicates. API summary: Create Note.create_officeChanges dataCreate a new office. Required: name. API summary: Create Office.create_openingChanges dataCreate a new opening. Required: job id. API summary: Create Opening.create_quoteChanges dataCreate a new quote. Required: application id. API summary: Create Offer.create_scorecardChanges dataCreate a new scorecard. Required: interview kit id, interviewer id, interviewed at, application id or submitter id. API summary: Create Scorecard - restricted.create_scorecard_candidate_attributeChanges dataCreate a new scorecard candidate attribute. Required: scorecard id or job candidate attribute id. API summary: Create scorecard candidate attributes - restricted.create_scorecard_question_answerChanges dataCreate a new scorecard question answer. Required: scorecard id or scorecard question id. API summary: Create scorecard question answers - restricted.create_scorecard_question_answer_optionChanges dataCreate a new scorecard question answer option. Required: scorecard question option id or scorecard question answer id. API summary: Create scorecard question answer options.create_userChanges dataCreate a new user. Required: first name, last name or primary email. API summary: Create user.create_user_emailChanges dataCreate a new message. Required: user id or email. Search messages first to avoid duplicates. API summary: Create User Email.create_user_job_permissionDeletesCreate a new user job permission. Required: job id, user id or role id. Destructive action; may require approval. API summary: Create User Job Permission.create_user_revoke_permissionDeletesCreate a new revoke permission for a user. Destructive action; may require approval. API summary: Revoke user permissions.create_webhookDeletesCreate a new webhook. Required: endpoint url, name, event action type, secret key or max attempts. Destructive action; may require approval. API summary: Create Webhook - Greenhouse Partners Exclusive.delete_addressDeletesPermanently delete a address by address id. Destructive action; may require approval. API summary: Delete Job Post Location.delete_applicationDeletesPermanently delete a application by application id. Destructive action; may require approval. API summary: Delete Application.delete_applied_candidate_tagDeletesPermanently delete a applied candidate tag by applied candidate tag id. Destructive action; may require approval. API summary: Delete Applied Candidate Tag.delete_candidateDeletesPermanently delete a candidate by candidate id. Destructive action; may require approval. API summary: Delete Candidate.delete_candidate_educationDeletesPermanently delete a candidate education by candidate education id. Destructive action; may require approval. API summary: Delete Candidate Education.delete_candidate_employmentDeletesPermanently delete a candidate employment by candidate employment id. Destructive action; may require approval. API summary: Delete Candidate Employments.delete_candidate_tagDeletesPermanently delete a candidate tag by candidate tag id. Destructive action; may require approval. API summary: Delete Candidate Tags.delete_custom_fieldDeletesPermanently delete a custom field by custom field id. Destructive action; may require approval. API summary: Delete Custom Field.delete_custom_field_departmentDeletesPermanently delete a custom field department by custom field department id. Destructive action; may require approval. API summary: Delete Custom Field Department.delete_custom_field_officeDeletesPermanently delete a custom field office by custom field office id. Destructive action; may require approval. API summary: Delete Custom Field Office.delete_custom_field_optionDeletesPermanently delete a custom field option by custom field option id. Destructive action; may require approval. API summary: Delete Custom Field Option.delete_documentDeletesPermanently delete a document by document id. Destructive action; may require approval. API summary: Delete Attachment.delete_future_job_permissionDeletesPermanently delete a future job permission by future job permission id. Destructive action; may require approval. API summary: Delete Future Job Permission.delete_interviewDeletesDelete a scheduled interview by its ID. Cannot be undone.delete_job_hiring_managerDeletesPermanently delete a job hiring manager by job hiring manager id. Destructive action; may require approval. API summary: Delete Job Hiring Manager.delete_job_ownerDeletesPermanently delete a job owner by job owner id. Destructive action; may require approval. API summary: Delete Job Owner.delete_messageDeletesPermanently delete a message by message id. Destructive action; may require approval. API summary: Delete Job Note.delete_openingDeletesPermanently delete a opening by opening id. Destructive action; may require approval. API summary: Delete Openings.delete_user_job_permissionDeletesPermanently delete a user job permission by user job permission id. Destructive action; may require approval. API summary: Delete User Job Permission.delete_webhookDeletesPermanently delete a webhook by webhook id. Destructive action; may require approval. API summary: Delete Webhook - Greenhouse Partners Exclusive.get_link_statusGet the current status of a link. Results are paginated. API summary: List tracking links.get_reasonGet one reason. Results are paginated. API summary: List close reasons.hire_applicationChanges dataMark an application as hired by `application_id`, with optional `start_date`, `opening_id` and `close_reason_id`. This fills the job opening.list_abc_123_def_456sList abc 123 def 456s. Optional filters: ids, created at, updated at or bulk action uuid. Results are paginated. API summary: Bulk requests.list_addressesList addresses. Optional filters: ids, created at, updated at, greenhouse job board ids or active. Results are paginated. API summary: List job board custom locations.list_application_stage_historyList the stages an application has been in, by `application_ids`; set `current` for only the current stage.list_applicationsList applications, filtered by `candidate_ids`, `job_ids`, `stage_ids`, `status` (active, rejected, hired) or dates. Each application links a candidate to a job. Paginate with `cursor`.list_applied_candidate_tagsList applied candidate tags. Optional filters: ids, created at, updated at, candidate tag ids or candidate ids. Results are paginated.list_approval_flowsList approval flows. Optional filters: ids, created at, updated at, job ids, offer ids or approval type. Results are paginated.list_approver_groupsList approver groups. Optional filters: ids, created at, updated at or approval flow ids. Results are paginated.list_approversList approvers. Optional filters: ids, created at, updated at, approver group ids, user ids or status. Results are paginated.list_attachmentsList candidate attachments (resumes, cover letters) by `candidate_ids` or `application_ids`.list_bulk_requestsList bulk requests. Optional filters: ids, created at, updated at, bulk action uuid or active. Results are paginated.list_candidate_attribute_typesList candidate attribute types. Optional filters: ids, created at, updated at, active or is draft. Results are paginated.list_candidate_educationList candidate education. Optional filters: ids, created at, updated at, candidate ids, start at or end at. Results are paginated. API summary: List candidate educations.list_candidate_employmentsList candidate employments. Optional filters: ids, created at, updated at, candidate ids or latest. Results are paginated.list_candidate_tagsList the candidate tags available in your account.list_candidatesList candidates, filtered by `email`, `tag`, `ids` or created/updated/last-activity date ranges. Paginate with `cursor`.list_custom_field_departmentsList custom field departments. Optional filters: ids, created at, updated at, custom field ids or department ids. Results are paginated.list_custom_field_officesList custom field offices. Optional filters: ids, created at, updated at, custom field ids or office ids. Results are paginated.list_custom_field_optionsList custom field options. Optional filters: ids, created at, updated at, custom field ids, active or custom field key. Results are paginated.list_default_interviewersList default interviewers. Optional filters: ids, created at, updated at, user ids or interview kit ids. Results are paginated.list_demographic_answer_optionsList demographic answer options. Optional filters: ids, demographic question ids or active. Results are paginated.list_demographic_answersList demographic answers. Optional filters: ids, created at, updated at, application ids, demographic question ids or demographic answer option ids. Results are paginated.list_demographic_question_setsList demographic question sets. Optional filters: ids, created at, updated at, active or enabled. Results are paginated.list_demographic_questionsList demographic questions. Optional filters: ids, demographic question set ids, active or required. Results are paginated.list_departmentsList departments.list_eeocsList eeocs. Optional filters: ids, created at, updated at, application ids or submitted at. Results are paginated.list_focus_candidate_attributesList focus candidate attributes. Optional filters: ids, created at, updated at, interview kit ids or job candidate attribute ids. Results are paginated.list_future_job_permissionsList future job permissions. Optional filters: ids, created at, updated at, department ids, office ids or user ids. Results are paginated.list_interview_kitsList interview kits. Optional filters: ids, created at, updated at, job ids or job interview ids. Results are paginated.list_interviewer_tagsList interviewer tags. Optional filters: ids, created at or updated at. Results are paginated.list_interviewersList interviewers. Optional filters: ids, created at, updated at, interview ids, user ids or scorecard ids. Results are paginated.list_interviewsList scheduled interviews, filtered by `application_ids`, `job_ids`, `status` or `starts_at` date range. Paginate with `cursor`.list_job_candidate_attributesList job candidate attributes. Optional filters: ids, created at, updated at, job ids or candidate attribute type ids. Results are paginated.list_job_hiring_managersList job hiring managers. Optional filters: ids, created at, updated at, user ids or job ids. Results are paginated.list_job_interview_typesList the interview types defined for jobs (by `job_ids` or `job_interview_stage_ids`). Needed as `job_interview_id` when scheduling.list_job_ownersList job owners. Optional filters: ids, created at, updated at, user ids, job ids or type. Results are paginated.list_job_post_locationsList addresses. Optional filters: ids, created at, updated at, office ids, job post ids or custom location ids. Results are paginated. API summary: List job post locations.list_job_postsList job posts (the public ads for jobs), by `job_ids`, `live` or `active`.list_job_stagesList the interview stages of jobs, by `job_ids`. Use stage IDs to move applications.list_jobsList jobs, filtered by `status` (open, closed, draft), `department_id`, `office_id`, `requisition_id` or dates. Paginate with `cursor`.list_messagesList messages. Optional filters: ids, created at, updated at, job ids, user ids or visibility. Results are paginated. API summary: List job notes.list_offersList offers, filtered by `application_ids`, `candidate_ids`, `job_ids`, `status` or dates; set `current_only` for the latest version.list_officesList offices.list_openingsList job openings (headcount slots), by `job_ids`, `open` status or dates.list_prospect_detailsList prospect details. Optional filters: ids, created at, updated at, application ids, pool ids or pool stage ids. Results are paginated.list_prospect_pool_stagesList prospect pool stages. Optional filters: ids, created at, updated at or prospect pool ids. Results are paginated.list_prospect_poolsList prospect pools. Optional filters: ids, created at, updated at, department ids, office ids or job ids. Results are paginated.list_referrersList referrers. Optional filters: ids, created at, updated at or user ids. Results are paginated.list_rejection_detailsList rejection details. Optional filters: ids, created at, updated at, application ids, rejection reason ids or custom field option id. Results are paginated.list_rejection_reasonsList rejection reasons for use when rejecting an application.list_scorecard_candidate_attributesList scorecard candidate attributes. Optional filters: ids, created at, updated at, scorecard ids or job candidate attribute ids. Results are paginated.list_scorecard_question_answer_optionsList scorecard question answer options. Optional filters: ids, created at, updated at, scorecard question option ids or scorecard question answer ids. Results are paginated.list_scorecard_question_answersList scorecard question answers. Optional filters: ids, created at, updated at, scorecard ids or scorecard question ids. Results are paginated.list_scorecard_question_candidate_attributesList scorecard question candidate attributes. Optional filters: ids, created at, updated at, scorecard question ids or focus candidate attribute ids. Results are paginated.list_scorecard_question_optionsList scorecard question options. Optional filters: ids, created at, updated at, scorecard question ids or active. Results are paginated.list_scorecard_questionsList scorecard questions. Optional filters: ids, created at, updated at or interview kit ids. Results are paginated.list_scorecardsList interview scorecards (feedback), by `application_ids`, `interviewer_ids`, `status` or submitted date.list_sourcesList sources. Optional filters: ids, created at or updated at. Results are paginated.list_user_job_permissionsList user job permissions. Optional filters: ids, created at, updated at, job ids, user ids or role ids. Results are paginated.list_user_rolesList user roles. Optional filters: ids, created at or updated at. Results are paginated.list_usersList Greenhouse users (recruiters, interviewers), filtered by `primary_email`, department or office.list_webhooksList webhooks. Optional filters: ids, created at, updated at, last delivered, event action type or deactivated. Results are paginated. API summary: List Webhooks Greenhouse Partners Exclusive.move_application_stageChanges dataMove an application to another interview stage: `application_id`, current `from_stage_id` and `to_stage_id` (or `to_job_id` to move it to another job).reject_applicationVisible to othersReject an application by `application_id` with a `rejection_reason_id` and optional `notes`. If you pass `rejection_email`, the candidate is emailed.schedule_interviewChanges dataRecord a scheduled interview for an application: `application_id`, `job_interview_id`, `interviewers`, `starts_at`, `ends_at`, your calendar `external_event_id`, and optional location or video link.search_custom_fieldsSearch custom fields by ids, created at, updated at, field type, active or name. Use this to find existing custom fields before creating a new custom field. Results are paginated. API summary: List custom fields.search_messagesSearch messages by ids, created at, updated at, user ids, email or verified. Use this to find existing messages before creating a new message. Results are paginated. API summary: List user emails.send_templateVisible to othersEmail a template. Has effects visible outside this system. Results are paginated. API summary: List email templates.submit_candidateVisible to othersMerge a candidate (candidate id). Has effects visible outside this system. API summary: Merge Candidates.submit_userVisible to othersActivate a user (user id). Has effects visible outside this system.tag_candidateChanges dataAdd a tag to a candidate by `candidate_id` and `candidate_tag_id`.update_applicationChanges dataUpdate an application by `application_id`: source, referrer, recruiter, coordinator or custom fields.update_approval_flowChanges dataUpdate an existing approval flow identified by approval flow id. Only the fields you pass are changed. API summary: Update Approval Flow.update_approval_flow_replace_approver_groupsVisible to othersUpdate an existing replace approver group identified by approval flow id. Has effects visible outside this system. API summary: Replace Approver Groups.update_approver_group_replace_approversVisible to othersUpdate an existing replace approver identified by approver group id. Has effects visible outside this system.update_candidateChanges dataUpdate a candidate by `candidate_id`: name, contact details, company, title, tags or custom fields. Only the fields you pass change.update_candidate_anonymizesVisible to othersUpdate an existing anonymize identified by candidate id. Only the fields you pass are changed. Has effects visible outside this system. API summary: Anonymize Candidates.update_custom_fieldChanges dataUpdate an existing custom field identified by custom field id. Only the fields you pass are changed. API summary: Update Custom Fields.update_custom_field_optionChanges dataUpdate an existing custom field option identified by custom field option id. Only the fields you pass are changed. API summary: Update Custom Field Options.update_departmentChanges dataUpdate an existing department identified by department id. Only the fields you pass are changed. API summary: Update Department.update_interviewChanges dataReschedule or change an interview by `interview_id`: times, interviewers, location or video link.update_jobChanges dataUpdate a job by its ID (`project_id`): name, notes, department, offices, requisition ID or custom fields.update_messageChanges dataUpdate an existing message identified by message id. Only the fields you pass are changed. API summary: Update Job Notes.update_officeChanges dataUpdate an existing office identified by office id. Only the fields you pass are changed. API summary: Update Office.update_openingChanges dataUpdate an existing opening identified by opening id. Only the fields you pass are changed. API summary: Update Openings.update_pageChanges dataUpdate an existing page identified by page id. Only the fields you pass are changed. API summary: Update Job Posts.update_quoteChanges dataUpdate an existing quote identified by quote id. Only the fields you pass are changed. API summary: Update Offers.update_rejection_detailChanges dataUpdate an existing rejection detail identified by rejection detail id. Only the fields you pass are changed. API summary: Update Rejection Details.update_scorecardChanges dataUpdate an existing scorecard identified by scorecard id. Only the fields you pass are changed. API summary: Update Scorecard.update_scorecard_candidate_attributeChanges dataUpdate an existing scorecard candidate attribute identified by scorecard candidate attribute id. Only the fields you pass are changed. API summary: Updates scorecard candidate attributes - restricted.update_scorecard_question_answerChanges dataUpdate an existing scorecard question answer identified by scorecard question answer id. Only the fields you pass are changed. API summary: Update scorecard question answers - restricted.update_userChanges dataUpdate an existing user identified by user id. Only the fields you pass are changed. API summary: Update Users.update_webhookDeletesUpdate an existing webhook identified by webhook id. Only the fields you pass are changed. Destructive action; may require approval. API summary: Update Webhook - Greenhouse Partners Exclusive.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Greenhouse from the app list.
- 2
Paste your key
Paste the Client ID and Client secret from a Harvest V3 (OAuth) API credential. In Greenhouse open API Credentials, click Create new API credentials, choose Harvest V3 (OAuth), save and configure the scopes the integration may use. List endpoints need the credential's user to be a Site Admin. HeyMyApps uses the credential to get access tokens, so there is no separate sign-in.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Greenhouse?
It can read candidates, applications, stage history, jobs, openings, job posts, stages, interview types, interviews, scorecards, offers, attachments, tags, users, departments, offices and rejection reasons. It can create and update candidates and jobs, tag candidates, add attachments, move applications, record and change interviews, and reject or hire applications.
Does the AI see my Greenhouse credentials?
No. Your Greenhouse credentials are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Rejecting can email the candidate, hiring fills a job opening and deleting an interview cannot be undone, so these can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
Greenhouse connects with OAuth, and OAuth connections need the HeyMyApps Pro plan or above. HeyMyApps also has a free plan with no credit card, but it does not include this connection. Paid plans bill per completed task. You also need your own Greenhouse account.
Will the candidate be emailed when the AI rejects them?
Only if the AI includes a rejection email in the request. Without it, the application is rejected in Greenhouse and no email goes out. You can require your approval for rejections, so you see the details before anything happens.
Related integrations
Let your AI work in Greenhouse today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Greenhouse freeHeyMyApps is not affiliated with Greenhouse. Product names are trademarks of their owners.






