Are you the author? Sign in to claim
Production-ready MCP server for Greenhouse, designed for recruiters and hiring teams.
Production-ready MCP server for Greenhouse, designed for recruiters and hiring teams.
Most Greenhouse MCP servers mirror the API endpoint by endpoint. This one is built for recruiting teams: safe defaults, role-based profiles, and workflow tools that turn multi-step API operations into single actions.
| Profile | Tools | Can write? | Recommended for |
|---|---|---|---|
read-only | 103 | No | First-time setup, reporting, hiring managers |
recruiter | 127 | Yes (safe ops) | Day-to-day recruiting work |
full | 181 | Yes (all) | Admins, ops, advanced automation |
pip install open-greenhouse-mcp
Add to your MCP client config (Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json, Cursor: Settings > MCP):
{
"mcpServers": {
"greenhouse": {
"command": "open-greenhouse-mcp",
"env": {
"GREENHOUSE_API_KEY": "your-harvest-api-key",
"GREENHOUSE_TOOL_PROFILE": "read-only"
}
}
}
}
Start in read-only mode to validate connectivity and tool behaviour, then switch to recruiter or full when you need write access.
Your API key is in Greenhouse under Configure > Dev Center > API Credential Management.
See more examples with full output.

GREENHOUSE_ON_BEHALF_OF| Client | Status |
|---|---|
| Claude Desktop | Supported |
| Claude Code | Supported |
| Cursor | Supported |
| Transport | stdio |
| Python | 3.10+ |
When the server starts, it logs its configuration:
open-greenhouse-mcp v0.4.0
Profile: recruiter | Tools: 127 | Writes: recruiter-safe | APIs: harvest, ingestion
Tools for candidate evaluation and proactive talent search.
| Tool | What it does |
|---|---|
screen_candidate | Complete screening package — profile, resume text, location, screening answers, job description, history |
fetch_new_applications | Applications since a date, grouped by job — the daily recruiter digest |
scan_pipeline_resumes | Search resume text across pipelines with boolean keywords (required/preferred/exclude) |
search_pipeline_candidates | Search pipelines by structured fields — title, company, education, experience, tags |
scan_all_candidates | Database-wide candidate search by structured fields with date bounds |
batch_read_resumes | Batch-fetch and extract resume text for multiple candidates |
High-level tools that combine multiple API calls into single operations.
| Tool | What it does |
|---|---|
pipeline_summary | Full pipeline view — candidates grouped by stage with names and days-in-stage |
candidates_needing_action | Find stale applications and interviews missing scorecards |
stale_applications | Applications with no activity for N days, sorted by stalest |
pipeline_metrics | Conversion rates, hire/rejection rates, time-in-stage per stage |
source_effectiveness | Which candidate sources produce the best hire rates |
time_to_hire | Average, median, min, max days from application to hire |
bulk_reject | Reject multiple applications in one call with rate-limit handling |
bulk_tag | Tag multiple candidates in one call |
bulk_advance | Advance multiple applications to next stage |
search_candidates_by_name | Find candidates by first or last name |
search_candidates_by_email | Look up a candidate by exact email |
read_candidate_resume | Download and return a candidate's most recent resume |
download_attachment | Download any Greenhouse attachment by URL |
Recruiter includes all read tools, all screening/sourcing tools, all composite workflows, and recruiter-safe writes: reject, advance, hire, move, tag, notes, attachments, interviews, prospects, and bulk operations. It excludes job creation, user management, custom field configuration, candidate deletion, and webhook management.
Read-only skips all write operations. GREENHOUSE_READ_ONLY=true also works as a shorthand.
| Variable | Required | Description |
|---|---|---|
GREENHOUSE_API_KEY | Yes* | Harvest API key |
GREENHOUSE_BOARD_TOKEN | Yes* | Job board URL slug. *At least one required |
GREENHOUSE_TOOL_PROFILE | No | full (default), recruiter, or read-only |
GREENHOUSE_ON_BEHALF_OF | No | Greenhouse user ID for write audit trail |
GREENHOUSE_LOG_LEVEL | No | debug, info, warning (default), error |
GREENHOUSE_LOG_FILE | No | Log file path (defaults to stderr) |
Structured JSON logging for observability. Set GREENHOUSE_LOG_LEVEL=info to enable:
{"ts": "2026-04-14T12:31:58", "level": "info", "event": "api_call", "method": "GET", "url": "...", "status": 200, "latency_ms": 245.0}
MIT License -- Ben Monopoli. See LICENSE.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows