
100Hires - AI ATS & Recruitment Software
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.
- tools
- 80
- transport
- HTTP
- last updated
- May 15, 2026
Install
From registry metadata$ npx add-mcp https://mcp.100hires.com/mcp --name 100hiresRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http 100hires https://mcp.100hires.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 80 toolsVerified live against the running server on Nov 6, 2026.
hires_list_candidatesList candidates filtered by job, stage, email, name, LinkedIn or dates. Prefer size <= 10.13 params
List candidates filtered by job, stage, email, name, LinkedIn or dates. Prefer size <= 10.
company_idnumbercreated_afternumber | stringemailstringfull_namestringincludestringjob_idnumberlinkedinstringpagenumberqstringsizenumberstage_idnumberupdated_afternumber | stringviewstringsummary · fulldefault: summaryhires_create_candidateCreate a candidate, optionally with an application (job_id, stage_id) and resume text. Parse an attached resume yourself and pass the text via resume_text; never inline binary data.13 params
Create a candidate, optionally with an application (job_id, stage_id) and resume text. Parse an attached resume yourself and pass the text via resume_text; never inline binary data.
citystringcompany_idnumbercountrystringemailstringfirst_namestringjob_idnumberlast_namestringphonestringprofileobjectresume_textstringstage_idnumberstatestringtimezonestringhires_get_candidateGet a candidate with application summaries.1 params
Get a candidate with application summaries.
id*string | numberhires_update_candidateUpdate candidate fields, profile answers or resume text. For an attached resume pass the parsed text via resume_text; never inline binary data.13 params
Update candidate fields, profile answers or resume text. For an attached resume pass the parsed text via resume_text; never inline binary data.
citystringcountrystringemailstringfirst_namestringid*string | numberjob_idnumberlast_namestringphonestringprofileobjectresume_textstringstage_idnumberstatestringtimezonestringhires_delete_candidatePermanently delete a candidate.1 params
Permanently delete a candidate.
id*string | numberhires_list_candidate_tagsList a candidate's tags.1 params
List a candidate's tags.
id*string | numberhires_add_candidate_tagsAdd tags to a candidate.2 params
Add tags to a candidate.
id*string | numbertags*arrayhires_remove_candidate_tagRemove one tag from a candidate.2 params
Remove one tag from a candidate.
id*string | numbertag*stringhires_batch_add_tagsAdd tags to up to 100 candidates; returns per-item results.2 params
Add tags to up to 100 candidates; returns per-item results.
ids*arraytags*arrayhires_batch_remove_tagsRemove tags from up to 100 candidates; returns per-item results.2 params
Remove tags from up to 100 candidates; returns per-item results.
ids*arraytags*arrayhires_list_candidate_filesList a candidate's files (resume and other documents): uuid, download url, file metadata, type.1 params
List a candidate's files (resume and other documents): uuid, download url, file metadata, type.
id*string | numberhires_upload_candidate_fileUpload a base64 file to a candidate. Hosts truncate tool arguments above ~20 KB, so for resumes prefer resume_text in hires_create_candidate or hires_update_candidate.2 params
Upload a base64 file to a candidate. Hosts truncate tool arguments above ~20 KB, so for resumes prefer resume_text in hires_create_candidate or hires_update_candidate.
file*objectid*string | numberhires_get_candidate_resumeGet a candidate's primary resume: uuid, download url, file metadata, type. include=text_content adds the parsed plain text.2 params
Get a candidate's primary resume: uuid, download url, file metadata, type. include=text_content adds the parsed plain text.
id*string | numberincludestringhires_list_candidate_activitiesList a candidate's timeline events. Prefer size <= 10. event_type values: comment, copilot_response, stage_moved, automation_action_triggered, assign_job, enrichment, call, validate_emails, profile_mutation, qualification, assign_tags, assign_sources, candidate_rate.7 params
List a candidate's timeline events. Prefer size <= 10. event_type values: comment, copilot_response, stage_moved, automation_action_triggered, assign_job, enrichment, call, validate_emails, profile_mutation, qualification, assign_tags, assign_sources, candidate_rate.
event_typestringid*string | numberpagenumbersincenumber | stringsizenumberuntilnumber | stringviewstringsummary · fulldefault: summaryhires_disqualify_candidateReject all active applications of a candidate; returns the affected application ids.2 params
Reject all active applications of a candidate; returns the affected application ids.
id*string | numberreasonsarrayhires_list_candidate_interviewsList a candidate's interviews across all applications.3 params
List a candidate's interviews across all applications.
id*string | numberpagenumbersizenumberhires_list_candidate_messagesList a candidate's email history; is_scheduled=1 returns only pending scheduled messages. Prefer size <= 10.5 params
List a candidate's email history; is_scheduled=1 returns only pending scheduled messages. Prefer size <= 10.
id*string | numberis_schedulednumberpagenumbersizenumberviewstringsummary · fulldefault: summaryhires_send_candidate_messageSchedule an email to a candidate; without scheduled_at it is sent 15 minutes after creation.11 params
Schedule an email to a candidate; without scheduled_at it is sent 15 minutes after creation.
application_idnumberbccarraybody*stringccarrayfrom_account_idnumberid*string | numberreply_to_email_idnumberscheduled_atnumbersend_in_new_threadbooleansubject*stringto*arrayhires_list_applicationsList applications across accessible jobs with filters by candidate, job, stage, status, AI score and dates. Each item embeds its current stage, so a pipeline view needs no extra job call.13 params
List applications across accessible jobs with filters by candidate, job, stage, status, AI score and dates. Each item embeds its current stage, so a pipeline view needs no extra job call.
ai_score_maxnumberai_score_minnumbercandidate_idnumbercompany_idnumbercreated_afternumber | stringincludestringjob_idnumberpagenumbersizenumbersortstringcreated_at · -created_at · ai_score · -ai_score · last_message_at · -last_message_atstage_idnumberstatusstringpending · hired · rejectedupdated_afternumber | stringhires_create_applicationLink an existing candidate to a job, creating an application.5 params
Link an existing candidate to a job, creating an application.
candidate_id*string | numbercvobjectincludestringjob_id*numberstage_idnumberhires_get_applicationGet an application with its stage, status and rejection context.2 params
Get an application with its stage, status and rejection context.
id*numberincludestringhires_update_applicationUpdate application fields. stage_id performs a full stage transition with the target stage's automation, like hires_move_application.5 params
Update application fields. stage_id performs a full stage transition with the target stage's automation, like hires_move_application.
cvobjectid*numberincludestringis_disqualifiedbooleanstage_idnumberhires_delete_applicationPermanently delete an application.1 params
Permanently delete an application.
id*numberhires_move_applicationMove an application to a specific pipeline stage; stage ids come from the job's pipeline_stages.3 params
Move an application to a specific pipeline stage; stage ids come from the job's pipeline_stages.
id*numberincludestringstage_id*numberhires_advance_applicationAdvance an application to the next stage in workflow order; no stage_id needed.2 params
Advance an application to the next stage in workflow order; no stage_id needed.
id*numberincludestringhires_hire_applicationMark an application as hired: status becomes hired and hired_at is set.2 params
Mark an application as hired: status becomes hired and hired_at is set.
id*numberincludestringhires_reject_applicationReject an application, optionally with a reason and without the rejection email.4 params
Reject an application, optionally with a reason and without the rejection email.
id*numberincludestringrejection_reason_idnumbersuppress_notificationbooleanhires_unreject_applicationReopen a rejected application: status returns to active and rejected_at is cleared.2 params
Reopen a rejected application: status returns to active and rejected_at is cleared.
id*numberincludestringhires_transfer_applicationTransfer an application to another job by creating a new application there, optionally at a given stage.4 params
Transfer an application to another job by creating a new application there, optionally at a given stage.
id*numberincludestringjob_id*numberstage_idnumberhires_get_ai_scoreGet the AI score of an application with per-criterion scores, justifications and follow-up questions; null score until scored.1 params
Get the AI score of an application with per-criterion scores, justifications and follow-up questions; null score until scored.
id*numberhires_list_application_stage_historyChronological stage transitions of an application, including the initial assignment: from/to stage, moved_at, moved_by_type (system, user, automation), moved_by_user_id and source. Prefer it over candidate activities for stage reports.1 params
Chronological stage transitions of an application, including the initial assignment: from/to stage, moved_at, moved_by_type (system, user, automation), moved_by_user_id and source. Prefer it over candidate activities for stage reports.
id*numberhires_list_application_attachmentsList an application's attachments with file metadata and download URLs.1 params
List an application's attachments with file metadata and download URLs.
id*numberhires_upload_application_attachmentUpload a base64-encoded file as an application attachment.2 params
Upload a base64-encoded file as an application attachment.
file*objectid*numberhires_list_application_evaluationsList filled evaluation forms of an application with evaluator, summary score (strong-yes to strong-no) and summary text.2 params
List filled evaluation forms of an application with evaluator, summary score (strong-yes to strong-no) and summary text.
id*numberviewstringsummary · fulldefault: summaryhires_create_interviewSchedule an interview for an application. The location is matched to an existing record or created.6 params
Schedule an interview for an application. The location is matched to an existing record or created.
end_time*numberid*numberincludestringinterviewer_ids*arraylocationstringstart_time*numberhires_batch_move_applicationsMove up to 100 applications to a stage in one request; per-item results, partial success allowed.2 params
Move up to 100 applications to a stage in one request; per-item results, partial success allowed.
ids*arraystage_id*numberhires_batch_reject_applicationsReject up to 100 applications in one request, optionally with a reason; per-item results, partial success allowed.2 params
Reject up to 100 applications in one request, optionally with a reason; per-item results, partial success allowed.
ids*arrayrejection_reason_idnumberhires_list_jobsList jobs filtered by status, creation/update time, department or search query.11 params
List jobs filtered by status, creation/update time, department or search query.
company_idnumbercreated_at_endnumber | stringcreated_at_startnumber | stringdepartment_idnumberincludestringpagenumberqstringsizenumberstatusstringupdated_afternumber | stringviewstringsummary · fulldefault: summaryhires_create_jobCreate a job. Required: status, title, description, location_country; location_city unless is_remote is true.30 params
Create a job. Required: status, title, description, location_country; location_city unless is_remote is true.
ai_scoring_criteriaarraycategory_idnumbercompany_idnumberdepartment_idnumberdescription*stringeducation_level_idnumberemployment_type_idnumberexperience_level_idnumberform_idnumberincludestringinternal_job_idstringinternal_titlestringis_remotebooleanknockout_questionsarraylanguagevaluelocation_citystringlocation_country*stringlocation_full_addressstringlocation_postal_codestringlocation_statestring+10 more parameters. See the server's own documentation for the full schema.
hires_get_jobGet a job by id or alias.2 params
Get a job by id or alias.
id*string | numberincludestringhires_update_jobUpdate a job. Send only the fields to change.30 params
Update a job. Send only the fields to change.
ai_scoring_criteriaarraycategory_idnumberdepartment_idnumberdescriptionstringeducation_level_idnumberemployment_type_idnumberexperience_level_idnumberform_idnumberid*string | numberincludestringinternal_job_idstringinternal_titlestringis_remotebooleanknockout_questionsarraylanguagevaluelocation_citystringlocation_countrystringlocation_full_addressstringlocation_postal_codestringlocation_statestring+10 more parameters. See the server's own documentation for the full schema.
hires_delete_jobDelete a job.1 params
Delete a job.
id*string | numberhires_set_job_statusChange job status (publish, unpublish, archive).3 params
Change job status (publish, unpublish, archive).
id*string | numberincludestringstatus*stringhires_list_job_boardsList job boards the job is published to, with their state.1 params
List job boards the job is published to, with their state.
id*string | numberhires_publish_to_job_boardQueue the job for publication on the given boards.2 params
Queue the job for publication on the given boards.
boardsarrayid*string | numberhires_remove_from_job_boardDeactivate the job's publication on the given boards.2 params
Deactivate the job's publication on the given boards.
boardsarrayid*string | numberhires_batch_job_boardsGet board publication states for several jobs at once.1 params
Get board publication states for several jobs at once.
jobs*arrayhires_batch_publish_to_boardsQueue several jobs for publication on the given boards.2 params
Queue several jobs for publication on the given boards.
boardsarrayjobs*arrayhires_batch_remove_from_boardsDeactivate publication of several jobs on the given boards.2 params
Deactivate publication of several jobs on the given boards.
boardsarrayjobs*arrayhires_list_hiring_teamList users on the job's hiring team.1 params
List users on the job's hiring team.
id*string | numberhires_add_hiring_team_memberAdd a company user to the job's hiring team.2 params
Add a company user to the job's hiring team.
id*string | numberuser_id*numberhires_list_job_webhooksList webhooks subscribed to this job's events.1 params
List webhooks subscribed to this job's events.
id*string | numberhires_create_job_webhookRegister an HTTPS webhook for this job's events. Returns signing_secret once; use it to verify the x-hires-signature-v2 header.2 params
Register an HTTPS webhook for this job's events. Returns signing_secret once; use it to verify the x-hires-signature-v2 header.
id*string | numberurl*stringhires_delete_job_webhookDelete a job webhook.2 params
Delete a job webhook.
id*string | numberwebhook_id*numberhires_rotate_job_webhook_secretRotate the signing secret; the new one is returned once, the old stays valid for a grace window.2 params
Rotate the signing secret; the new one is returned once, the old stays valid for a grace window.
id*string | numberwebhook_id*numberhires_list_messagesList outbound messages (sent and scheduled) of one mail account; received mail is not included.7 params
List outbound messages (sent and scheduled) of one mail account; received mail is not included.
date_fromintegerdate_tointegerfrom_account_id*integerpageintegersizeintegerstatusstringscheduled · sent · allviewstringsummary · fulldefault: summaryhires_get_messageGet a scheduled message with sender account, schedule timestamps and cancelability.1 params
Get a scheduled message with sender account, schedule timestamps and cancelability.
id*integerhires_update_messageReplace a scheduled message before it is sent; all required fields must be provided.10 params
Replace a scheduled message before it is sent; all required fields must be provided.
bccarraybody*stringccarrayfrom_account_idvalueid*integerreply_to_email_idvaluescheduled_atvaluesend_in_new_threadbooleansubject*stringto*arrayhires_patch_messagePartially update a scheduled message before it is sent.10 params
Partially update a scheduled message before it is sent.
bccarraybodystringccarrayfrom_account_idvalueid*integerreply_to_email_idvaluescheduled_atvaluesend_in_new_threadbooleansubjectstringtoarrayhires_delete_messageCancel a scheduled message before it is sent.1 params
Cancel a scheduled message before it is sent.
id*integerhires_batch_create_messagesCreate up to 100 scheduled messages in one request; items are processed independently, one failure does not stop the others.1 params
Create up to 100 scheduled messages in one request; items are processed independently, one failure does not stop the others.
messages*arrayhires_get_notification_messageGet a notification email (e.g. a rejection email): subject, body, sender, recipient, schedule. Ids come from hires_list_candidate_messages.1 params
Get a notification email (e.g. a rejection email): subject, body, sender, recipient, schedule. Ids come from hires_list_candidate_messages.
id*integerhires_update_notification_messageUpdate the subject, body or send time of a scheduled notification email; sent messages cannot be changed.4 params
Update the subject, body or send time of a scheduled notification email; sent messages cannot be changed.
body*stringid*integerscheduled_atvaluesubject*stringhires_delete_notification_messageCancel a scheduled notification email; sent messages cannot be canceled.1 params
Cancel a scheduled notification email; sent messages cannot be canceled.
id*integerhires_cancel_all_notification_messagesCancel all scheduled notification emails of a candidate; sent ones are unaffected.1 params
Cancel all scheduled notification emails of a candidate; sent ones are unaffected.
candidate_id*valuehires_list_interviewsList interviews filtered by job, application, candidate, interviewer, date or timestamps. Pass include=candidate so the agenda widget can link cards to candidate profiles.11 params
List interviews filtered by job, application, candidate, interviewer, date or timestamps. Pass include=candidate so the agenda widget can link cards to candidate profiles.
application_idnumbercandidate_idnumbercompany_idnumbercreated_afternumber | stringdatestringincludestringinterviewer_user_idnumberjob_idnumberpagenumbersizenumberupdated_afternumber | stringhires_get_interviewGet an interview by id.2 params
Get an interview by id.
id*numberincludestringhires_list_notesList discussion notes of a candidate.5 params
List discussion notes of a candidate.
candidate_id*string | numberincludestringpagenumbersizenumberviewstringsummary · fulldefault: summaryhires_create_noteCreate a discussion note for a candidate, with optional visibility (all or private) and @mentions that email the mentioned users.6 params
Create a discussion note for a candidate, with optional visibility (all or private) and @mentions that email the mentioned users.
body*stringcandidate_id*string | numberincludestringmention_user_idsarrayuser_idnumbervisibilitystringhires_get_noteGet a note with its author and visibility.2 params
Get a note with its author and visibility.
id*numberincludestringhires_update_noteUpdate a note's body or visibility in place, without a new timeline item.4 params
Update a note's body or visibility in place, without a new timeline item.
bodystringid*numberincludestringvisibilitystringhires_delete_noteDelete a note.1 params
Delete a note.
id*numberhires_get_evaluationGet a filled evaluation form: evaluator, summary score and text, answers.1 params
Get a filled evaluation form: evaluator, summary score and text, answers.
id*numberhires_list_formsList application forms of a company.4 params
List application forms of a company.
company_idnumberpagenumbersizenumberviewstringsummary · fulldefault: summaryhires_create_formCreate an application form, optionally attaching existing questions.3 params
Create an application form, optionally attaching existing questions.
company_idnumbername*stringquestionsarrayhires_get_formGet a form with its questions and their statuses.1 params
Get a form with its questions and their statuses.
id*numberhires_update_formUpdate a form's name and question composition.3 params
Update a form's name and question composition.
id*numbername*stringquestionsarrayhires_delete_formDelete an application form.1 params
Delete an application form.
id*numberhires_update_form_questionSet a question's status (required, optional, hidden) on a form.3 params
Set a question's status (required, optional, hidden) on a form.
form_id*numberquestion_id*numberstatus*stringrequired · optional · hiddenhires_list_email_templatesList email templates of a company.4 params
List email templates of a company.
company_idnumberpagenumbersizenumberviewstringsummary · fulldefault: summarySponsors
Readme
100Hires MCP Server
Official 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
Quick connect
Details
- Repository
- github.com/100hires/mcp
- Website
- 100hires.com/mcp
- Transport
- HTTP
- Registry
- MCP registry, active
- Resources
- 8
- Tools verified
- Nov 6, 2026