100Hires MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@100Hires MCP Server list candidates for the senior developer position"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
100Hires MCP Server
Official Model Context Protocol server for 100Hires — the applicant tracking system for recruiting teams.
Exposes the full 100Hires API v2 as 130 MCP tools, enabling AI assistants to manage candidates, jobs, applications, interviews, messages, and more.
Prerequisites
Get your API key at Settings > Integrations > API.
Related MCP server: Crelate MCP Server
Setup
Claude Code
Run in your terminal:
claude mcp add 100hires \
-e API_KEY=your-api-key \
-- npx -y @100hires/mcp-serverClaude Code (manual)
Add to your project's .mcp.json:
{
"mcpServers": {
"100hires": {
"command": "npx",
"args": ["-y", "@100hires/mcp-server"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}Cursor
Open Settings > MCP and add:
{
"mcpServers": {
"100hires": {
"command": "npx",
"args": ["-y", "@100hires/mcp-server"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}Windsurf
Open Settings > MCP and add:
{
"mcpServers": {
"100hires": {
"command": "npx",
"args": ["-y", "@100hires/mcp-server"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}VS Code (Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"100hires": {
"command": "npx",
"args": ["-y", "@100hires/mcp-server"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}Tools (130)
Candidates (18 tools)
Tool | Description |
| List candidates with filters (job, stage, email, search, linkedin, timestamps) |
| Create a new candidate with profile data |
| Get candidate by ID or alias |
| Update candidate fields |
| Delete a candidate |
| List candidate's tags |
| Attach tags to a candidate |
| Remove a specific tag |
| Bulk add tags to multiple candidates |
| Bulk remove tags from multiple candidates |
| List candidate attachments |
| Upload a file (base64) |
| Get resume with optional text content |
| Get candidate timeline |
| Reject all active applications |
| List candidate's interviews |
| List email history |
| Schedule an email |
Applications (18 tools)
Tool | Description |
| List applications with filters (candidate, job, stage, status, AI score) |
| Link candidate to job |
| Get application details |
| Update application fields |
| Delete an application |
| Move to a specific pipeline stage |
| Advance to the next stage |
| Mark as hired |
| Reject with optional reason |
| Undo rejection |
| Transfer to another job |
| Get AI scoring breakdown |
| List attachments |
| Upload attachment |
| List filled evaluations |
| Schedule interview for application |
| Bulk move to stage |
| Bulk reject |
Jobs (17 tools)
Tool | Description |
| List jobs with filters |
| Create a job |
| Get job by ID or alias |
| Update job fields |
| Delete a job |
| Change status (publish/archive/close) |
| List available job boards |
| Publish to a board |
| Remove from a board |
| Get batch job board status |
| Publish to multiple boards |
| Remove from multiple boards |
| List hiring team members |
| Add hiring team member |
| List job webhooks |
| Register a job webhook |
| Delete a job webhook |
Messages (6 tools)
Tool | Description |
| List messages by mail account |
| Get a scheduled message |
| Full update of scheduled message |
| Partial update of scheduled message |
| Cancel a scheduled message |
| Batch schedule up to 100 messages |
Notification Messages (4 tools)
Tool | Description |
| Get a notification email (e.g. rejection) by ID |
| Update subject, body, reschedule send time |
| Cancel a scheduled notification |
| Cancel all scheduled notifications for a candidate |
Interviews (2 tools)
Tool | Description |
| List interviews with filters |
| Get interview details |
Notes (5 tools)
Tool | Description |
| List candidate notes |
| Create a note |
| Get note details |
| Update a note |
| Delete a note |
Evaluations (1 tool)
Tool | Description |
| Get evaluation form with answers |
Forms (6 tools)
Tool | Description |
| List application forms |
| Create an application form |
| Get form definition |
| Update a form |
| Delete a form |
| Update question visibility on a form |
Email Templates (5 tools)
Tool | Description |
| List email templates |
| Create a template |
| Get template details |
| Update a template |
| Delete a template |
Nurture Campaigns (5 tools)
Tool | Description |
| List campaigns |
| Create multi-step campaign |
| Get campaign details |
| Update a campaign |
| Delete a campaign |
Users (3 tools)
Tool | Description |
| List company users |
| Get user details |
| List user's mail accounts |
Companies (11 tools)
Tool | Description |
| List accessible companies |
| Create a company |
| Get company details |
| Update company |
| Delete a company |
| List company mail accounts |
| List mail accounts for specific company |
| Restore deleted company |
| List company webhooks |
| Register a webhook |
| Delete a webhook |
Taxonomy & Reference (23 tools)
Tool | Description |
| Candidate sources (LinkedIn, Referral, etc.) |
| Candidate origins |
| Rejection reason dictionary |
| Job/application statuses |
| Company departments |
| Job categories |
| Education levels |
| Experience levels |
| Employment types |
| Available job boards |
| All tags |
| Hiring workflows |
| All pipeline stages |
| Stages for specific workflow |
| Reusable questions |
| Create a question |
| Get question details |
| Update a question |
| Delete a question |
| Available question types |
| Email template placeholders |
| Render placeholders |
| Check account pricing/features |
Attachments (2 tools)
Tool | Description |
| Download an attachment by absolute URL (resume, candidate file, application file, mail attachment, call recording). Returns base64-encoded bytes + metadata. 25 MB limit. |
| Upload a file as |
Feedback (1 tool)
Tool | Description |
| Submit structured API feedback about issues or improvements |
Career Site (3 tools, public)
Tool | Description |
| Public job openings |
| Get public job details |
| Submit application via career site |
Career site tools use
company_sluginstead of API key authentication.
API Documentation
License
MIT
Available Tools
130 toolshires_add_candidate_tagsA
Add one or more tags to a candidate. Used for campaign tagging, qualification labels, and source attribution.
Inputs: id (required), tags (required).
hires_add_hiring_team_memberA
Add a company member to the job's hiring team. Use in workflow setup and ownership automation.
Inputs: id (required), user_id (required).
hires_advance_applicationA
Advance an application to the next pipeline stage according to workflow order. No stage_id needed -- the system determines the next stage automatically.
Inputs: id (required), include.
hires_batch_add_tagsA
Add tags to multiple candidates in one request (max 100). Returns per-item results with partial success support.
Inputs: ids (required), tags (required).
hires_batch_create_messagesA
Create up to 100 scheduled messages in one request. Each item specifies its own candidate_id and message payload. Items are processed independently -- one failure does not stop others. Per-candidate RBAC is enforced for each item.
Inputs: messages (required).
hires_batch_job_boardsA
Get board publication states for multiple jobs in one request. Optimized for batch monitoring and management UIs.
Inputs: jobs (required).
hires_batch_move_applicationsA
Move multiple applications to a pipeline stage in one request. Returns per-item results with partial success support. Max 100 application IDs per request.
Inputs: ids (required), stage_id (required).
hires_batch_publish_to_boardsA
Activate board publication for multiple jobs in one request. Use for bulk job distribution workflows.
Inputs: jobs (required), boards.
hires_batch_reject_applicationsA
Reject multiple applications in one request with an optional rejection reason. Returns per-item results with partial success support. Max 100 application IDs per request.
Inputs: ids (required), rejection_reason_id.
hires_batch_remove_from_boardsA
Deactivate board publication for multiple jobs in one request. Use for bulk depublishing workflows.
Inputs: jobs (required), boards.
hires_batch_remove_tagsA
Remove tags from multiple candidates in one request (max 100). Returns per-item results with partial success support.
Inputs: ids (required), tags (required).
hires_cancel_all_notification_messagesA
Cancel all scheduled notification emails for a candidate. Already sent notifications are not affected. Returns success even if no scheduled notifications exist.
Inputs: candidate_id (required).
hires_create_applicationA
Create an application by linking an existing candidate to a job. Use for sourcing workflows and manual application ingestion. The candidate must already exist.
Inputs: job_id (required), candidate_id (required), cv, include, +1 more.
hires_create_candidateA
Create a new candidate profile. Optionally link to a job/stage and attach a CV. Used for imports, inbound forms, and enrichment workflows.
Inputs: cv, email, phone, job_id, +5 more.
hires_create_companyA
Create a client company and link ownership context. Typical entrypoint for multi-tenant onboarding.
Inputs: name (required), company_owner_name (required), company_owner_email (required), url, +4 more.
hires_create_email_templateA
Create a new email template with name, subject, and body. Subject and body support placeholders like {{first_name}}, {{job_title}}. To embed placeholders: 1) GET /template-placeholders to list them, 2) POST /template-placeholders/prepare to get the HTML tag, 3) insert the tag into the body.
Inputs: body (required), name (required), subject (required), company_id.
hires_create_formA
Create a new application form, optionally attaching existing questions by ID.
Inputs: name (required), questions, company_id.
hires_create_interviewA
Schedule a new interview for an application. Provide start/end times as Unix timestamps and a list of interviewer user IDs. Location is resolved to an existing record or created automatically.
Inputs: id (required), end_time (required), start_time (required), interviewer_ids (required), +2 more.
hires_create_jobA
Create a job with taxonomy, location, salary, and workflow configuration. Primary endpoint for programmatic job publishing. Required fields: status, title, description, location_city, location_country.
Inputs: title (required), status (required), description (required), location_city (required), +24 more.
hires_create_job_webhookA
Register a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS.
Inputs: id (required), url (required).
hires_create_noteA
Create a discussion note for a candidate. Supports visibility control (all or private) and @mentions with email notifications.
Inputs: body (required), candidate_id (required), include, user_id, +2 more.
hires_create_nurture_campaignA
Create a nurture campaign with steps. Steps are executed sequentially; each step has a type (email, sms, voicemail, move_to_next_stage, assign_tag, assign_task) with type-specific fields. Optionally bind to a workflow stage.
Inputs: steps (required), title (required), stage_id, timezone, +7 more.
hires_create_questionA
Create a reusable question with optional answer options for dropdown types. Used by forms and questionnaires.
Inputs: text (required), type (required), options, company_id.
hires_create_webhookA
Create a company-scoped webhook subscription. Use for outbound company-level event integrations.
Inputs: id (required), url (required).
hires_delete_applicationA
Permanently delete an application. This removes it from all list and view queries.
Inputs: id (required).
hires_delete_candidateA
Permanently delete a candidate by ID or alias.
Inputs: id (required).
hires_delete_companyA
Delete a company. Use for lifecycle control in partner tenancy management.
Inputs: id (required).
hires_delete_email_templateA
Soft-delete an email template. Templates already used in automations will stop being available for new actions.
Inputs: id (required).
hires_delete_formB
Delete an application form.
Inputs: id (required).
hires_delete_jobA
Delete a job. Use to align archived/removed positions across integrated platforms.
Inputs: id (required).
hires_delete_job_webhookA
Delete a job webhook subscription by ID. Use for cleanup, rotation, and endpoint migration.
Inputs: id (required), webhook_id (required).
hires_delete_messageA
Cancel a scheduled message before it is processed by the mailbox scheduler.
Inputs: id (required).
hires_delete_noteA
Delete a note. Use for moderation policies and data cleanup operations.
Inputs: id (required).
hires_delete_notification_messageA
Cancel a scheduled notification email before it is sent. Already sent messages cannot be canceled.
Inputs: id (required).
hires_delete_nurture_campaignA
Delete (soft-delete) a nurture campaign. Active campaign executions will be stopped.
Inputs: id (required).
hires_delete_questionA
Delete a reusable question from the catalog. Use cautiously when deprecating question banks.
Inputs: id (required).
hires_delete_webhookA
Delete a company-scoped webhook subscription by ID. Use for endpoint retirement and security rotation.
Inputs: id (required), webhook_id (required).
hires_disqualify_candidateA
Disqualify a candidate from all active applications. Optionally provide rejection reason IDs. Returns affected application IDs.
Inputs: id (required), reasons.
hires_download_attachmentA
Download an attachment (resume, candidate file, application file, mail attachment, call recording). Pass the absolute URL returned by another endpoint (e.g. message.attachments[].url, cv.url, resume.url) — it MUST belong to the configured 100Hires API host; other hosts are rejected to avoid leaking the Bearer token. Returns {file_name, mime_type, size, data} where data is base64-encoded bytes. Files larger than 25 MB are rejected up-front (Content-Length check / streaming abort) without being loaded into memory.
Inputs: url (required).
hires_get_ai_scoreA
Get the structured AI score for an application, including per-criterion scores, justifications, and follow-up questions. Returns null score if the application has not been AI-scored.
Inputs: id (required).
hires_get_applicationA
Get full application details including stage, status, and rejection context. Recommended before mutating stage transitions.
Inputs: id (required), include.
hires_get_billingA
Get billing/pricing capability flags for the current company. Use before invoking paid-only API behaviors.
Inputs: no named parameters.
hires_get_candidateA
Get full candidate data including application summaries by candidate ID or alias.
Inputs: id (required).
hires_get_candidate_resumeA
Get the primary resume for a candidate. Returns uuid, absolute download url (use Bearer auth), relative_time, file metadata, type. Use include='text_content' to also get the parsed plain-text content in a text field without downloading the file.
Inputs: id (required), include.
hires_get_career_jobA
Get full details of a single public job by ID. Returns salary, education level, experience level, and other extended fields. Returns 404 for draft, archived, or internal jobs.
Inputs: id (required), company_slug (required).
hires_get_companyA
Get company profile and owner metadata. Use before updates or ownership-sensitive actions.
Inputs: id (required).
hires_get_email_templateA
Get full details of a specific email template by ID, including subject and body content.
Inputs: id (required).
hires_get_evaluationA
Get a filled evaluation form with all answers. Returns evaluator info, summary score, summary text, and individual question answers. Use for detailed review of evaluator feedback on a candidate application.
Inputs: id (required).
hires_get_formA
Get form details including all questions with their statuses.
Inputs: id (required).
hires_get_interviewA
Get full details of a specific interview by ID. Use include to embed related candidate, application, or job data.
Inputs: id (required), include.
hires_get_jobA
Get full details of a job by ID or alias. Use include to load related workflow, hiring team, or pipeline stages data.
Inputs: id (required), include.
hires_get_messageA
Get a scheduled message by ID. Returns scheduler-backed message details including sender account, schedule timestamps, and cancelability.
Inputs: id (required).
hires_get_noteA
Get a single note with author and visibility metadata. Use include=user to load author details.
Inputs: id (required), include.
hires_get_notification_messageA
Get a notification email message (e.g. rejection email) by ID. Returns subject, body, sender, recipient, and schedule metadata. Use candidate messages list to discover notification message IDs.
Inputs: id (required).
hires_get_nurture_campaignA
Get a single nurture campaign by ID with all steps and configuration details.
Inputs: id (required).
hires_get_questionA
Get a question definition including type and options by ID.
Inputs: id (required).
hires_get_userA
Get a single user by ID within current tenant scope. Use for identity resolution in automation flows. The default_mail_account_id field can be used as from_account_id when sending emails.
Inputs: id (required).
hires_get_workflow_stagesA
Get stages for a specific workflow by ID. Equivalent to hires_list_workflow_stages with workflow_id filter.
Inputs: id (required), company_id.
hires_hire_applicationA
Mark an application as hired. This is the finalization step in a hiring workflow. The application status changes to 'hired' and hired_at is set.
Inputs: id (required), include.
hires_list_application_attachmentsB
List all file attachments linked to an application (resumes, cover letters, documents). Returns file metadata and download URLs.
Inputs: id (required).
hires_list_application_evaluationsA
List all filled evaluation forms for an application. Each evaluation includes the evaluator, summary score (strong-yes to strong-no), and summary text.
Inputs: id (required).
hires_list_applicationsA
List applications across all accessible jobs. Supports filtering by candidate, job, stage, status, AI score range, and date ranges. Use for pipeline analytics, sync jobs, and ATS dashboards.
Inputs: page, size, sort, job_id, +9 more.
hires_list_boardsA
List available publishing boards with metadata. Use for distribution setup and board selection.
Inputs: no named parameters.
hires_list_candidate_activitiesA
List timeline activities for a candidate (comments, stage moves, AI responses, etc.). Supports filtering by event type.
Inputs: id (required), page, event_type.
hires_list_candidate_filesA
List all files attached to a candidate (resumes and other documents). Each entry has uuid, absolute download url (use Bearer auth), relative_time, file metadata (orig_file_name, file_ext, file_type/MIME, readable_size), and type (resume/other).
Inputs: id (required).
hires_list_candidate_interviewsA
List all interviews for a candidate across all applications. Useful for timeline views and scheduling conflict detection.
Inputs: id (required), page, size.
hires_list_candidate_messagesA
List email and messaging history for a candidate. Use is_scheduled=1 to filter only pending scheduled messages.
Inputs: id (required), page, size, is_scheduled.
hires_list_candidatesA
List candidates with optional filters. Supports filtering by job, stage, email, name, LinkedIn, and date ranges. Returns paginated results.
Inputs: q, page, size, email, +8 more.
hires_list_candidate_tagsA
List all tags assigned to a candidate. Useful for segmentation and audience-based automations.
Inputs: id (required).
hires_list_career_jobsA
List publicly visible jobs for a company career site. Supports filtering by department, employment type, city, and country. Use to power a custom careers page.
Inputs: company_slug (required), city, page, size, +3 more.
hires_list_categoriesA
List global job categories. Use for job classification and consistent taxonomy mapping.
Inputs: no named parameters.
hires_list_companiesA
List partner-accessible companies with pagination. Use for tenant discovery and management panels.
Inputs: page, size.
hires_list_company_id_mail_accountsB
List all mail accounts for all users in a specific company. The company must be accessible (own company or a client).
Inputs: id (required), page, size.
hires_list_company_mail_accountsA
List all mail accounts for all users in the current company. Use to resolve from_account_id before creating scheduled emails.
Inputs: page, size.
hires_list_departmentsA
List departments for the company. Use for job organization filters and reporting dimensions.
Inputs: company_id.
hires_list_education_levelsA
List education level taxonomy values. Useful for job requirements and structured matching.
Inputs: no named parameters.
hires_list_email_templatesA
List email templates for the target company. Returns paginated results with template name, subject, and body.
Inputs: page, size, company_id.
hires_list_employment_typesA
List supported employment types (full-time, part-time, contract, etc.). Use for validation and normalization.
Inputs: no named parameters.
hires_list_experience_levelsA
List experience level taxonomy values for role seniority modeling.
Inputs: no named parameters.
hires_list_formsA
List application forms (paginated). Returns forms with their questions for the target company.
Inputs: page, size, company_id.
hires_list_hiring_teamA
List users currently assigned to a job's hiring team. Useful for notification routing and collaboration tooling.
Inputs: id (required).
hires_list_interviewsA
List interviews with optional filters by job, application, candidate, interviewer, date, or timestamps for incremental sync. Returns paginated results.
Inputs: date, page, size, job_id, +6 more.
hires_list_job_boardsA
Get current board publication state for a specific job. Returns which job boards the job is published to. Useful for distribution dashboards and posting audits.
Inputs: id (required).
hires_list_jobsA
List jobs with optional filters by status, date range, department, or search query. Returns paginated results. Use for career-site sync, reporting, and external system indexing.
Inputs: q, page, size, status, +6 more.
hires_list_job_webhooksA
List webhooks configured for job-level events. Use to audit subscriptions and deployment state.
Inputs: id (required).
hires_list_messagesA
List messages sent or scheduled from a specific mail account. Returns outbound messages only (sent and scheduled), not received. Useful for monitoring cold outreach campaigns — check pending queue, delivery history, and plan next sends.
Inputs: from_account_id (required), page, size, status, +2 more.
hires_list_notesA
List notes by candidate. Returns paginated discussion notes for a candidate. Use for shared recruiter context and timeline synchronization.
Inputs: candidate_id (required), page, size, include.
hires_list_nurture_campaignsA
List nurture campaigns with pagination. Returns campaign summaries including steps.
Inputs: page, size, company_id.
hires_list_originsA
List candidate origin taxonomy values. Use for attribution analytics and source normalization.
Inputs: no named parameters.
hires_list_questionsA
List paginated question catalog for the company.
Inputs: page, size, company_id.
hires_list_question_typesA
List available question types supported by the platform. Use to drive dynamic form builders.
Inputs: no named parameters.
hires_list_rejection_reasonsA
List configured rejection reasons for the company. Use to validate rejection actions and analytics.
Inputs: company_id.
hires_list_sourcesA
List candidate sources for the company. Use for attribution sync and reporting consistency.
Inputs: company_id.
hires_list_statusesA
List job status labels (draft, published, on_hold, closed, archived). Cache to validate job status updates.
Inputs: no named parameters.
hires_list_tagsA
List all tags for the company. Returns paginated results. Recommended to cache for fast tagging UX.
Inputs: company_id.
hires_list_template_placeholdersA
List available placeholders for email templates with pagination. Use type to filter by category, q to search by label. Discover placeholders here, then use hires_prepare_template_placeholders to get an HTML tag for insertion.
Inputs: q, page, size, type, +2 more.
hires_list_user_mail_accountsA
List mail accounts connected to a user. Use to resolve from_account_id before creating scheduled emails via POST /candidates/{id}/messages.
Inputs: id (required), page, size.
hires_list_usersA
List users for the target company with role context. Returns paginated results useful for access reviews and hiring-team management.
Inputs: page, size, company_id.
hires_list_webhooksA
List webhook subscriptions configured at company scope.
Inputs: id (required).
hires_list_workflowsA
List workflows with embedded stages for the company. Use to build stage-aware integrations and routing rules.
Inputs: company_id.
hires_list_workflow_stagesA
List pipeline stages filtered by workflow or job. Useful for transition UIs and workflow validation.
Inputs: job_id, company_id, workflow_id.
hires_move_applicationA
Move an application to a specific pipeline stage. Use this for explicit stage transitions in workflow orchestration. You need the target stage_id (get it from the job's pipeline_stages).
Inputs: id (required), stage_id (required), include.
hires_patch_messageA
Partially update a scheduled message before send time. Only provided fields are changed.
Inputs: id (required), cc, to, bcc, +6 more.
hires_prepare_template_placeholdersA
Convert a placeholder reference into an HTML tag for insertion into an email template body.
Inputs: type (required), identifier, job_variable_id, form_question_id, +2 more.
hires_publish_to_job_boardA
Activate selected job boards for a job. Sets boards to activation queue state. Use for controlled multi-board publishing workflows.
Inputs: id (required), boards.
hires_reject_applicationA
Reject an application with an optional rejection reason. Use GET /taxonomy/rejection-reasons to list available reason IDs. Set suppress_notification to skip the rejection email.
Inputs: id (required), include, rejection_reason_id, suppress_notification.
hires_remove_candidate_tagC
Remove a specific tag from a candidate.
Inputs: id (required), tag (required).
hires_remove_from_job_boardB
Deactivate selected board publications for a job. Stops the job from being listed on specified boards.
Inputs: id (required), boards.
hires_restore_companyA
Restore a previously deleted company and re-enable it for active use. Use for recovery and rollback scenarios.
Inputs: id (required).
hires_send_candidate_messageA
Schedule an email message to a candidate. If scheduled_at is omitted, the message is scheduled for 15 minutes after creation.
Inputs: id (required), to (required), body (required), subject (required), +7 more.
hires_set_job_statusA
Change job status via dedicated endpoint. Recommended for publish/unpublish/archive transitions and status automation workflows.
Inputs: id (required), status (required), include.
hires_submit_career_applicationA
Submit a job application on behalf of a candidate. Creates a candidate record and triggers the career-site pipeline automation.
Inputs: email (required), job_id (required), last_name (required), first_name (required), +6 more.
hires_submit_feedbackA
Submit structured API feedback about missing features, issues, or workflow improvements. Rate limited to 5 requests per hour.
Inputs: description (required), context, endpoint, issue_type, +1 more.
hires_transfer_applicationA
Transfer an application to another job. A new application is created on the target job. Optionally specify a stage on the target job's pipeline.
Inputs: id (required), job_id (required), include, stage_id.
hires_unreject_applicationA
Undo a rejection and reopen a previously rejected application. The status returns to active and rejected_at is cleared.
Inputs: id (required), include.
hires_update_applicationA
Update application fields such as stage, disqualification flag, and CV. For explicit stage transitions prefer hires_move_application or hires_advance_application.
Inputs: id (required), cv, include, stage_id, +1 more.
hires_update_candidateB
Update candidate fields, profile answers, and optional CV. Used for bi-directional sync from ATS, CRM, sourcing, or enrichment tools.
Inputs: id (required), cv, email, phone, +5 more.
hires_update_companyB
Update company profile, owner contact data, and optional logo. Supports partner-operated account management.
Inputs: id (required), url, logo, name, +5 more.
hires_update_email_templateA
Update an existing email template. Only provided fields are overwritten; omitted fields keep their current values. To add placeholders, use the same workflow as creation.
Inputs: id (required), body, name, subject.
hires_update_formB
Update form name and question composition.
Inputs: id (required), name (required), questions.
hires_update_form_questionB
Update the status (required/optional/hidden) of a question inside a form.
Inputs: status (required), form_id (required), question_id (required).
hires_update_jobA
Update mutable job attributes. Only send fields you want to change. Preserves domain-level validation rules.
Inputs: id (required), title, status, form_id, +24 more.
hires_update_messageA
Fully update (replace) a scheduled message before send time. All required fields must be provided.
Inputs: id (required), to (required), body (required), subject (required), +6 more.
hires_update_noteA
Update note body and/or visibility without creating a new timeline item. Use for corrections and moderation workflows.
Inputs: id (required), body, include, visibility.
hires_update_notification_messageA
Update a scheduled notification email before it is sent. Change subject, body, and optionally reschedule the send time. Only scheduled (not yet sent) messages can be updated.
Inputs: id (required), body (required), subject (required), scheduled_at.
hires_update_nurture_campaignA
Update an existing nurture campaign. Pass all steps -- mark removed steps with is_deleted=true. Existing steps must include their id.
Inputs: id (required), steps (required), title (required), stage_id, +7 more.
hires_update_questionA
Update text, type, or options of an existing question definition.
Inputs: id (required), text (required), type (required), options.
hires_upload_application_attachmentB
Upload a file attachment to an application. Provide the file as base64-encoded data. Commonly used for signed documents and interviewer artifacts.
Inputs: id (required), file (required).
hires_upload_attachmentA
Upload a file and create an attachment. Supported categories: voicemail (wav/mp3, max 20 MB, no object_id — returned uuid is usable as attachment_uuid in nurture voicemail steps); candidate (candidate ID); application (application ID); candidate_comment (comment ID); job_note (job-note ID); company_favicon/company_header/company_link_preview (company ID). Object ownership is strictly verified against the authenticated API key's company. Returns {uuid, url, file, relative_time}.
Inputs: file (required), category (required), object_id, company_id.
hires_upload_candidate_fileA
Upload a file for a candidate using a base64 payload. Used for resume ingestion, portfolio uploads, and document attachment.
Inputs: id (required), file (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 130 tools
Several tools are near-duplicates or have unclear boundaries, such as hires_get_workflow_stages being explicitly equivalent to hires_list_workflow_stages, and hires_list_company_mail_accounts vs hires_list_company_id_mail_accounts. Candidate file upload/download also overlaps heavily with generic attachment upload/download, making the correct tool choice ambiguous.
Most tools follow a hires_verb_noun pattern, but there are notable deviations like hires_batch_job_boards (missing verb), hires_unreject_application, hires_patch_message vs hires_update_message, and inconsistent plural/preposition forms such as remove_from_job_board vs remove_candidate_tag. The convention is readable but not consistently applied across 130 tools.
130 tools is an extreme count for an MCP server surface, even for a broad ATS platform. Many taxonomy list endpoints and near-duplicate batch variants could be consolidated or split into focused sub-servers to reduce cognitive load.
The domain is well covered across candidates, applications, jobs, boards, messages, forms, email templates, nurture campaigns, webhooks, and career-site functionality. Minor gaps exist, such as no update/cancel/delete for interviews and no update path for webhooks, but core workflows are not dead-ended.
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server implementation that enables LLMs to interact with Ashby's Applicant Tracking System, allowing management of candidates, jobs, applications, interviews, and analytics through the Model Context Protocol.16MIT
- AlicenseBqualityDmaintenanceModel Context Protocol (MCP) server for the Crelate ATS/CRM API, enabling Claude Code and other MCP clients to interact with Crelate recruiting and staffing workflows.422MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that connects AI agents to Homerun, an applicant tracking system. Enables AI-assisted candidate review: browse vacancies, inspect applications, and leave review notes.-
- FlicenseNot gradedqualityBmaintenanceA hosted MCP server for the BK Jr. recruiter agent that integrates voice (Retell AI), SMS (Quo/OpenPhone), and Google services, exposing tools for candidate management, outreach, and scheduling.-