Skip to main content
Glama
100Hires MCP Server

100Hires MCP Server

Official
by 100Hires

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-server

Claude 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

hires_list_candidates

List candidates with filters (job, stage, email, search, linkedin, timestamps)

hires_create_candidate

Create a new candidate with profile data

hires_get_candidate

Get candidate by ID or alias

hires_update_candidate

Update candidate fields

hires_delete_candidate

Delete a candidate

hires_list_candidate_tags

List candidate's tags

hires_add_candidate_tags

Attach tags to a candidate

hires_remove_candidate_tag

Remove a specific tag

hires_batch_add_tags

Bulk add tags to multiple candidates

hires_batch_remove_tags

Bulk remove tags from multiple candidates

hires_list_candidate_files

List candidate attachments

hires_upload_candidate_file

Upload a file (base64)

hires_get_candidate_resume

Get resume with optional text content

hires_list_candidate_activities

Get candidate timeline

hires_disqualify_candidate

Reject all active applications

hires_list_candidate_interviews

List candidate's interviews

hires_list_candidate_messages

List email history

hires_send_candidate_message

Schedule an email

Applications (18 tools)

Tool

Description

hires_list_applications

List applications with filters (candidate, job, stage, status, AI score)

hires_create_application

Link candidate to job

hires_get_application

Get application details

hires_update_application

Update application fields

hires_delete_application

Delete an application

hires_move_application

Move to a specific pipeline stage

hires_advance_application

Advance to the next stage

hires_hire_application

Mark as hired

hires_reject_application

Reject with optional reason

hires_unreject_application

Undo rejection

hires_transfer_application

Transfer to another job

hires_get_ai_score

Get AI scoring breakdown

hires_list_application_attachments

List attachments

hires_upload_application_attachment

Upload attachment

hires_list_application_evaluations

List filled evaluations

hires_create_interview

Schedule interview for application

hires_batch_move_applications

Bulk move to stage

hires_batch_reject_applications

Bulk reject

Jobs (17 tools)

Tool

Description

hires_list_jobs

List jobs with filters

hires_create_job

Create a job

hires_get_job

Get job by ID or alias

hires_update_job

Update job fields

hires_delete_job

Delete a job

hires_set_job_status

Change status (publish/archive/close)

hires_list_job_boards

List available job boards

hires_publish_to_job_board

Publish to a board

hires_remove_from_job_board

Remove from a board

hires_batch_job_boards

Get batch job board status

hires_batch_publish_to_boards

Publish to multiple boards

hires_batch_remove_from_boards

Remove from multiple boards

hires_list_hiring_team

List hiring team members

hires_add_hiring_team_member

Add hiring team member

hires_list_job_webhooks

List job webhooks

hires_create_job_webhook

Register a job webhook

hires_delete_job_webhook

Delete a job webhook

Messages (6 tools)

Tool

Description

hires_list_messages

List messages by mail account

hires_get_message

Get a scheduled message

hires_update_message

Full update of scheduled message

hires_patch_message

Partial update of scheduled message

hires_delete_message

Cancel a scheduled message

hires_batch_create_messages

Batch schedule up to 100 messages

Notification Messages (4 tools)

Tool

Description

hires_get_notification_message

Get a notification email (e.g. rejection) by ID

hires_update_notification_message

Update subject, body, reschedule send time

hires_delete_notification_message

Cancel a scheduled notification

hires_cancel_all_notification_messages

Cancel all scheduled notifications for a candidate

Interviews (2 tools)

Tool

Description

hires_list_interviews

List interviews with filters

hires_get_interview

Get interview details

Notes (5 tools)

Tool

Description

hires_list_notes

List candidate notes

hires_create_note

Create a note

hires_get_note

Get note details

hires_update_note

Update a note

hires_delete_note

Delete a note

Evaluations (1 tool)

Tool

Description

hires_get_evaluation

Get evaluation form with answers

Forms (6 tools)

Tool

Description

hires_list_forms

List application forms

hires_create_form

Create an application form

hires_get_form

Get form definition

hires_update_form

Update a form

hires_delete_form

Delete a form

hires_update_form_question

Update question visibility on a form

Email Templates (5 tools)

Tool

Description

hires_list_email_templates

List email templates

hires_create_email_template

Create a template

hires_get_email_template

Get template details

hires_update_email_template

Update a template

hires_delete_email_template

Delete a template

Nurture Campaigns (5 tools)

Tool

Description

hires_list_nurture_campaigns

List campaigns

hires_create_nurture_campaign

Create multi-step campaign

hires_get_nurture_campaign

Get campaign details

hires_update_nurture_campaign

Update a campaign

hires_delete_nurture_campaign

Delete a campaign

Users (3 tools)

Tool

Description

hires_list_users

List company users

hires_get_user

Get user details

hires_list_user_mail_accounts

List user's mail accounts

Companies (11 tools)

Tool

Description

hires_list_companies

List accessible companies

hires_create_company

Create a company

hires_get_company

Get company details

hires_update_company

Update company

hires_delete_company

Delete a company

hires_list_company_mail_accounts

List company mail accounts

hires_list_company_id_mail_accounts

List mail accounts for specific company

hires_restore_company

Restore deleted company

hires_list_webhooks

List company webhooks

hires_create_webhook

Register a webhook

hires_delete_webhook

Delete a webhook

Taxonomy & Reference (23 tools)

Tool

Description

hires_list_sources

Candidate sources (LinkedIn, Referral, etc.)

hires_list_origins

Candidate origins

hires_list_rejection_reasons

Rejection reason dictionary

hires_list_statuses

Job/application statuses

hires_list_departments

Company departments

hires_list_categories

Job categories

hires_list_education_levels

Education levels

hires_list_experience_levels

Experience levels

hires_list_employment_types

Employment types

hires_list_boards

Available job boards

hires_list_tags

All tags

hires_list_workflows

Hiring workflows

hires_list_workflow_stages

All pipeline stages

hires_get_workflow_stages

Stages for specific workflow

hires_list_questions

Reusable questions

hires_create_question

Create a question

hires_get_question

Get question details

hires_update_question

Update a question

hires_delete_question

Delete a question

hires_list_question_types

Available question types

hires_list_template_placeholders

Email template placeholders

hires_prepare_template_placeholders

Render placeholders

hires_get_billing

Check account pricing/features

Attachments (2 tools)

Tool

Description

hires_download_attachment

Download an attachment by absolute URL (resume, candidate file, application file, mail attachment, call recording). Returns base64-encoded bytes + metadata. 25 MB limit.

hires_upload_attachment

Upload a file as voicemail/candidate/application attachment. Voicemail upload produces a uuid usable as attachment_uuid in nurture-campaign voicemail steps.

Feedback (1 tool)

Tool

Description

hires_submit_feedback

Submit structured API feedback about issues or improvements

Career Site (3 tools, public)

Tool

Description

hires_list_career_jobs

Public job openings

hires_get_career_job

Get public job details

hires_submit_career_application

Submit application via career site

Career site tools use company_slug instead of API key authentication.

API Documentation

License

MIT

Available Tools

130 tools
hires_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

    B3.2/5.0

    Scored across 130 tools

    Disambiguation2/5

    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.

    Naming Consistency3/5

    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.

    Tool Count1/5

    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.

    Completeness4/5

    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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A 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.
      16
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Model 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.
      42
      2
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server that connects AI agents to Homerun, an applicant tracking system. Enables AI-assisted candidate review: browse vacancies, inspect applications, and leave review notes.
      -
    • F
      license
      Not graded
      quality
      B
      maintenance
      A 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.
      -