Yardstick ATS — MCP server

MCP serverDev tools

Manage hiring in Yardstick's ATS: jobs, candidates, applications, interviews, and scorecards.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use Yardstick ATS — MCP server

From the project's README

As published by yardstickinc/yardstick-mcp in README.md.

Yardstick is an applicant tracking system. Its hosted MCP server (https://api.yardstick.team/mcp) gives an AI assistant 176 tools for jobs, candidates, applications, interviews, and scorecards — so you can ask an assistant to move a candidate forward, draft outreach, or pull a hiring report, in whatever app you already work in.

The server is hosted: nothing to install, nothing to run, and no API key to paste into a configuration file. Point your client at the URL and sign in through your browser. It works in Claude, ChatGPT, and Claude Code; Cursor connects through a local server instead, described at https://portal.yardstick.team/docs/mcp/developer-tools along with the Yardstick CLI.

Add Yardstick to your assistant

Claude Code

claude mcp add --transport http yardstick https://api.yardstick.team/mcp

Then run /mcp and finish the browser sign-in.

Claude, ChatGPT, Perplexity, and other chat apps

Add a custom connector in the app's settings and paste in the URL above. The app reads the server and lists the tools it found.

Editors that use an mcp.json file

{
  "mcpServers": {
    "yardstick": {
      "url": "https://api.yardstick.team/mcp"
    }
  }
}

Step-by-step instructions for each app, including the ones that need a different shape, are at https://portal.yardstick.team/docs/mcp/chat-apps and https://portal.yardstick.team/docs/mcp/developer-tools.

Signing in

Browsing the tool list needs no account: a client can connect and see what is available before anyone signs in. Everything that touches hiring data requires a signed-in Yardstick user, and the assistant can only reach what that person is allowed to reach.

Sign-in is OAuth 2.1 with PKCE, in your browser — there is no credential to copy anywhere.

Yardstick identifies a connecting app through a Client ID Metadata Document rather than OAuth Dynamic Client Registration. Apps that support the metadata-document flow find this on their own, and sign-in needs nothing from you. An app that can only register dynamically stops with an error naming dynamic client registration; that is not a misconfiguration on your side — use the Yardstick CLI or a local MCP server with that app instead.

What it can do

A tool marked read-only will not change anything. The rest are not marked that way: most of them write, and a few only report status but carry no read-only guarantee. Expect your assistant to say what it is about to do before it calls one.

ToolWhat it doesRead-only
yardstick_identityReturn the current Yardstick API principal context.Yes
yardstick_tasks_listList Yardstick tasks visible to the current principal.Yes
yardstick_tasks_deep_linkCreate a public task deep link for a caller-supplied task id.No
yardstick_people_listList people visible to the current principal.Yes
yardstick_people_readRead one person by public id.Yes
yardstick_people_createCreate a person through the public Yardstick API.No
yardstick_people_updateUpdate one person with schema-bound public API fields.No
yardstick_prospects_listList active Talent CRM prospects visible to the current principal.Yes
yardstick_prospects_readRead one Talent CRM prospect by public id.Yes
yardstick_prospects_createCreate Talent CRM prospect relationship state for an existing person.No
yardstick_prospects_convert_previewPreview conversion of one Prospect into one canonical Application; bind fields are rejected and no outreach/import/merge occurs.No
yardstick_prospects_convert_bindBind an approved prospect conversion preview with explicit approval metadata and matching idempotency key.No
yardstick_prospects_outreach_previewPreview a one-off prospect outreach draft without creating a draft, sending email, enrolling a sequence, or creating an application.Yes
yardstick_prospects_outreach_create_draftCreate a pending review prospect outreach email draft. Sending stays on email draft send and requires communications:send.No
yardstick_prospect_imports_dry_runPreview a structured-row Prospect CRM import. JSON rows only; no raw CSV/resume file reads, outreach, application conversion, source ranking, or silent person merge.No
yardstick_prospect_imports_readRead one Prospect CRM import dry-run/apply batch by public id.Yes
yardstick_prospect_imports_applyApply an approved Prospect CRM import preview with preview_hash and explicit row decisions for advisory matches.No
yardstick_ats_imports_dry_runPreview a structured-row ATS import of candidates, jobs, and applications (source_kind: csv). JSON rows only; no raw CSV/archive file reads, no application conversion side effects, and low-confidence stage/fuzzy matches require explicit apply decisions.No
yardstick_ats_imports_readRead one ATS import dry-run/apply batch and its rows by public id.Yes
yardstick_ats_imports_applyApply an approved ATS import preview with a preview_hash matching the stored dry-run. Creates people/jobs/interview_plans(stub)/job_postings/applications with idempotent replay; never sends outreach, merges people, or deletes records.No
yardstick_source_links_listList source/referral attribution links without raw token material or source quality ranking.Yes
yardstick_source_links_readRead one source/referral attribution link by public id without raw token material.Yes
yardstick_source_links_createCreate an opaque source/referral link for a published job posting. Raw source_token is returned only in the create response; reads return token_hint, and active token-bearing links also return public_url.No
yardstick_source_links_disableDisable a source/referral link so its public URL no longer stamps attribution.No
yardstick_prospects_updateUpdate bounded Talent CRM prospect relationship fields.No
yardstick_prospect_activities_listList bounded activity records for one Talent CRM prospect.Yes
yardstick_prospect_activities_createCreate a bounded internal prospect activity note or touchpoint.No
yardstick_talent_pools_listList Talent CRM pools visible to the current principal. Archived pools are excluded unless include_archived is true.Yes
yardstick_talent_pools_readRead one Talent CRM pool by public id.Yes
yardstick_talent_pools_createCreate a Talent CRM pool.No
yardstick_talent_pools_updateUpdate bounded Talent CRM pool fields.No
yardstick_talent_pool_members_listList active prospect memberships for one Talent CRM pool.Yes
yardstick_talent_pool_members_addAdd an existing prospect to a Talent CRM pool.No
yardstick_talent_pool_members_removeRemove an active prospect membership from a Talent CRM pool.No
yardstick_applications_listList application person + Job attachments visible to the current principal.Yes
yardstick_applications_readRead one application person + Job attachment by public id.Yes
yardstick_applications_createCreate a recruiter or agent-sourced application for an existing person and job posting.No
yardstick_applications_updateUpdate one application with schema-bound public API fields.No
yardstick_applications_transition_directDirectly write a non-terminal application transition; approval-only statuses are rejected. Optionally target a configured stage by id with pipeline_stage_id (the resolved stage is reported back).No
yardstick_applications_transition_previewPreview approval-required application transitions only; bind fields and direct-write targets are rejected. Optionally target a configured stage by id with pipeline_stage_id (status must match the stage's mapped status).No
yardstick_applications_transition_bindBind an already-previewed application transition with explicit approval metadata and matching idempotency key.No
yardstick_applications_archive_previewPreview application archive approval requirements only; bind fields are rejected.No
yardstick_applications_archive_bindBind an already-previewed application archive with explicit approval metadata and matching idempotency key.No
yardstick_applications_status_email_poc_previewPreview the fixed applications-owned Interviewing to Offer status/email approval POC without mutating status or email state.No
yardstick_applications_status_email_poc_bindBind the fixed applications-owned status/email approval POC with explicit approval metadata and a matching idempotency key.No
yardstick_decision_brief_readRead the decision brief for an application.Yes
yardstick_decision_brief_regenerateRegenerate a decision brief for an application with idempotency metadata.No
yardstick_applications_email_decision_previewPreview the candidate email decision for an application status change without mutating the application or drafts.No
yardstick_applications_email_decision_applyApply an application status-change email decision with idempotency metadata.No
yardstick_email_drafts_listList candidate email drafts with optional status and email-type filters.Yes
yardstick_email_drafts_readRead a redacted candidate email draft.Yes
yardstick_email_drafts_previewRead rendered preview content for a candidate email draft.Yes
yardstick_email_drafts_historyRead candidate email draft history and provenance.Yes
yardstick_email_drafts_updateSave mutable candidate email draft fields or set/clear a validated sender override.No
yardstick_email_drafts_sendSend a pending candidate email draft with replay protection, or reclaim a never-delivered draft and send it.No
yardstick_email_drafts_discardDiscard a pending candidate email draft without provider mutation.No
yardstick_email_automation_settings_readRead candidate email automation settings.Yes
yardstick_email_automation_settings_updateUpdate candidate email automation settings.No
yardstick_email_sender_settings_readRead redacted email sender settings with sanitized queue diagnostics.Yes
yardstick_email_sender_connections_listList redacted sender provider connection state.Yes
yardstick_email_sender_defaults_listList candidate email sender defaults.Yes
yardstick_integrations_workspace_health_readRead sanitized Workspace integration health diagnostics.Yes
yardstick_email_sender_defaults_setSet the default sender policy for a candidate email type.No
yardstick_email_templates_listList candidate email template policies without raw prompts.Yes
yardstick_email_templates_readRead candidate email template detail without raw prompts.Yes
yardstick_email_templates_previewPreview a candidate email template for sample variables.No
yardstick_email_templates_validateValidate candidate email template subject, HTML, and text bodies.No
yardstick_email_templates_publishPublish a validated candidate email template version.No
yardstick_email_template_versions_listList immutable candidate email template versions.Yes
yardstick_email_templates_rollbackRollback a candidate email template to an immutable version.No
yardstick_email_templates_preview_customizationPreview AI sample customization for a candidate email template without publishing.No
yardstick_final_recommendation_recordRecord direct final-recommendation evidence; this does not mutate application status.No
yardstick_application_interview_sessions_listList interview sessions for an application.Yes
yardstick_application_interview_sessions_ensureEnsure an application interview session for an explicit round id.No
yardstick_opportunities_listList read-only opportunity workflow views visible to the current principal.Yes
yardstick_opportunities_readRead one read-only opportunity workflow view by public id.Yes
yardstick_opportunities_next_actionRead the next action state for an opportunity without mutating it.No
yardstick_opportunities_deep_linkCreate a public deep link for an opportunity workflow view.No
yardstick_reporting_searchSearch redacted recruiting reporting summaries through the public reporting API.Yes
yardstick_departments_listList Departments visible to the current principal.Yes
yardstick_departments_readRead one Department by public id.Yes
yardstick_departments_createCreate a Department through the public Yardstick API.No
yardstick_departments_updateUpdate one Department with schema-bound public API fields.No
yardstick_departments_members_listList Department members for an authorized Department.Yes
yardstick_departments_members_addAdd an existing person to a Department.No
yardstick_departments_members_set_leadSet one Department member as lead.No
yardstick_departments_members_removeRemove a Department member, optionally with a replacement lead.No
yardstick_departments_invitations_listList redacted Department invitation views.Yes
yardstick_departments_invitations_createCreate a Department-scoped invitation without returning token material.No
yardstick_access_grants_listList explicit access grants visible to the current principal.Yes
yardstick_access_grants_readRead one explicit access grant by public id.Yes
yardstick_access_grants_createCreate a reasoned, revocable, audited access grant.No
yardstick_access_grants_revokeRevoke an explicit access grant with optional reason text.No
yardstick_jobs_listList internal Job containers visible to the current principal.Yes
yardstick_jobs_createCreate an internal Job container without mutating job postings, applications, or interview plans.No
yardstick_jobs_readRead one internal Job container by public id.Yes
yardstick_jobs_prospect_matchesList deterministic Talent CRM prospect matches for one Job. Read-only; includes evidence, caveats, and blocked lifecycle states without outreach, conversion, import, or AI ranking.Yes
yardstick_jobs_updateUpdate one internal Job container with schema-bound public API fields.No
yardstick_jobs_closeClose one Job row only; linked job postings, applications, and interview plans are not mutated.No
yardstick_jobs_archiveArchive one Job row only; linked job postings, applications, and interview plans are not mutated.No
yardstick_jobs_attach_artifactLink an existing interview plan, job posting, or application to a Job. Idempotent when already linked to the same Job; conflicts when linked elsewhere. Requires jobs:write and the artifact's own write scope.No
yardstick_jobs_detach_artifactClear the link between an artifact and a Job. Idempotent when already unlinked. Requires jobs:write and the artifact's own write scope.No
yardstick_pipelines_listList the organization's pipeline templates with their ordered stages. Canonical default stages are flagged canonical_locked.Yes
yardstick_pipelines_readRead one pipeline template and its ordered stages by public id.Yes
yardstick_pipelines_createCreate a custom pipeline template with optional inline stages. Does not affect the org default pipeline or candidate tracking.No
yardstick_pipelines_updateRename, re-describe, or toggle active for one pipeline template.No
yardstick_pipelines_stages_createAppend (or insert at a position) a stage to a pipeline with a kind and optional approval scope.No
yardstick_pipelines_stages_updateEdit a pipeline stage. Canonical default stages allow display-name change only; slug/stage_kind/approval_scope/is_terminal are locked.No
yardstick_pipelines_reorder_stagesReorder all stages of a pipeline by supplying the complete stage id order. Constraint-safe; allowed for canonical stages.No
yardstick_pipelines_stages_delete_previewPreview deleting a pipeline stage; returns the candidate-count impact and binding fields. Canonical default stages are rejected.No
yardstick_pipelines_stages_delete_bindBind an approved pipeline-stage delete with explicit approval metadata and a matching idempotency key. Refuses while candidates remain.No
yardstick_pipelines_assign_to_jobAssign a pipeline to a job (jobs.pipeline_template_id) or clear it with pipeline_id: null. Pipeline validated by org; job resolved by org+mode.No
yardstick_automation_rules_listList the organization's stage automation rules. Rules are inert config — authoring fires no side effect; the executor child runs rules later.Yes
yardstick_automation_runs_listList the organization's stage automation runs (what fired for which candidate, success/failure). Filterable by application-id and rule-id. Read-only; runs are system-written by the executor and include skipped (deferred) send_email rows so run state is fully observable.Yes
yardstick_automation_rules_readRead one stage automation rule by public id (its trigger, typed action, target stage, and is_active state).Yes
yardstick_automation_rules_createCreate a stage automation rule (trigger + typed action from the 3-type palette: send_scheduling_link / create_task / send_email). Inert — fires no side effect.No
yardstick_automation_rules_updateEdit a stage automation rule's trigger, typed action, condition, position, or is_active state.No
yardstick_automation_rules_deleteDelete a stage automation rule. Plain delete (no approval preview→bind): rules are inert config, so deleting unfired config moves no candidates.No
yardstick_automation_rules_previewDry-run preview: resolve the active rules + their resolved action params for a sample application entering/leaving a stage. INERT — mints no scheduling link, creates no task, sends no email; executes nothing.Yes
yardstick_built_in_agents_listList the built-in-agent catalog with each built-in agent's current status, explicit defaults or disabled state, and latest work summary.Yes
yardstick_built_in_agents_readRead one built-in agent by catalog id (for example scorecard-chaser, nightly-screening, or interview-kit-prep): what it does, what it never does without you, current status, and latest work summary.Yes
yardstick_built_in_agents_runsList the organization's built-in-agent run history as a flat work report. Nightly screening reports scheduled-work counts and held, released, or invalidated review outputs; interview-kit preparation reports the scheduled week and count-only results. It never includes candidate, draft, recipient, kit, or provider details. delivery_unknown is not delivered and is not retried. Filterable by built-in-agent id. Read-only and mode-scoped.Yes
yardstick_built_in_agents_enable_previewPreview enabling a built-in agent; returns the approval-required envelope stating exactly what starts happening (and what is never sent without you) plus binding fields. Side-effect free.No
yardstick_built_in_agents_enable_bindBind an approved built-in-agent enable preview with explicit approval metadata and a matching idempotency key. Writes the built-in agent's declared settings home and records one audit row.No
yardstick_built_in_agents_configure_previewPreview configuring a built-in agent (config is validated against the built-in agent's declared schema; enabled is a first-class key, so { enabled: false } is the off switch). Side-effect free; pass config via --body-json.No
yardstick_built_in_agents_configure_bindBind an approved built-in-agent configure preview (same config plus approval metadata and a matching idempotency key). Writes only the built-in agent's declared settings keys and records one audit row.No
yardstick_job_postings_listList job postings visible to the current principal.Yes
yardstick_job_postings_readRead one job posting by public id.Yes
yardstick_job_postings_validateValidate a draft job posting without mutating it.No
yardstick_job_postings_createCreate a draft job posting through the public Yardstick API.No
yardstick_job_postings_updateUpdate a job posting with schema-bound public API fields.No
yardstick_job_postings_publish_previewPreview job-posting publish approval requirements only; bind fields are rejected.No
yardstick_job_postings_publish_bindBind an already-previewed job-posting publish with explicit approval metadata and matching idempotency key.No
yardstick_job_postings_archive_previewPreview job-posting archive approval requirements only; bind fields are rejected.No
yardstick_job_postings_archive_bindBind an already-previewed job-posting archive with explicit approval metadata and matching idempotency key.No
yardstick_interview_plans_readRead one interview plan by public id.Yes
yardstick_interview_plan_drafts_generate_outcomesGenerate draft interview-plan outcomes from explicit role context, or pass accepted_outcomes to store caller-written outcomes verbatim with no AI generation (the deterministic draft bootstrap).No
yardstick_interview_plan_drafts_confirm_outcomesConfirm draft interview-plan outcomes before generating later stages.No
yardstick_interview_plan_drafts_generate_competenciesGenerate draft interview-plan competencies from confirmed outcomes.No
yardstick_interview_plan_drafts_generate_skillsGenerate draft interview-plan skills from confirmed competencies.No
yardstick_interview_plan_drafts_generate_roundsGenerate draft interview-plan rounds from confirmed skills.No
yardstick_interview_plan_drafts_generate_anchorsGenerate scorecard behavioral anchors (levels 1-4) for each draft competency, or one competency when competency_id is supplied.No
yardstick_interview_plan_drafts_generate_questions_directionsGenerate interview questions and interviewer/candidate directions for each draft round, or one round when round_id is supplied.No
yardstick_interview_plan_drafts_readRead one interview-plan draft in full: every stage checkpoint (outcomes, competencies, job skills, interview sequence, questions and directions), stage_versions for source_stage preconditions, status, and source metadata. Question ids are always present (question_N fallback), so edits can target them directly.Yes
yardstick_interview_plan_drafts_add_competenciesAdd competencies to a draft exactly as written — deterministic, no AI generation. Requires confirmed outcomes; the resulting stage must stay within 25 competencies. Optional source_stage {stage: competencies, version} returns 409 when stale.No
yardstick_interview_plan_drafts_update_competenciesReplace draft competencies by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. Updating in place keeps the item id. Optional source_stage {stage: competencies, version} returns 409 when stale.No
yardstick_interview_plan_drafts_delete_competenciesDelete draft competencies by id. Prunes each deleted competency's behavioral anchors in the same write and reports the pruned ids; the s

Shortened here. Read the whole README on GitHub.

Signals

Last commit
Sep 2026
Advanced
Delivery
yardstick MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
team-yardstick-yardstick
Source
github.com/yardstickinc/yardstick-mcp
Hosted endpoint
https://api.yardstick.team/mcp