100Hires - AI ATS & Recruitment Software
com.100hires/100hiresOfficial 100Hires MCP: AI ATS & Recruitment Software for candidates, jobs, applications, interviews.
Tools · 131
List candidates with optional filters. Supports filtering by job, stage, email, name, LinkedIn, and date ranges. Returns paginated results. Recommended size <= 10: candidate payloads include the full …
Create a new candidate profile. Optionally link to a job/stage and attach the candidate's resume as extracted text. Used for imports, inbound forms, and enrichment workflows. When the user provides an…
Get full candidate data including application summaries by candidate ID or alias.
Update candidate fields, profile answers, and optional resume text. Used for bi-directional sync from ATS, CRM, sourcing, or enrichment tools. When the user provides an attached resume, parse it yours…
Permanently delete a candidate by ID or alias.
List all tags assigned to a candidate. Useful for segmentation and audience-based automations.
Add one or more tags to a candidate. Used for campaign tagging, qualification labels, and source attribution.
Remove a specific tag from a candidate.
Add tags to multiple candidates in one request (max 100). Returns per-item results with partial success support.
Remove tags from multiple candidates in one request (max 100). Returns per-item results with partial success support.
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/MI…
Upload a file for a candidate using a base64 payload. Used for portfolio uploads and document attachment. WARNING: host function-call serializers (both OpenAI and Anthropic) truncate tool arguments ab…
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 …
List timeline activities for a candidate (comments, stage moves, AI responses, etc.). Supports filtering by event type. Recommended size <= 10: copilot responses and call transcriptions can be large p…
Disqualify a candidate from all active applications. Optionally provide rejection reason IDs. Returns affected application IDs.
List all interviews for a candidate across all applications. Useful for timeline views and scheduling conflict detection.
List email and messaging history for a candidate. Use is_scheduled=1 to filter only pending scheduled messages. Recommended size <= 10: messages include full HTML body; if the response exceeds the bud…
Schedule an email message to a candidate. If scheduled_at is omitted, the message is scheduled for 15 minutes after creation.
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. Avoid inc…
Create an application by linking an existing candidate to a job. Use for sourcing workflows and manual application ingestion. The candidate must already exist.
Get full application details including stage, status, and rejection context. Recommended before mutating stage transitions.
Update application fields such as stage, disqualification flag, and CV. For explicit stage transitions prefer hires_move_application or hires_advance_application.
Permanently delete an application. This removes it from all list and view queries.
Moves an application to a specific pipeline stage for explicit stage transitions in workflow orchestration. Requires the target stage_id (available via the job's pipeline_stages).
Advance an application to the next pipeline stage according to workflow order. No stage_id needed -- the system determines the next stage automatically. **Always pass `include=candidate,job`** when su…
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.
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.
Undo a rejection and reopen a previously rejected application. The status returns to active and rejected_at is cleared.
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.
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.
Get the full chronological stage transition history for an application, including the initial assignment. Each entry has from_stage_id/name, to_stage_id/name, moved_at (Unix seconds), moved_by_type (s…
List all file attachments linked to an application (resumes, cover letters, documents). Returns file metadata and download URLs.
Upload a file attachment to an application. Provide the file as base64-encoded data. Commonly used for signed documents and interviewer artifacts.
List all filled evaluation forms for an application. Each evaluation includes the evaluator, summary score (strong-yes to strong-no), and summary text.
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.
Move multiple applications to a pipeline stage in one request. Returns per-item results with partial success support. Max 100 application IDs per request.
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.
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. Recommended size <= 10…
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…
Get full details of a job by ID or alias. Use `include` to load related workflow, hiring team, or pipeline stages data.
Update mutable job attributes. Only send fields you want to change. Preserves domain-level validation rules.
Delete a job. Use to align archived/removed positions across integrated platforms.
Change job status via dedicated endpoint. Recommended for publish/unpublish/archive transitions and status automation workflows.
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.
Activate selected job boards for a job. Sets boards to activation queue state. Use for controlled multi-board publishing workflows.
Deactivate selected board publications for a job. Stops the job from being listed on specified boards.
Get board publication states for multiple jobs in one request. Optimized for batch monitoring and management UIs.
Activate board publication for multiple jobs in one request. Use for bulk job distribution workflows.
Deactivate board publication for multiple jobs in one request. Use for bulk depublishing workflows.
List users currently assigned to a job's hiring team. Useful for notification routing and collaboration tooling.
Add a company member to the job's hiring team. Use in workflow setup and ownership automation.
List webhooks configured for job-level events. Use to audit subscriptions and deployment state.
Register a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS.
Delete a job webhook subscription by ID. Use for cleanup, rotation, and endpoint migration.
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, de…
Get a scheduled message by ID. Returns scheduler-backed message details including sender account, schedule timestamps, and cancelability.
Fully update (replace) a scheduled message before send time. All required fields must be provided.
Partially update a scheduled message before send time. Only provided fields are changed.
Cancel a scheduled message before it is processed by the mailbox scheduler.
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 R…
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.
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.
Cancel a scheduled notification email before it is sent. Already sent messages cannot be canceled.
Cancel all scheduled notification emails for a candidate. Already sent notifications are not affected. Returns success even if no scheduled notifications exist.
List interviews with optional filters by job, application, candidate, interviewer, date, or timestamps for incremental sync. Returns paginated results. **Always pass `include=candidate`** when surfaci…
Get full details of a specific interview by ID. Use `include` to embed related candidate, application, or job data.
List notes by candidate. Returns paginated discussion notes for a candidate. Use for shared recruiter context and timeline synchronization. Notes can contain long free-form text; if the response excee…
Create a discussion note for a candidate. Supports visibility control (all or private) and @mentions with email notifications. **Always pass `include=candidate`** when surfacing results in the widget …
Get a single note with author and visibility metadata. Use include=user to load author details.
Update note body and/or visibility without creating a new timeline item. Use for corrections and moderation workflows.
Delete a note. Use for moderation policies and data cleanup operations.
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 applic…
List application forms (paginated). Returns forms with their questions for the target company. Recommended size <= 10: each form embeds its full question list; if the response exceeds the budget the t…
Create a new application form, optionally attaching existing questions by ID.
Get form details including all questions with their statuses.
Update form name and question composition.
Delete an application form.
Update the status (required/optional/hidden) of a question inside a form.
List email templates for the target company. Returns paginated results with template name, subject, and body. Recommended size <= 10: templates include the full HTML body; if the response exceeds the …
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…
Get full details of a specific email template by ID, including subject and body content.
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.
Soft-delete an email template. Templates already used in automations will stop being available for new actions.
List nurture campaigns with pagination. Returns campaign summaries including steps.
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 b…
Get a single nurture campaign by ID with all steps and configuration details.
Update an existing nurture campaign. Pass all steps -- mark removed steps with is_deleted=true. Existing steps must include their id.
Delete (soft-delete) a nurture campaign. Active campaign executions will be stopped.
List users for the target company with role context. Returns paginated results useful for access reviews and hiring-team management.
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.
List mail accounts connected to a user. Use to resolve `from_account_id` before creating scheduled emails via POST /candidates/{id}/messages.
List partner-accessible companies with pagination. Use for tenant discovery and management panels.
Create a client company and link ownership context. Typical entrypoint for multi-tenant onboarding.
Get company profile and owner metadata. Use before updates or ownership-sensitive actions.
Update company profile, owner contact data, and optional logo. Supports partner-operated account management.
Delete a company. Use for lifecycle control in partner tenancy management.
List all mail accounts for all users in the current company. Use to resolve `from_account_id` before creating scheduled emails.
List all mail accounts for all users in a specific company. The company must be accessible (own company or a client).
Restore a previously deleted company and re-enable it for active use. Use for recovery and rollback scenarios.
List webhook subscriptions configured at company scope.
Create a company-scoped webhook subscription. Use for outbound company-level event integrations.
Delete a company-scoped webhook subscription by ID. Use for endpoint retirement and security rotation.
List candidate sources for the company. Use for attribution sync and reporting consistency.
List candidate origin taxonomy values. Use for attribution analytics and source normalization.
List configured rejection reasons for the company. Use to validate rejection actions and analytics.
List job status labels (draft, published, on_hold, closed, archived). Cache to validate job status updates.
List departments for the company. Use for job organization filters and reporting dimensions.
List global job categories. Use for job classification and consistent taxonomy mapping.
List education level taxonomy values. Useful for job requirements and structured matching.
List experience level taxonomy values for role seniority modeling.
List supported employment types (full-time, part-time, contract, etc.). Use for validation and normalization.
List available publishing boards with metadata. Use for distribution setup and board selection.
List all tags for the company. Returns paginated results. Recommended to cache for fast tagging UX.
List workflows with embedded stages for the company. Use to build stage-aware integrations and routing rules.
List pipeline stages filtered by workflow or job. Useful for transition UIs and workflow validation.
Get stages for a specific workflow by ID. Equivalent to hires_list_workflow_stages with workflow_id filter.
List paginated question catalog for the company.
Create a reusable question with optional answer options for dropdown types. Used by forms and questionnaires.
Get a question definition including type and options by ID.
Update text, type, or options of an existing question definition.
Delete a reusable question from the catalog. Use cautiously when deprecating question banks.
List available question types supported by the platform. Use to drive dynamic form builders.
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 g…
Convert a placeholder reference into an HTML tag for insertion into an email template body.
Get billing/pricing capability flags for the current company. Use before invoking paid-only API behaviors.
Submit structured API feedback about missing features, issues, or workflow improvements. Rate limited to 5 requests per hour.
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`, `res…
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` (c…
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.
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.
Submit a job application on behalf of a candidate. Creates a candidate record and triggers the career-site pipeline automation.
How to use
Add to your Claude Desktop / Cursor / Cline MCP config:
{
"mcpServers": {
"100hires_-_ai_ats_&_recruitment_software": {
"url": "https://mcp.100hires.com/mcp",
"transport": "streamable-http"
}
}
}