Connects Claude, Cursor, or any MCP client directly to your 100Hires ATS account over HTTP with OAuth 2.1 and PKCE. Exposes the full recruitment API: create and tag candidates, move applications through pipeline stages, schedule interviews, send batch emails, manage job postings, and pull timeline data. No local install needed, just point your client at the hosted endpoint and authenticate in browser. Reach for this when you want to query applicant status, automate candidate outreach, or let your AI assistant interact with your hiring pipeline without switching to the 100Hires UI. Includes fallback stdio support via the mcp-remote shim for older clients.
Public tool metadata for what this MCP can expose to an agent.
hires_list_candidatesList 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 profile answers array and can be large; if the response exceeds the budget th...13 paramsList 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 profile answers array and can be large; if the response exceeds the budget th...
qstringpagenumbersizenumberviewstringsummary · fulldefault: summaryemailstringjob_idnumberincludestringlinkedinstringstage_idnumberfull_namestringcompany_idnumbercreated_afternumberupdated_afternumberhires_create_candidateCreate a new candidate profile. Optionally link to a job/stage and attach a CV. Used for imports, inbound forms, and enrichment workflows.9 paramsCreate a new candidate profile. Optionally link to a job/stage and attach a CV. Used for imports, inbound forms, and enrichment workflows.
cvobjectemailstringphonestringjob_idnumberprofileobjectstage_idnumberlast_namestringcompany_idnumberfirst_namestringhires_get_candidateGet full candidate data including application summaries by candidate ID or alias.1 paramsGet full candidate data including application summaries by candidate ID or alias.
idstring | numberhires_update_candidateUpdate candidate fields, profile answers, and optional CV. Used for bi-directional sync from ATS, CRM, sourcing, or enrichment tools.9 paramsUpdate candidate fields, profile answers, and optional CV. Used for bi-directional sync from ATS, CRM, sourcing, or enrichment tools.
cvobjectidstring | numberemailstringphonestringjob_idnumberprofileobjectstage_idnumberlast_namestringfirst_namestringhires_delete_candidatePermanently delete a candidate by ID or alias.1 paramsPermanently delete a candidate by ID or alias.
idstring | numberhires_list_candidate_tagsList all tags assigned to a candidate. Useful for segmentation and audience-based automations.1 paramsList all tags assigned to a candidate. Useful for segmentation and audience-based automations.
idstring | numberhires_add_candidate_tagsAdd one or more tags to a candidate. Used for campaign tagging, qualification labels, and source attribution.2 paramsAdd one or more tags to a candidate. Used for campaign tagging, qualification labels, and source attribution.
idstring | numbertagsarrayhires_remove_candidate_tagRemove a specific tag from a candidate.2 paramsRemove a specific tag from a candidate.
idstring | numbertagstringhires_batch_add_tagsAdd tags to multiple candidates in one request (max 100). Returns per-item results with partial success support.2 paramsAdd tags to multiple candidates in one request (max 100). Returns per-item results with partial success support.
idsarraytagsarrayhires_batch_remove_tagsRemove tags from multiple candidates in one request (max 100). Returns per-item results with partial success support.2 paramsRemove tags from multiple candidates in one request (max 100). Returns per-item results with partial success support.
idsarraytagsarrayhires_list_candidate_filesList 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). Default response is compact; avo...1 paramsList 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). Default response is compact; avo...
idstring | numberhires_upload_candidate_fileUpload a file for a candidate using a base64 payload. Used for resume ingestion, portfolio uploads, and document attachment.2 paramsUpload a file for a candidate using a base64 payload. Used for resume ingestion, portfolio uploads, and document attachment.
idstring | numberfileobjecthires_get_candidate_resumeGet 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.2 paramsGet 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.
idstring | numberincludestringhires_list_candidate_activitiesList 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 per event; if the response exceeds the budget the tool returns isError:true wi...7 paramsList 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 per event; if the response exceeds the budget the tool returns isError:true wi...
idstring | numberpagenumbersizenumberviewstringsummary · fulldefault: summarysincenumberuntilnumberevent_typestringhires_disqualify_candidateDisqualify a candidate from all active applications. Optionally provide rejection reason IDs. Returns affected application IDs.2 paramsDisqualify a candidate from all active applications. Optionally provide rejection reason IDs. Returns affected application IDs.
idstring | numberreasonsarrayhires_list_candidate_interviewsList all interviews for a candidate across all applications. Useful for timeline views and scheduling conflict detection.3 paramsList all interviews for a candidate across all applications. Useful for timeline views and scheduling conflict detection.
idstring | numberpagenumbersizenumberhires_list_candidate_messagesList 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 budget the tool returns isError:true with error_code=response_too_large and retr...5 paramsList 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 budget the tool returns isError:true with error_code=response_too_large and retr...
idstring | numberpagenumbersizenumberviewstringsummary · fulldefault: summaryis_schedulednumberhires_send_candidate_messageSchedule an email message to a candidate. If scheduled_at is omitted, the message is scheduled for 15 minutes after creation.11 paramsSchedule an email message to a candidate. If scheduled_at is omitted, the message is scheduled for 15 minutes after creation.
ccarrayidstring | numbertoarraybccarraybodystringsubjectstringscheduled_atnumberapplication_idnumberfrom_account_idnumberreply_to_email_idnumbersend_in_new_threadbooleanhires_list_applicationsList 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 include=candidate or include=cv.text on large pages (each embeds heavy nested da...13 paramsList 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 include=candidate or include=cv.text on large pages (each embeds heavy nested da...
pagenumbersizenumbersortstringcreated_at · -created_at · ai_score · -ai_scorejob_idnumberstatusstringpending · hired · rejectedincludestringstage_idnumbercompany_idnumberai_score_maxnumberai_score_minnumbercandidate_idnumbercreated_afternumberupdated_afternumberhires_create_applicationCreate an application by linking an existing candidate to a job. Use for sourcing workflows and manual application ingestion. The candidate must already exist.5 paramsCreate an application by linking an existing candidate to a job. Use for sourcing workflows and manual application ingestion. The candidate must already exist.
cvobjectjob_idnumberincludestringstage_idnumbercandidate_idstring | numberhires_get_applicationGet full application details including stage, status, and rejection context. Recommended before mutating stage transitions.2 paramsGet full application details including stage, status, and rejection context. Recommended before mutating stage transitions.
idnumberincludestringhires_update_applicationUpdate application fields such as stage, disqualification flag, and CV. For explicit stage transitions prefer hires_move_application or hires_advance_application.5 paramsUpdate application fields such as stage, disqualification flag, and CV. For explicit stage transitions prefer hires_move_application or hires_advance_application.
cvobjectidnumberincludestringstage_idnumberis_disqualifiedbooleanhires_delete_applicationPermanently delete an application. This removes it from all list and view queries.1 paramsPermanently delete an application. This removes it from all list and view queries.
idnumberhires_move_applicationMove 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).3 paramsMove 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).
idnumberincludestringstage_idnumberhires_advance_applicationAdvance an application to the next pipeline stage according to workflow order. No stage_id needed -- the system determines the next stage automatically.2 paramsAdvance an application to the next pipeline stage according to workflow order. No stage_id needed -- the system determines the next stage automatically.
idnumberincludestringhires_hire_applicationMark an application as hired. This is the finalization step in a hiring workflow. The application status changes to 'hired' and hired_at is set.2 paramsMark an application as hired. This is the finalization step in a hiring workflow. The application status changes to 'hired' and hired_at is set.
idnumberincludestringhires_reject_applicationReject 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.4 paramsReject 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.
idnumberincludestringrejection_reason_idnumbersuppress_notificationbooleanhires_unreject_applicationUndo a rejection and reopen a previously rejected application. The status returns to active and rejected_at is cleared.2 paramsUndo a rejection and reopen a previously rejected application. The status returns to active and rejected_at is cleared.
idnumberincludestringhires_transfer_applicationTransfer an application to another job. A new application is created on the target job. Optionally specify a stage on the target job's pipeline.4 paramsTransfer an application to another job. A new application is created on the target job. Optionally specify a stage on the target job's pipeline.
idnumberjob_idnumberincludestringstage_idnumberhires_get_ai_scoreGet 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.1 paramsGet 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.
idnumberhires_list_application_stage_historyGet 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 (system, user, automation), and moved_by_user_id. Use this for funnel analysis...1 paramsGet 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 (system, user, automation), and moved_by_user_id. Use this for funnel analysis...
idnumberhires_list_application_attachmentsList all file attachments linked to an application (resumes, cover letters, documents). Returns file metadata and download URLs.1 paramsList all file attachments linked to an application (resumes, cover letters, documents). Returns file metadata and download URLs.
idnumberhires_upload_application_attachmentUpload a file attachment to an application. Provide the file as base64-encoded data. Commonly used for signed documents and interviewer artifacts.2 paramsUpload a file attachment to an application. Provide the file as base64-encoded data. Commonly used for signed documents and interviewer artifacts.
idnumberfileobjecthires_list_application_evaluationsList all filled evaluation forms for an application. Each evaluation includes the evaluator, summary score (strong-yes to strong-no), and summary text.2 paramsList all filled evaluation forms for an application. Each evaluation includes the evaluator, summary score (strong-yes to strong-no), and summary text.
idnumberviewstringsummary · fulldefault: summaryhires_create_interviewSchedule 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.6 paramsSchedule 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.
idnumberincludestringend_timenumberlocationstringstart_timenumberinterviewer_idsarrayhires_batch_move_applicationsMove multiple applications to a pipeline stage in one request. Returns per-item results with partial success support. Max 100 application IDs per request.2 paramsMove multiple applications to a pipeline stage in one request. Returns per-item results with partial success support. Max 100 application IDs per request.
idsarraystage_idnumberhires_batch_reject_applicationsReject multiple applications in one request with an optional rejection reason. Returns per-item results with partial success support. Max 100 application IDs per request.2 paramsReject multiple applications in one request with an optional rejection reason. Returns per-item results with partial success support. Max 100 application IDs per request.
idsarrayrejection_reason_idnumberhires_list_jobsList 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: full job payloads include description HTML and can be large; if the respons...11 paramsList 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: full job payloads include description HTML and can be large; if the respons...
qstringpagenumbersizenumberviewstringsummary · fulldefault: summarystatusstringincludestringcompany_idnumberdepartment_idnumberupdated_afternumbercreated_at_endnumbercreated_at_startnumberhires_create_jobCreate a job with taxonomy, location, salary, and workflow configuration. Primary endpoint for programmatic job publishing. Required fields: status, title, description, location_city, location_country.29 paramsCreate a job with taxonomy, location, salary, and workflow configuration. Primary endpoint for programmatic job publishing. Required fields: status, title, description, location_city, location_country.
titlestringstatusstringform_idnumberincludestringis_remotebooleancompany_idnumbersalary_maxnumbersalary_minnumbercategory_idnumberdescriptionstringworkflow_idnumberdepartment_idnumberlocation_citystringparent_job_idnumbersalary_periodstringannually · monthly · daily · hourlyinternal_titlestringlocation_statestringinternal_job_idstringsalary_currencystringlocation_countrystringeducation_level_idnumberemployment_type_idnumberknockout_questionsarrayai_scoring_criteriaarrayexperience_level_idnumberresume_field_statusstringrequired · optional · hiddenlocation_postal_codestringlocation_full_addressstringlocation_street_addressstringhires_get_jobGet full details of a job by ID or alias. Use `include` to load related workflow, hiring team, or pipeline stages data.2 paramsGet full details of a job by ID or alias. Use `include` to load related workflow, hiring team, or pipeline stages data.
idstring | numberincludestringhires_update_jobUpdate mutable job attributes. Only send fields you want to change. Preserves domain-level validation rules.29 paramsUpdate mutable job attributes. Only send fields you want to change. Preserves domain-level validation rules.
idstring | numbertitlestringstatusstringform_idnumberincludestringis_remotebooleansalary_maxnumbersalary_minnumbercategory_idnumberdescriptionstringworkflow_idnumberdepartment_idnumberlocation_citystringparent_job_idnumbersalary_periodstringannually · monthly · daily · hourlyinternal_titlestringlocation_statestringinternal_job_idstringsalary_currencystringlocation_countrystringeducation_level_idnumberemployment_type_idnumberknockout_questionsarrayai_scoring_criteriaarrayexperience_level_idnumberresume_field_statusstringrequired · optional · hiddenlocation_postal_codestringlocation_full_addressstringlocation_street_addressstringhires_delete_jobDelete a job. Use to align archived/removed positions across integrated platforms.1 paramsDelete a job. Use to align archived/removed positions across integrated platforms.
idstring | numberhires_set_job_statusChange job status via dedicated endpoint. Recommended for publish/unpublish/archive transitions and status automation workflows.3 paramsChange job status via dedicated endpoint. Recommended for publish/unpublish/archive transitions and status automation workflows.
idstring | numberstatusstringincludestringhires_list_job_boardsGet current board publication state for a specific job. Returns which job boards the job is published to. Useful for distribution dashboards and posting audits.1 paramsGet current board publication state for a specific job. Returns which job boards the job is published to. Useful for distribution dashboards and posting audits.
idstring | numberhires_publish_to_job_boardActivate selected job boards for a job. Sets boards to activation queue state. Use for controlled multi-board publishing workflows.2 paramsActivate selected job boards for a job. Sets boards to activation queue state. Use for controlled multi-board publishing workflows.
idstring | numberboardsarrayhires_remove_from_job_boardDeactivate selected board publications for a job. Stops the job from being listed on specified boards.2 paramsDeactivate selected board publications for a job. Stops the job from being listed on specified boards.
idstring | numberboardsarrayhires_batch_job_boardsGet board publication states for multiple jobs in one request. Optimized for batch monitoring and management UIs.1 paramsGet board publication states for multiple jobs in one request. Optimized for batch monitoring and management UIs.
jobsarrayhires_batch_publish_to_boardsActivate board publication for multiple jobs in one request. Use for bulk job distribution workflows.2 paramsActivate board publication for multiple jobs in one request. Use for bulk job distribution workflows.
jobsarrayboardsarrayhires_batch_remove_from_boardsDeactivate board publication for multiple jobs in one request. Use for bulk depublishing workflows.2 paramsDeactivate board publication for multiple jobs in one request. Use for bulk depublishing workflows.
jobsarrayboardsarrayhires_list_hiring_teamList users currently assigned to a job's hiring team. Useful for notification routing and collaboration tooling.1 paramsList users currently assigned to a job's hiring team. Useful for notification routing and collaboration tooling.
idstring | numberhires_add_hiring_team_memberAdd a company member to the job's hiring team. Use in workflow setup and ownership automation.2 paramsAdd a company member to the job's hiring team. Use in workflow setup and ownership automation.
idstring | numberuser_idnumberhires_list_job_webhooksList webhooks configured for job-level events. Use to audit subscriptions and deployment state.1 paramsList webhooks configured for job-level events. Use to audit subscriptions and deployment state.
idstring | numberhires_create_job_webhookRegister a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS.2 paramsRegister a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS.
idstring | numberurlstringhires_delete_job_webhookDelete a job webhook subscription by ID. Use for cleanup, rotation, and endpoint migration.2 paramsDelete a job webhook subscription by ID. Use for cleanup, rotation, and endpoint migration.
idstring | numberwebhook_idnumberhires_list_messagesList 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. Recommended size <= 10: messages include...7 paramsList 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. Recommended size <= 10: messages include...
pageintegersizeintegerviewstringsummary · fulldefault: summarystatusstringscheduled · sent · alldate_tointegerdate_fromintegerfrom_account_idintegerhires_get_messageGet a scheduled message by ID. Returns scheduler-backed message details including sender account, schedule timestamps, and cancelability.1 paramsGet a scheduled message by ID. Returns scheduler-backed message details including sender account, schedule timestamps, and cancelability.
idintegerhires_update_messageFully update (replace) a scheduled message before send time. All required fields must be provided.10 paramsFully update (replace) a scheduled message before send time. All required fields must be provided.
ccarrayidintegertoarraybccarraybodystringsubjectstringscheduled_atvaluefrom_account_idvaluereply_to_email_idvaluesend_in_new_threadbooleanhires_patch_messagePartially update a scheduled message before send time. Only provided fields are changed.10 paramsPartially update a scheduled message before send time. Only provided fields are changed.
ccarrayidintegertoarraybccarraybodystringsubjectstringscheduled_atvaluefrom_account_idvaluereply_to_email_idvaluesend_in_new_threadbooleanhires_delete_messageCancel a scheduled message before it is processed by the mailbox scheduler.1 paramsCancel a scheduled message before it is processed by the mailbox scheduler.
idintegerhires_batch_create_messagesCreate 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.1 paramsCreate 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.
messagesarrayhires_get_notification_messageGet 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.1 paramsGet 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.
idintegerhires_update_notification_messageUpdate 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.4 paramsUpdate 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.
idintegerbodystringsubjectstringscheduled_atvaluehires_delete_notification_messageCancel a scheduled notification email before it is sent. Already sent messages cannot be canceled.1 paramsCancel a scheduled notification email before it is sent. Already sent messages cannot be canceled.
idintegerhires_cancel_all_notification_messagesCancel all scheduled notification emails for a candidate. Already sent notifications are not affected. Returns success even if no scheduled notifications exist.1 paramsCancel all scheduled notification emails for a candidate. Already sent notifications are not affected. Returns success even if no scheduled notifications exist.
candidate_idvaluehires_list_interviewsList interviews with optional filters by job, application, candidate, interviewer, date, or timestamps for incremental sync. Returns paginated results. Avoid include=job on large pages (embeds full job description per interview); if the response exceeds the budget the tool ret...11 paramsList interviews with optional filters by job, application, candidate, interviewer, date, or timestamps for incremental sync. Returns paginated results. Avoid include=job on large pages (embeds full job description per interview); if the response exceeds the budget the tool ret...
datestringpagenumbersizenumberjob_idnumberincludestringcompany_idnumbercandidate_idnumbercreated_afternumberupdated_afternumberapplication_idnumberinterviewer_user_idnumberhires_get_interviewGet full details of a specific interview by ID. Use `include` to embed related candidate, application, or job data.2 paramsGet full details of a specific interview by ID. Use `include` to embed related candidate, application, or job data.
idnumberincludestringhires_list_notesList 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 exceeds the budget the tool returns isError:true with error_code=response_too_larg...5 paramsList 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 exceeds the budget the tool returns isError:true with error_code=response_too_larg...
pagenumbersizenumberviewstringsummary · fulldefault: summaryincludestringcandidate_idstring | numberhires_create_noteCreate a discussion note for a candidate. Supports visibility control (all or private) and @mentions with email notifications.6 paramsCreate a discussion note for a candidate. Supports visibility control (all or private) and @mentions with email notifications.
bodystringincludestringuser_idnumbervisibilitystringcandidate_idstring | numbermention_user_idsarrayhires_get_noteGet a single note with author and visibility metadata. Use include=user to load author details.2 paramsGet a single note with author and visibility metadata. Use include=user to load author details.
idnumberincludestringhires_update_noteUpdate note body and/or visibility without creating a new timeline item. Use for corrections and moderation workflows.4 paramsUpdate note body and/or visibility without creating a new timeline item. Use for corrections and moderation workflows.
idnumberbodystringincludestringvisibilitystringhires_delete_noteDelete a note. Use for moderation policies and data cleanup operations.1 paramsDelete a note. Use for moderation policies and data cleanup operations.
idnumberhires_get_evaluationGet 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.1 paramsGet 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.
idnumberhires_list_formsList 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 tool returns isError:true with error_code=response_too_large and retry hints.4 paramsList 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 tool returns isError:true with error_code=response_too_large and retry hints.
pagenumbersizenumberviewstringsummary · fulldefault: summarycompany_idnumberhires_create_formCreate a new application form, optionally attaching existing questions by ID.3 paramsCreate a new application form, optionally attaching existing questions by ID.
namestringquestionsarraycompany_idnumberhires_get_formGet form details including all questions with their statuses.1 paramsGet form details including all questions with their statuses.
idnumberhires_update_formUpdate form name and question composition.3 paramsUpdate form name and question composition.
idnumbernamestringquestionsarrayhires_delete_formDelete an application form.1 paramsDelete an application form.
idnumberhires_update_form_questionUpdate the status (required/optional/hidden) of a question inside a form.3 paramsUpdate the status (required/optional/hidden) of a question inside a form.
statusstringrequired · optional · hiddenform_idnumberquestion_idnumberhires_list_email_templatesList 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 budget the tool returns isError:true with error_code=response_too_large and r...4 paramsList 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 budget the tool returns isError:true with error_code=response_too_large and r...
pagenumbersizenumberviewstringsummary · fulldefault: summarycompany_idnumberhires_create_email_templateCreate 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...4 paramsCreate 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...
bodystringnamestringsubjectstringcompany_idnumberOfficial Model Context Protocol server for 100Hires — the applicant tracking system for recruiting teams.
Connect ChatGPT, Claude, Cursor, or any MCP-compatible AI assistant to your 100Hires account and manage candidates, jobs, applications, interviews, messages, and more — all without writing code.
Full documentation, screenshots, and demo: https://100hires.com/mcp
The server is hosted at https://mcp.100hires.com/mcp with OAuth 2.1 authentication (DCR + PKCE). No install required — just point your client at the URL and authenticate via the browser.
Settings → Custom Connectors → Add → URL: https://mcp.100hires.com/mcp → complete OAuth.
claude mcp add --transport http 100hires https://mcp.100hires.com/mcp
Or in .mcp.json:
{
"mcpServers": {
"100hires": {
"type": "http",
"url": "https://mcp.100hires.com/mcp"
}
}
}
Settings → Developer → Custom Connectors → Add Custom Connector → URL: https://mcp.100hires.com/mcp.
~/.cursor/mcp.json:
{
"mcpServers": {
"100hires": {
"type": "http",
"url": "https://mcp.100hires.com/mcp"
}
}
}
~/.codex/config.toml:
[mcp_servers.100hires]
url = "https://mcp.100hires.com/mcp"
.vscode/mcp.json:
{
"servers": {
"100hires": {
"type": "http",
"url": "https://mcp.100hires.com/mcp"
}
}
}
mcp-remote shim)For older clients that don't yet support HTTP transport natively, use the third-party mcp-remote bridge:
{
"mcpServers": {
"100hires": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.100hires.com/mcp"]
}
}
}
The server exposes the full 100Hires API as MCP tools, covering:
See the full tool reference at https://100hires.com/mcp/tools.
The server uses OAuth 2.1 with Dynamic Client Registration (RFC 7591) and PKCE per the MCP authorization spec.
Compatible clients discover the OAuth metadata automatically — no manual API key setup required. You can revoke a connected client at any time from Settings → API → Connected AI clients in your 100Hires account.
com.100hires/100hiresMIT — see LICENSE.