loading…
Search for a command to run...
loading…
Production-ready MCP server for Greenhouse ATS with 175 tools for recruiting teams — manage candidates, applications, jobs, interviews, and hiring pipelines. Ro
Production-ready MCP server for Greenhouse ATS with 175 tools for recruiting teams — manage candidates, applications, jobs, interviews, and hiring pipelines. Role-based profiles (full/recruiter/read-only), composite workflow tools for pipeline views, analytics, candidate search, and bulk operations.
PyPI CI Python 3.10+ License: MIT open-greenhouse-mcp MCP server
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.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"greenhouse-mcp": {
"command": "npx",
"args": []
}
}
}