# Greenhouse MCP connector

The Greenhouse connector brings candidates, applications, jobs, job posts, stages, departments and offices into Claude, ChatGPT, Cursor and the Elaichi Agent, so recruiters ask about the pipeline in plain language while every call runs inside their own Greenhouse access.

Source: https://elaichi.ai/connectors/greenhouse/

## Facts

| | |
| --- | --- |
| Application | Greenhouse |
| Category | ATS |
| AI tools | 52 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 52 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Greenhouse is connected

- Which Greenhouse jobs have candidates waiting on interview feedback?
- Summarize applications received for the Senior Engineer job post.
- List candidates by source for open Greenhouse departments.

## Connect Greenhouse in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Greenhouse.
2. Optionally set Share with, then press Connect.
3. Paste a Greenhouse API key. One person generates a token in Greenhouse and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Greenhouse tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Greenhouse to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Greenhouse to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Greenhouse to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Greenhouse to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Greenhouse tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Greenhouse through Elaichi

### Check where a candidate stands before the call

Recruiting. Ask for a candidate by name and get their open applications, the stage each one sits in, the source they came from and any tags, without opening Greenhouse mid-conversation.

### See every application on my open role

Hiring managers. Pull the applications for one job, grouped by stage, so a hiring manager knows how many people are in onsite versus phone screen before the weekly sync.

### Report pipeline health across departments

Talent operations. List open jobs by department and office, count applications at each stage and spot roles that have gone quiet, then paste the summary straight into the leadership update.

### Find out which sources actually deliver

Recruiting. Compare where applications for a role came from, referral, job board or agency, and see which sources fill the pipeline and which only add noise.

### Audit who has which Greenhouse role

People. List Greenhouse users alongside their user roles to confirm that departed staff, contractors and interviewers hold only the access they should.

### Keep offices current as the company grows

Workplace. Create a new office in Greenhouse when a location opens and update the details of an existing one, so job posts and departments point at the right place.

## Frequently asked questions

### How do I connect Greenhouse to Claude?

Connect Greenhouse in Elaichi first: create an API key inside Greenhouse and paste it into the Greenhouse connector in Elaichi. There is no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Sign in to Elaichi when Claude asks, and Greenhouse is available in your next conversation.

### Does Greenhouse work with ChatGPT and Cursor as well as Claude?

Yes. Once Greenhouse is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Greenhouse once and every client you use picks it up, with the same permissions and the same audit log behind each one.

### What can an AI agent actually do with my Greenhouse data?

An agent connected to Greenhouse can look up candidates, applications, jobs, job posts, job stages, sources, tags, departments, offices, users and user roles, and it can create or update an office. In practice that means asking how many applications a role has at each stage, which source a candidate came from, or which users hold the admin role, and getting the answer from live Greenhouse records. Short, specific asks like "applications for the Account Executive role by stage" work better than long paragraphs.

### Does connecting Greenhouse give the AI access to every candidate and job?

No. Each person signs in to Elaichi as themselves, and the Greenhouse access an agent uses follows that person and the permissions on the Greenhouse API key they connected. Elaichi can narrow that access further, by hiding actions or limiting a team to a particular set of tools, but it can never widen it beyond what Greenhouse itself already allows.

### Can my team share one Greenhouse connection?

Yes. One recruiter or admin connects Greenhouse in Elaichi and shares the connection with a team, and nobody else on that team ever sees or handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log records exactly who asked about which candidate or job, even though they all work through one shared Greenhouse connection.

### Can I stop an agent from changing things in Greenhouse?

Yes. Restrictions in Elaichi apply per action, so you can allow reading candidates, applications and jobs while blocking the ability to create or update an office in Greenhouse. A blocked action is never advertised to Claude, ChatGPT, Cursor or any other client, so no prompt, however it is worded, can reach it.

### What happens to a Greenhouse connection when someone leaves?

When you offboard a person in Elaichi, their access to Greenhouse through every client ends at once, in Claude, ChatGPT, Cursor and the Elaichi Agent alike. A shared Greenhouse connection keeps working for everyone else on the team. If you want to remove Greenhouse entirely, disconnecting it once in Elaichi removes it from every client at the same time.

## All 52 Greenhouse tools

Every tool below is callable through https://api.elaichi.ai/mcp once Greenhouse is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Greenhouse candidates** (List). List all candidates in Greenhouse. Returns candidate details including id, first_name, last_name, company, title, created_at, updated_at, applications, educations, employments, and custom fields.
- **Get single Greenhouse candidate by ID** (Get). Get information about a specific candidate by id in Greenhouse. Returns candidate's personal details, contact info, applications with job details, custom fields, and associated tags.
- **List all Greenhouse jobs** (List). List all jobs in Greenhouse. Returns job id, name, requisition_id, status, created_at, updated_at, departments, offices, custom_fields, hiring_team, and openings.
- **Get single Greenhouse job by ID** (Get). Get information about a specific job in Greenhouse by id. Returns job details including name, requisition_id, status, dates, departments, offices, custom fields, hiring team, and openings.
- **List all Greenhouse applications** (List). List all applications in Greenhouse. Returns application id, candidate_id, prospect status, applied_at, last_activity_at, location, source, credited_to, jobs, status, current_stage, answers, prospect details, custom fields, and attachments.
- **Get single Greenhouse application by ID** (Get). Get application by id in Greenhouse. Returns id, candidate_id, applied_at, status, current_stage, jobs, source, credited_to, and attachments fields.
- **List all Greenhouse users** (List). List all users in Greenhouse. Returns user id, name, primary_email_address, updated_at, created_at, disabled status, site_admin status, employee_id, linked_candidate_ids, offices, and departments.
- **Get single Greenhouse user by ID** (Get). Get information about a specific user in Greenhouse by id. Returns id, name, primary_email_address, employee_id, offices, departments, and custom_fields.
- **List all Greenhouse tags** (List). List all candidate tags in Greenhouse. Returns an array of tags with fields id and name.
- **List all Greenhouse sources** (List). List sources grouped by strategy in Greenhouse. Returns id, name, and type with type id and name for each source.
- **List all Greenhouse job posts** (List). List all job posts in Greenhouse. Returns job post id, title, location, internal/external status, active/live status, first_published_at, job_id, content, internal_content, updated_at, created_at, demographic_question_set_id, and questions.
- **Get single Greenhouse job post by ID** (Get). Get a single job post by id in Greenhouse. Returns fields including id, title, location, internal, external, active, live, first_published_at, job_id, content, internal_content, updated_at, created_at, demographic_question_set_id, and questions.
- **List all Greenhouse departments** (List). List all departments in Greenhouse. Returns department id, name, parent_id, external_id, child_ids, and child_department_external_ids.
- **Get single Greenhouse department by ID** (Get). Get information about a specific department by id in Greenhouse. Returns fields id, name, parent_id, child_ids, and external_id. Optionally supports render_as parameter for tree structure.
- **List all Greenhouse custom fields** (List). List custom fields by field_type in Greenhouse. Returns fields including id, name, active status, field_type, value_type, and custom_field_options. Include inactive fields with include_inactive=true.
- **Get single Greenhouse custom field by ID** (Get). Get a custom field by id in Greenhouse. Returns id, name, active status, field_type, value_type, private flag, required flag, require_approval flag, description, and custom_field_options with option id, name, priority, and external_id.
- **List all Greenhouse custom field options** (List). List custom field options for a given custom field id in Greenhouse. Returns id, name, priority, and external_id of each option. Supports filtering by type: all, active, or inactive.
- **List all Greenhouse job stages** (List). Get job stages for job with id in Greenhouse. Returns id, name, created_at, updated_at, job_id, priority, and interviews with details including interview id, name, schedulable, estimated_minutes, default_interviewer_users, and interview_kit.
- **Get single Greenhouse job stage by ID** (Get). Get job stage by id in Greenhouse. Returns id, name, created_at, updated_at, job_id, priority, and interviews with details including interviewers and interview kit content.
- **List all Greenhouse user roles** (List). List user roles in Greenhouse. Returns id, type, and name of each role.
- **List all Greenhouse offices** (List). List all offices in Greenhouse. Returns office id, name, location name, primary_contact_user_id, parent_id, parent_office_external_id, child_ids, child_office_external_ids, and external_id.
- **Get single Greenhouse office by ID** (Get). Get information about a specific office by id in Greenhouse. Returns fields including id, name, location, primary_contact_user_id, parent_id, child_ids, and external_id.
- **Update a Greenhouse office by ID** (Update). Edit an office's basic information in Greenhouse by id. Returns updated office details including name, location, parent and child office IDs, and external ID.
- **Create a Greenhouse office** (Create). Create a new office in Greenhouse. Provide name, optional location, primary_contact_user_id, and parent office via parent_id or external_parent_id. Requires user with office creation permission.
- **List all Greenhouse close reasons** (List). List all close reasons in Greenhouse. Returns an array of close reasons with fields id and name.
- **List all Greenhouse reject reasons** (List). List all rejection reasons in Greenhouse. Returns an array of rejection reasons with id, name, and type fields.
- **List all Greenhouse degrees** (List). List all degree levels for the organization in Greenhouse. Returns id, name, and priority of each degree level.
- **List all Greenhouse disciplines** (List). List all disciplines for this organization in Greenhouse. Returns id, name, and priority of each discipline sorted by priority.
- **List all Greenhouse schools** (List). List all schools for this organization in Greenhouse, returning id, name, and priority of each school.
- **List all Greenhouse email templates** (List). List all email templates in Greenhouse. Returns id, name, description, default status, updated_at, created_at, type, from, cc, body, html_body, and user details for each template.
- **Get single Greenhouse email template by ID** (Get). Get email template by id in Greenhouse. Returns id, name, description, default status, timestamps, type, cc list, html_body, and user info.
- **List all Greenhouse prospect pools** (List). List all prospect pools in Greenhouse. Returns id, name, active status, and prospect_stages with their ids and names for each pool.
- **Get single Greenhouse prospect pool by ID** (Get). Get information about a specific prospect pool in Greenhouse by id. Returns id, name, active status, and prospect stages with their ids and names.
- **List all Greenhouse job openings** (List). List all openings for a job in Greenhouse using job id. Returns fields including id, opening_id, status, opened_at, closed_at, application_id, close_reason, and custom_fields.
- **List all Greenhouse job permissions** (List). List job permissions for a user in Greenhouse by user id. Returns job permission entries including id, job_id, and user_role_id. This endpoint is only intended for use with Job Admin and/or Interviewer users, as these roles are assigned on a per job basis. Users that are Site Admins have permissions on all public jobs and will return an empty array. Basic users cannot be assigned to any jobs and will also return an empty array.
- **List all Greenhouse future job permissions** (List). List future job permissions for a user in Greenhouse by user id. Returns permissions including id, office_id, external_office_id, department_id, external_department_id, and user_role_id.
- **List all Greenhouse approval flows** (List). List all approval flows for a job in Greenhouse. Requires job id. Returns approval flow id, offer_id, sequential flag, version, approval_type, approval_status, job_id, requested_by_user_id, and approver_groups with details including approver ids, names, employee_ids, and email_addresses.
- **List all Greenhouse pending approvals** (List). Get all pending approvals for a user in Greenhouse by user id. Returns approval details including id, status, created_at, approver_group_id, hiring_plan_id, offer_id, approval_flow_id, approval_flow_type, and approval_flow_status.
- **List all Greenhouse activity feeds** (List). Get a candidate's activity feed in Greenhouse by id. Returns notes with id, created_at, body, user info; emails with id, created_at, subject, body, to, from, cc, user info; and activities with id, created_at, subject, body, user info.
- **List all Greenhouse scheduled interviews** (List). List all scheduled interviews in Greenhouse. Supports filtering by creation, update, start, and end timestamps, external_event_id, and actionable status. Returns interview details including id, application_id, start/end times, location, status, organizer, and interviewers.
- **List all Greenhouse application scheduled interviews** (List). List scheduled interviews for application with id in Greenhouse. Returns fields including id, application_id, external_event_id, start and end times, location, video_conferencing_url, status, interview details, organizer, and interviewers.
- **List all Greenhouse scorecards** (List). List all scorecards. Returns id, updated_at, created_at, interview, interview_step, candidate_id, application_id, interviewed_at, submitted_by, interviewer, submitted_at, overall_recommendation, attributes, ratings, and questions for each scorecard.
- **Get single Greenhouse scorecard by ID** (Get). Get a scorecard by id in Greenhouse. Returns fields including id, candidate_id, application_id, overall_recommendation, attributes with ratings and notes, submitted_by user, interviewer, and questions with answers.
- **List all Greenhouse application scorecards** (List). List all submitted scorecards for the application with id in Greenhouse. Returns scorecard id, interview details, candidate and application ids, submission info, overall recommendation, attributes with ratings, and question answers.
- **List all Greenhouse offers** (List). List all offers made by an organization in Greenhouse. Returns offer id, version, application_id, job_id, candidate_id, opening details, created_at, updated_at, sent_at, resolved_at, starts_at, status, and custom fields.
- **List all Greenhouse question sets** (List). List all demographic question sets in Greenhouse. Returns id, title, description, and active status for each set.
- **List all Greenhouse questions** (List). List all demographic questions in Greenhouse. Returns id, name, demographic_question_set_id, required flag, and active status for each question.
- **List all Greenhouse answer options** (List). List all demographic answer options in Greenhouse. Returns id, name, free_form flag, active status, and demographic_question_id for each answer option.
- **List all Greenhouse answers** (List). List all demographic answers in Greenhouse. Returns id, free_form_text, application_id, demographic_question_id, demographic_answer_option_id, created_at, and updated_at for each answer.
- **List all Greenhouse eeoc** (List). List all EEOC data submitted with optional filters submitted_before and submitted_after in Greenhouse. Returns application_id, candidate_id, race, gender, veteran_status, disability_status, and submitted_at fields.
- **Get single Greenhouse eeoc by ID** (Get). Get EEOC data for an application in Greenhouse by application id. Returns application_id, candidate_id, race, gender, veteran_status, disability_status, and submitted_at timestamp.
- **List all Greenhouse application offers** (List). List offers for an application in Greenhouse using application_id. Returns offer id, version, job_id, candidate_id, status, created_at, updated_at, sent_at, resolved_at, starts_at, and custom fields.
