homerun-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOMERUN_API_KEY | Yes | Bearer key from Homerun (Homerun > Settings > Integrations > API). | |
| HOMERUN_REPORT_DIR | No | Where reports are saved. | ~/Documents/Homerun Reports |
| HOMERUN_NOTE_AUTHOR | No | Name on notes Claude writes. | Claude (AI assistant) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| homerun_pingA | Verify the API key works. |
| list_vacanciesA | List job openings (vacancies). Use include=['stages','total_candidate_count'] to see the hiring pipeline of each job. |
| get_vacancyA | Full details of one vacancy, including its description and (optionally) its stages and candidate count. |
| list_job_applicationsA | List job applications (candidates). Filter by vacancy (comma-separated ids allowed), by stage name, or by hire date. |
| get_job_applicationB | Full details of one candidate, optionally with notes, sources and vacancy. |
| pipeline_summaryA | Snapshot of one vacancy's funnel: candidates per stage, disqualified count, average rating, candidates still waiting for a first reply. Pulls all pages (mind the 60 req/min limit). |
| hiring_reportA | Build a hiring report across all open vacancies (or the ones given): funnel per stage, hired, disqualified, average rating, time to first reply, and the list of candidates who have waited more than reply_sla_days without any reply. format=xlsx writes an Excel file (sheets: Summary, Needs reply, Active, All candidates); csv writes one flat table (easy to import into Google Sheets); json returns the data only, e.g. to push it into a Google Sheet with another connector. |
| bulk_move_candidatesA | Move a list of candidates to the same stage in one go (rate-limited, keeps going if one fails). Show the user the list and get explicit confirmation first. Optionally leave the same note on each. |
| bulk_add_notesB | Add one note per candidate in one go, e.g. a screening summary or 'rejection email sent on '. |
| add_noteB | Add a note to a candidate's timeline. Notes written by Claude are signed with the configured author name so the team can tell them apart from human notes. |
| move_candidateA | Move a candidate to another existing stage of the hiring process (stage name must exist in the vacancy). Cannot move back to 'New'. Always confirm with the user before calling. |
| create_candidateB | Create a job application, e.g. for someone sourced on LinkedIn or met at an event. Without vacancy_id the candidate lands in the general candidates pool. |
| update_candidateC | Update contact or profile fields of a candidate. |
| upload_candidate_fileB | Attach a local file (resume or assignment) to a candidate. |
| delete_candidateA | Permanently delete a job application (e.g. GDPR erasure request). Irreversible: only call after explicit user confirmation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| hiring_review | Funnel status and next actions for every open vacancy, with an Excel report. Made to run on a schedule (weekly or every 2-3 days). |
| reply_to_candidates | Draft personalised replies (rejection, next step, interview invite) for a group of candidates, then log them in Homerun. |
| candidate_brief | One-page brief on a candidate before an interview. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Most tools are clearly distinct: list/get pairs for vacancies and applications, and explicit single-vs-bulk pairs (move_candidate/bulk_move_candidates, add_note/bulk_add_notes). However, the same entity is referred to as both 'candidate' (update_candidate, list_job_applications returns candidates) and 'job_application', and pipeline_summary vs hiring_report both produce funnel data, which could occasionally confuse selection.
Names follow a mostly consistent snake_case verb_noun pattern (list_vacancies, get_vacancy, create_candidate, move_candidate, etc.) with clear bulk_ prefixes for batch variants. Minor deviations are noun-only names (pipeline_summary, hiring_report) and the server-prefixed homerun_ping, plus the candidate/job_application terminology split.
15 tools is well-scoped for an ATS integration, covering reads, writes, reporting, and batch operations without redundancy. Each tool has a distinct, justified role.
Strong coverage of the candidate lifecycle: create/update/delete/get/list, notes, file upload, stage moves, and reporting. Minor gaps exist (no note or file deletion, no vacancy create/update), but these are plausibly out of scope and unlikely to block core workflows.