Integration · Payroll & HR
Connect Claude & ChatGPT to Greenhouse
Ask your AI which applications are waiting in a stage, what interviewers wrote in their scorecards, or to move a candidate forward in Greenhouse. Through the Harvest API it can read jobs, applications, candidates, interviews, offers, scorecards and attachments. It can also create and update candidates and move, reject, unreject or hire applications.
Free plan, no credit card. Takes about a minute.
Try asking
“Which active applications for the Product Designer job are in the Onsite stage?”
The AI finds the job and its stages and lists active applications in that stage.
“Summarize the scorecards for Julie's application.”
It reads the interview scorecards with ratings and feedback and summarizes them.
“Move Julie to the Offer stage.”
It moves the application from its current stage to the stage you name.
What your AI can do
Jobs and pipeline
List jobs, job posts, stages, departments and offices, and see applications by job, stage and status.
Candidates and feedback
Read candidates, attachments, interviews, scorecards and offers, and create or update candidates and tags.
Decisions
Move applications between stages or jobs, reject or unreject them, and mark an application as hired.
“Which offers are out right now?”
It lists current offers with their status.
“Add Peter Holm from Acme ApS to the Data Analyst job and tag him Referral.”
It creates the candidate with company and contact details, adds an application to the job and adds the tag.
“What interviews are scheduled this week?”
It lists scheduled interviews in the date range.
150 tools for Greenhouse Harvest
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
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_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. Required: first_name and last_name. Optional: email_addresses, phone_numbers, company, title, tags, and application with job_id to add them to a job.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_documentChanges dataCreate a new document. Required: application id, filename or type. API summary: Create Attachment.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_interviewChanges dataCreate a new interview. Required: application id, job interview id, interviewers, starts at, ends at or external event id. API summary: Create Interview.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_projectChanges dataCreate a new project. Required: template job id or number of openings. API summary: Create job.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_interviewDeletesPermanently delete a interview by interview id. Destructive action; may require approval. API summary: Delete Interview.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. Required: application_id. Optional: start_date, opening_id, close_reason_id. This closes the 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_stagesList application stages. Optional filters: ids, created at, updated at, application ids, job interview stage ids or current. Results are paginated.list_applicationsList applications. Optional: candidate_ids, job_ids, stage_ids, status (active, rejected, hired...), and date filters.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 such as resumes and cover letters. Optional: candidate_ids, application_ids, type.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 in the account.list_candidatesList candidates. Optional: email, tag, ids, and created_at/updated_at/last_activity_at filters.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. Optional: application_ids, job_ids, status, starts_at/ends_at filters.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_interviewsList job interviews. Optional filters: ids, created at, updated at, job interview stage ids, job ids or active. Results are paginated.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 (public listings). Optional: job_ids, live, active, internal.list_job_stagesList a job's interview stages. Optional: job_ids, active.list_jobsList jobs. Optional: status (open, draft, closed), department_id, office_id, ids, and date filters like opened_at.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. Optional: application_ids, candidate_ids, job_ids, status, current_only.list_officesList offices.list_openingsList openings. Optional filters: ids, created at, updated at, job ids, application ids or close reason ids. Results are paginated.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 the rejection reasons and their IDs.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 with ratings and feedback. Optional: application_ids, interviewer_ids, status, submitted_at.list_sourcesList candidate sources (job boards, referrals, agencies...).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. Optional: primary_email, department_ids, office_ids, deactivated.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_applicationChanges dataMove an application to another stage. Required: application_id and from_stage_id; set to_stage_id, or to_job_id to move it to another job.reject_applicationVisible to othersReject an application. Required: application_id and rejection_reason_id. Optional: notes and rejection_email (email_template_id, send_email_at) to email the candidate.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. Required: candidate_id and candidate_tag_id.unreject_applicationChanges dataUndo a rejection and put the application back in its pipeline. Required: application_id.update_applicationChanges dataUpdate an existing application identified by application id. Only the fields you pass are changed. API summary: Update Applications.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's name, company, title, contact details, tags or custom fields. Required: candidate_id.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 dataUpdate an existing interview identified by interview id. Only the fields you pass are changed. API summary: Update Interviews.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_projectChanges dataUpdate an existing project identified by project id. Only the fields you pass are changed. API summary: Update Job.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 Harvest from the app list.
- 2
Paste your key
In Greenhouse go to Configure → Dev Center → API Credential Management and create a Harvest v3 (OAuth) credential, ideally tied to an Integration System User. Choose its permissions, then copy the Client ID and Client secret into HeyMyApps. Greenhouse shows the secret only once.
- 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?
The AI can read jobs, job posts, stages, applications, candidates, attachments, interviews, scorecards, offers, sources, tags, rejection reasons, departments, offices and users. It can create and update candidates, tag them, move applications, reject or unreject them, and mark an application as hired.
Does the AI see my Greenhouse credentials?
No. Your Greenhouse client secret is encrypted at rest and never shown to the AI. After you save it, it is 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, and the permissions on the Harvest credential limit what can be reached. Candidate data is personal data, so you can start read-only and keep reject_application off if a person should make every rejection. Hiring closes the opening, and it can require your approval before it runs. 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.
Can the AI send rejection emails to candidates?
Only if you let it. reject_application can include a rejection email template and a send time, and then Greenhouse emails the candidate. Leave the tool off, or require approval for it, if you want to check every rejection first. unreject_application puts an application back in its pipeline.
Related integrations
Let your AI work in Greenhouse Harvest today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Greenhouse Harvest freeHeyMyApps is not affiliated with Greenhouse Harvest. Product names are trademarks of their owners.






