Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "yardstick_notifications_get", "yardstick_notifications_org_defaults_get", "yardstick_notifications_org_defaults_set" and 3 more; removed "yardstick_built_in_agents_configure_bind", "yardstick_built_in_agents_configure_preview", "yardstick_built_in_agents_enable_bind" and 3 more
Read your notification channels — Read your notification channels, personal overrides, organization defaults and Slack availability.
Read organization notification defaults — Read the organization's default notification channels. Admins only.
Set an organization notification default — Set the default channel for people who have not chosen their own. Admins only.
Restore your default notification channel — Remove your choice for one message type and use the organization default again.
Set your notification channel — Choose Email, Slack or Both for one of your internal message types.
Read Slack connection status — Read the Slack workspace name, connection state and connecting admin's user id. Admins only.
Confirm and save built-in-agent settings — Bind 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.
Preview built-in-agent settings changes (nothing changed yet) — Preview 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.
Confirm and turn on a built-in agent — Bind 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.
Preview turning on a built-in agent (nothing changed yet) — Preview 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.
List job postings — List job postings visible to the current principal.
Read a job posting — Read one job posting by public id.
Added "yardstick_automation_rules_preview_draft"; removed "yardstick_job_postings_validate"; changed the definition of "yardstick_automation_rules_create" and "yardstick_automation_rules_update"
⟨244 unchanged words⟩ "interview_cancellation","type":"string"}]},"sender_type":{"description":"Who the email comes from: owner (the job recruiter) or job_hiring_manager. Omit to use the company's sender setting.","enum":["owner","job_hiring_manager"],"type":"string"},"template_key":{"maxLength":200,"minLength":1, ⟨384 unchanged words⟩
⟨244 unchanged words⟩ "interview_cancellation","type":"string"}]},"sender_type":{"description":"Who the email comes from: owner (the job recruiter) or job_hiring_manager. Omit to use the company's sender setting.","enum":["owner","job_hiring_manager"],"type":"string"},"
Added "yardstick_offers_answers_update", "yardstick_offers_documents_add", "yardstick_offers_documents_change_packet" and 18 more; removed "yardstick_interview_plan_drafts_add_competencies", "yardstick_interview_plan_drafts_confirm_outcomes", "yardstick_interview_plan_drafts_generate_anchors" and 18 more; changed the definition of "yardstick_offers_create"
⟨19 unchanged words⟩ "minLength":1,"type":"string"},"packet_id":{"format":"uuid","type":"string"},"request_id":{"minLength":1,"type":"string ⟨33 unchanged words⟩ }]}},"required":["idempotency_key","application_id","template_version_id"],"type":"object"}
Fill in the answers the offer documents ask for. — Fill in the answers the offer documents ask for. `expected_draft_revision` is required.
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Added "yardstick_offers_approval_bind", "yardstick_offers_approval_preview", "yardstick_offers_approval_review" and 21 more; removed "yardstick_interview_plan_drafts_add_questions", "yardstick_interview_plan_drafts_add_rounds", "yardstick_interview_plan_drafts_add_skills" and 21 more; changed the definition of "yardstick_reporting_search"
⟨37 unchanged words⟩ ,"missing_feedback_queue","candidate_pool_strength","source_signals","prospect_ops_summary","offer_performance"],"type":"string"},"request_id":{ ⟨69 unchanged words⟩
Confirm offer approval — Record only the approval decision explicitly reviewed in preview.
Preview offer approval — Review an approval decision without recording it.
Added "yardstick_applications_decide_hiring_step", "yardstick_applications_hiring_step_decision" and "yardstick_interview_plans_set_hiring_manager_decides"; removed "yardstick_interview_sessions_available_interviewers_list", "yardstick_interview_sessions_interviewers_assign" and "yardstick_interview_sessions_interviewers_list"; changed the definition of "yardstick_applications_list", "yardstick_automation_rules_create", "yardstick_automation_rules_preview" and 2 more
⟨11 unchanged words⟩ Filter by --job-id to find candidates for arole.role, and by --hiring-manager-decision (advanced, held or waiting) for where the hiring manager's decision stands.
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"hiring_manager_decision":{"enum":["advanced","held","waiting"],"type":"string"},"job_id":{"minLength":1,"type":"string ⟨19 unchanged words⟩
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Changed the definition of "yardstick_automation_rules_create", "yardstick_automation_rules_preview" and "yardstick_automation_rules_update"
⟨8 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"delivery":{"default":"auto_draft_review","enum":["auto_send","auto_draft_review"],"type":"string"},"task":{"additionalProperties":false,"properties":{"assignee":{"anyOf":[{"const":"recruiter","type":"string"},{"additionalProperties":false,"properties":{"user_id":{"format":"uuid","type":"string"}},"required":["user_id"],"type":"object"}]},"due_in":{"additionalProperties":false,"properties":{"unit":{"enum":["days","hours"],"type":"string"},"value":{"maximum":8760,"minimum":1,"type":"integer"}},"required":["value","unit"],"type":"object"},"title":{"maxLength":500,"minLength":1,"type":"string"}},"required":["assignee","title"],"type":"object"},"template_key":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"update_scheduling","type":"string"}},"required":["type","task"],"type":"object"},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter" ⟨516 unchanged words⟩ ","step_completed","feedback_submitted","all_scorecards_submitted","interview_time","assignment_changed","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready ⟨10 unchanged words⟩
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Changed the definition of "yardstick_applications_decide", "yardstick_automation_rules_create" and "yardstick_automation_rules_update"
⟨6 unchanged words⟩ review task. Only the job's hiring manager maydecide.decide; anyone else gets application not found. Reason codes must be system codes or your organization's. Reject disqualifies the candidate.
⟨8 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"interview_id":{"minLength":1,"type":"string"},"interview_session_id":{"minLength":1,"type":"string"},"type":{"const":"send_scheduling_link","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter"
Added "yardstick_applications_decide", "yardstick_automation_rules_bulk", "yardstick_automation_rules_copy" and 13 more; removed "yardstick_audit_log_list", "yardstick_events_list", "yardstick_interview_sessions_cancel" and 6 more; changed the definition of "yardstick_applications_list", "yardstick_automation_rules_create", "yardstick_automation_rules_delete" and 13 more (193 tools before, 200 now)
List application person + Job attachments visible to the current principal. Filter by --job-id to find candidates for a role.{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"job_id":{"minLength":1,"type":"string"},"limit":{"maximum":100,"minimum":1, ⟨14 unchanged words⟩
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Added "yardstick_applications_admit_candidate", "yardstick_applications_undo_candidate_admission", "yardstick_automation_rules_preview_rule" and 2 more; changed the definition of "yardstick_automation_rules_create", "yardstick_automation_rules_preview", "yardstick_automation_rules_update" and 1 more (188 tools before, 193 now)
Create astagenamed workflow automation rule(triggerwith+stagetypedoractionstepfromtriggers,thejob3-typescope,
Added "yardstick_talent_search" (187 tools before, 188 now)
Search Talent — Search all authorized recruiting records by literal keywords across names, notes, activities and current parsed résumés. All words must match; PhD punctuation is normalized.
Changed the definition of "yardstick_interview_sessions_interviewers_assign"
Assign an interviewer to an interview session. Email notification is attempted by default; set notify_interviewer to false to opt out. The response reports the safe interviewer_email outcome.⟨16 unchanged words⟩ ,"interviewer_user_id":{"type":"string"},"notify_interviewer":{"type":"boolean"},"request_id":{"minLength":1,"type":"string ⟨5 unchanged words⟩
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Added "yardstick_people_documents_download_url" and "yardstick_people_documents_list"; changed the definition of "yardstick_interview_sessions_scorecard_submit" (185 tools before, 187 now)
⟨44 unchanged words⟩ ,"type":"string"},"item_type":{"minLengthenum":1["outcome","competency","skill","recommendation"],"type":"string"},"notes":{" ⟨31 unchanged words⟩
Get a person document download link — Mint a signed download URL for one person document. Read-only. The URL expires in 5 minutes and is a bearer link: do not log or share it. Takes per_ and pdoc_ display ids.
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Changed the definition of "yardstick_people_list"
List people visible to the current principal. Pass email to find the exact person behind a candidate_email_conflict.{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"email":{"format":"email","maxLength":320,"type":"string"},"limit":{"maximum":100,"minimum":1, ⟨14 unchanged words⟩
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization not required, issuer https://api.yardstick.team/api-agent-auth
Authorization required → not required, issuer https://api.yardstick.team/api-agent-auth
First tool surface recorded: 185 tools (server version 0.6.7)
Authorization required, Bearer, issuer https://api.yardstick.team/api-agent-auth
Authorization required, Bearer, issuer https://api.yardstick.team/api-agent-auth
Authorization required, Bearer, issuer https://api.yardstick.team/api-agent-auth
Certificate recorded, valid to 2026-12-07
Authorization required, Bearer, issuer https://api.yardstick.team/api-agent-auth
Showing the latest 36 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Preview an unsaved workflow rule (runs nothing) — Preview a rule before saving it, for a real application: the same result as preview-rule. Pass the rule as you would to create (CLI: --body-json '{"rule":{...}}'); add rule_id to preview unsaved edits to that rule. Saves nothing and executes no action.
Check a draft job posting for problems — Validate a draft job posting without mutating it.
Add a published offer document to a draft offer. — Add a published offer document to a draft offer.
Replace the offer's documents with a different packet. If answers or edits would be lost, nothing changes until you confirm. — Replace the offer's documents with a different packet. If answers or edits would be lost, nothing changes and the call returns a 409 `change_packet_confirm_required` error with the number of answers and edits. To go ahead, repeat the call with `confirm_drops` set to true.
Edit one document for this offer only. The library document does not change. — Edit one document for this offer only. The library document does not change. `expected_draft_revision` is required.
List the documents in an offer and what each still needs before sending. — List the documents in an offer and what each still needs before sending.
Remove a document from a draft offer. — Remove a document from a draft offer.
Set the order of the documents in a draft offer. List every document once. — Set the order of the documents in a draft offer. List every document once.
Archive an offer document. Admins only. — Archive an offer document. Admins only.
Copy an offer document into a new draft. Admins only. — Copy an offer document into a new draft. Admins only.
Create an offer document. Admins only. — Create an offer document. Admins only.
List offer documents with their fill-ins, packets and published version. Admins only. — List offer documents with their fill-ins, packets and published version. Admins only.
Publish the current draft as a new version. Admins only. — Publish the current draft as a new version. Admins only.
Read an offer document, its draft and its versions. Admins only. — Read an offer document, its draft and its versions. Admins only.
Save an offer document draft and its fill-ins. Admins only. — Save an offer document draft and its fill-ins. Admins only.
Archive an offer packet. Admins only. — Archive an offer packet. Admins only.
Create an offer packet. Admins only. — Create an offer packet. Admins only.
List offer packets and their documents. Admins only. — List offer packets and their documents. Admins only.
Set the order of offer packets. Admins only. — Set the order of offer packets. Admins only.
Change an offer packet. Admins only. — Change an offer packet. Admins only.
Download one signed file of an offer as a PDF. Requires creator or admin access. — Download one signed file of an offer as a PDF. file_id is required: this tool returns one file per call, up to 3 MB. Get the IDs from `yardstick_offers_signed_files_list`. For a larger file, or to save every file, use the CLI `yardstick offers signed-files download`. Requires creator or admin access.
List the signed files of an offer. Requires creator or admin access. — List the signed files of an offer. Requires creator or admin access.
Add competencies to an interview plan draft — Add 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.
Confirm draft hiring outcomes — Confirm draft interview-plan outcomes before generating later stages.
Generate draft scorecard anchors — Generate scorecard behavioral anchors (levels 1-4) for each draft competency, or one competency when competency_id is supplied.
Generate draft competencies — Generate draft interview-plan competencies from confirmed outcomes.
Generate draft hiring outcomes — Generate 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).
Generate draft questions and interviewer directions — Generate interview questions and interviewer/candidate directions for each draft round, or one round when round_id is supplied.
Generate draft interview rounds — Generate draft interview-plan rounds from confirmed skills.
Generate draft job skills — Generate draft interview-plan skills from confirmed competencies.
List interview plan drafts — List interview-plan drafts, newest first. Optional job_id narrows the list to one job and takes a job_ public display id. Use this to find an ipd_ draft id again after an interrupted builder session.
Read an interview plan draft — Read 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.
Archive an interview plan — Archive one interview plan. Already-archived plans succeed without a write. A plan still attached to a job is refused — detach it from the job first.
List published interview plans — List published interview plans, newest first. Optional job_id narrows the list to one job and takes a job_ public display id. Use this to find an interview plan id when you only hold a job id.
Read a published interview plan — Read one interview plan by public id.
Set whether the hiring manager decides a step — Turn on or off whether a plan step waits on the hiring manager's decision before the candidate moves on. Only workflow managers on an open job can change it.
Restore an archived interview plan — Restore one archived interview plan. Plans that are already live succeed without a write. If the plan's job has since acquired another live plan, the restore is refused and names that plan.
Confirm and archive a job posting — Bind an already-previewed job-posting archive with explicit approval metadata and matching idempotency key.
Preview archiving a job posting (nothing changed yet) — Preview job-posting archive approval requirements only; bind fields are rejected.
Create a draft job posting — Create a draft job posting through the public Yardstick API.
Confirm and publish a job posting — Bind an already-previewed job-posting publish with explicit approval metadata and matching idempotency key.
Preview publishing a job posting (nothing changed yet) — Preview job-posting publish approval requirements only; bind fields are rejected.
Update a job posting — Update a job posting with schema-bound public API fields.
Read the approval step assigned to you. — Read the approval step assigned to you.
Cancel a replacement draft. — Cancel a replacement draft.
Read company signature settings for this offer. — Read company signature settings for this offer.
Configure the company signer. This does not sign the offer. — Configure the company signer. This does not sign the offer.
Create an offer draft. — Create an offer draft.
Read offer reminder settings. Admin only. — Read offer reminder settings. Admin only.
Set reminder intervals in seconds before expiry. Admin only. — Set reminder intervals in seconds before expiry. Admin only.
List offers visible to you. — List offers visible to you.
Open a replacement draft. Sending requires a separate preview and confirmation. — Open a replacement draft. Sending requires a separate preview and confirmation.
Read an offer. Members see status; its creator and admins see full details. — Read an offer. Members see status; its creator and admins see full details.
Confirm offer rescind — Withdraw only the offer explicitly reviewed in preview.
Preview offer rescind — Review withdrawal and optional candidate email without changing the offer.
Confirm offer send — Send only the exact offer explicitly reviewed in preview.
Preview offer send — Review the exact offer and recipient without sending.
Read offer delivery status and recovery guidance. — Read offer delivery status and recovery guidance.
Get a five-minute download link for the signed company copy. Requires creator or admin access. — Get a five-minute download link for the signed company copy. Requires creator or admin access.
Read signing, company signature, finalization and lifecycle status. — Read signing, company signature, finalization and lifecycle status.
Request approval of this draft. — Request approval of this draft.
Read the offer history. — Read the offer history.
Update a draft using its current version. — Update a draft using its current version.
Read candidate email verification settings. Admin only. — Read candidate email verification settings. Admin only.
Set candidate email verification requirements. Admin only. — Set candidate email verification requirements. Admin only.
Add questions to a draft interview round — Add questions to one draft round exactly as written — deterministic, no AI generation. Requires rounds; each round holds at most 50 questions. The first question edit on a round persists question_N ids for every question in that round. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Add interview rounds to an interview plan draft — Add interview rounds to a draft exactly as written — deterministic, no AI generation. Requires skills; the resulting sequence must stay within 20 rounds. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
Add job skills to an interview plan draft — Add job skills to a draft exactly as written — deterministic, no AI generation. Requires competencies; the resulting stage must stay within 50 skills. Optional source_stage {stage: skills, version} returns 409 when stale.
Clear all draft competencies, leaving the section empty — Clear every competency from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Prunes the behavioral anchors of every cleared competency in the same write and reports the pruned ids. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: competencies, version} returns 409 when stale.
Clear all draft interview rounds, leaving the section empty — Clear every interview round from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Prunes the questions and directions of every cleared round in the same write and reports the pruned round ids. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
Clear all draft job skills, leaving the section empty — Clear every job skill from a draft, leaving the stage deliberately empty — deterministic, no AI generation. The item delete refuses to remove the last skill, so this is the only way to record that the section was addressed and left empty. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: skills, version} returns 409 when stale.
Clear all draft outcomes, leaving the section empty — Clear every outcome from a draft, leaving the stage deliberately empty — deterministic, no AI generation. Outcomes have no item-level delete, and confirm_outcomes requires at least one outcome, so this is the only way to record that the section was addressed and left empty. The emptied draft cannot be published as a new plan; bind the emptying onto an already-live plan with modify_active. Optional source_stage {stage: outcomes, version} returns 409 when stale.
Delete draft scorecard anchors — Delete behavioral-anchor entries for draft items by item id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Delete draft competencies — Delete draft competencies by id. Prunes each deleted competency's behavioral anchors in the same write and reports the pruned ids; the stage must keep at least one competency. Optional source_stage {stage: competencies, version} returns 409 when stale.
Delete questions from a draft interview round — Delete questions from one draft round by question id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Delete draft interview rounds — Delete draft interview rounds by id. Prunes each deleted round's questions and directions in the same write and reports the pruned ids; the sequence must keep at least one round. Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
Delete draft job skills — Delete draft job skills by id; the stage must keep at least one skill. Optional source_stage {stage: skills, version} returns 409 when stale.
Set draft scorecard anchors — Upsert behavioral anchors for draft items, keyed by item id with levels 1-4 — deterministic, no AI generation. Requires competencies; anchors keyed to unknown item ids are rejected by id. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Rewrite or reorder draft competencies — Replace 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.
Rewrite or reorder a draft round's questions — Replace one draft round's questions by id and/or reorder them with order (a complete permutation of that round's resulting question ids) — deterministic, no AI generation. Read the draft first: stored questions expose stable question_N ids. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Set a draft round's interviewer and candidate directions — Set one draft round's interviewer and/or candidate directions exactly as written — deterministic, no AI generation. Provide at least one of the two direction fields. Optional source_stage {stage: questions_and_directions, version} returns 409 when stale.
Rewrite or reorder draft interview rounds — Replace draft interview rounds by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. A round updated in place keeps its id, so its questions and directions are preserved (not pruned). Optional source_stage {stage: interview_sequence, version} returns 409 when stale.
Rewrite or reorder draft job skills — Replace draft job skills by id and/or reorder them with order (a complete permutation of resulting ids) — deterministic, no AI generation. Optional source_stage {stage: skills, version} returns 409 when stale.
Check an interview plan draft for problems — Validate an interview-plan draft without publishing it.
Confirm and edit a live interview plan — Bind an already-previewed interview-plan active modification with explicit approval metadata and matching idempotency key.
Preview editing a live interview plan (nothing changed yet) — Preview interview-plan active-modification approval requirements only; bind fields are rejected.
Confirm and publish an interview plan — Bind an already-previewed interview-plan publish with explicit approval metadata and matching idempotency key.
Preview publishing an interview plan (nothing changed yet) — Preview interview-plan publish approval requirements only; bind fields are rejected.
Read an interview — Read one interview session by public id.
⟨614 unchanged words⟩ booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","hiring_manager_advanced","hiring_manager_held","interview_time","assignment_changed","booking_cancelled","scorecard_due"," ⟨12 unchanged words⟩
⟨32 unchanged words⟩ booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","hiring_manager_advanced","hiring_manager_held","interview_time","assignment_changed","booking_cancelled","scorecard_due"," ⟨13 unchanged words⟩
⟨622 unchanged words⟩ booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","hiring_manager_advanced","hiring_manager_held","interview_time","assignment_changed","booking_cancelled","scorecard_due"," ⟨11 unchanged words⟩
Answer an assigned application or scorecard review. Recruiter questions require anote.note; send_to_recruiter shares a scorecard note with the recruiter.
⟨10 unchanged words⟩ ,"hold","ask_recruiter","thumbs_up","thumbs_down","note_to_recruiter"],"type":"string"},"idempotency_key":{ ⟨7 unchanged words⟩ request_id":{"minLength":1,"type":"string"},"send_to_recruiter":{"type":"boolean"},"task_id":{"minLength":1,"type ⟨6 unchanged words⟩
Decide a hiring manager step — Advance or hold a candidate on a step that waits on the hiring manager, or change that decision. The hiring manager or a recruiter on the job may decide. Leave out interview_id to decide the latest such step. A note can go to the recruiter with send_to_recruiter.
Read the hiring manager decision — Read where the hiring manager's decision stands on the candidate's latest step that waits on one: advanced, held, waiting, or none.
Set whether the hiring manager decides a step — Turn on or off whether a plan step waits on the hiring manager's decision before the candidate moves on. Only workflow managers on an open job can change it.
List members assignable as interviewers — List organization members who can be assigned as interviewers, newest membership first. Use this to pick a usr_ public display id before assigning an interviewer.
Assign an interviewer to an interview — Assign an interviewer to an interview session. Email notification is attempted by default; set notify_interviewer to false to opt out. The response reports the safe interviewer_email outcome.
List interviewers on an interview — List interviewers assigned to an interview session.
⟨33 unchanged words⟩ step_completed","feedback_submitted","all_scorecards_submitted","interview_time","assignment_changed","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready"," ⟨11 unchanged words⟩
⟨8 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"delivery":{"default":"auto_draft_review","enum":["auto_send","auto_draft_review"],"type":"string"},"task":{"additionalProperties":false,"properties":{"assignee":{"anyOf":[{"const":"recruiter","type":"string"},{"additionalProperties":false,"properties":{"user_id":{"format":"uuid","type":"string"}},"required":["user_id"],"type":"object"}]},"due_in":{"additionalProperties":false,"properties":{"unit":{"enum":["days","hours"],"type":"string"},"value":{"maximum":8760,"minimum":1,"type":"integer"}},"required":["value","unit"],"type":"object"},"title":{"maxLength":500,"minLength":1,"type":"string"}},"required":["assignee","title"],"type":"object"},"template_key":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"update_scheduling","type":"string"}},"required":["type","task"],"type":"object"},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter" ⟨524 unchanged words⟩ ","step_completed","feedback_submitted","all_scorecards_submitted","interview_time","assignment_changed","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready ⟨9 unchanged words⟩
⟨8 unchanged words⟩ ":[{"additionalProperties":false,"properties":{"interview_id":{"minLength":1,"type":"string"},"interview_session_id":{"minLength":1,"type":"string"},"type":{"const":"send_scheduling_link","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter" ⟨177 unchanged words⟩ ,"type":"string"},"type":"array"},"template_key":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"send_scheduling_invitation", ⟨350 unchanged words⟩
⟨50 unchanged words⟩ ,"type":"object"},"due_date":{"description":"Existing fixed deadline; use due_in for recurring rules.","maxLength":64,"minLength":1,"type":"string"},"due_in":{"additionalProperties":false,"description":"Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.","properties":{"unit":{"enum":["days","hours"],"type":"string"},"value":{"maximum":8760,"minimum":1,"type":"integer"}},"required":["value","unit"],"type":"object"},"task_title":{"description":"Task title; {candidate} resolves to the candidate name.","maxLength":500,"minLength":1,"type":"string"},"task_type":{"description":"Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.","maxLength":200,"minLength":1,"type":" ⟨12 unchanged words⟩ additionalProperties":false,"properties":{"email_type":{"anyOf":[{"enum":["acknowledgment","advancement","interview_confirmation", ⟨5 unchanged words⟩ ","on_hold"],"type":"string"},{"const":"interview_cancellation","type":"string"}]},"template_key":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"send_email","type":"string"}},"required":["type","email_type"],"type":"object"},{"additionalProperties": ⟨10 unchanged words⟩ "minLength":1,"type":"string"},"minItems":1,"type":"array"},"type":{"const" ⟨9 unchanged words⟩ "},{"additionalProperties":false,"properties":{"template_key":{"enum":["candidate_preparation","onsite_logistics","technical_preparation"],"type":"string"},"type":{"const":"send_preparation_email","type":"string" ⟨9 unchanged words⟩ ["assigned_interviewer","recruiter","hiring_manager","team_owner","offer_approver","offer_requester"],"type":"string"},"template":{ ⟨52 unchanged words⟩ },"minItems":1,"type":"array"},"step_position":{"anyOf":[{"additionalProperties":false,"properties":{"which":{"const":"next","type":"string"}},"required":["which"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"first","type":"string"}},"required":["which","kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"last","type":"string"}},"required":["which","kind"],"type":"object"},{"additionalProperties":false,"properties":{"anchor_kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"last_before","type":"string"}},"required":["which","kind","anchor_kind"],"type":"object"}]}},"type":"object"},"delivery_mode":{"enum":["auto_send","auto_draft_review" ⟨7 unchanged words⟩ ,"is_active":{"type":"boolean"},"job_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"job_posting_ids":{"items":{"format":"uuid" ⟨11 unchanged words⟩ "maxLength":200,"type":"string"},"needs_step_pick":{"type":"boolean"},"pipeline_stage_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"pipeline_template_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"position":{"minimum":0,"type":"integer ⟨73 unchanged words⟩ booking_created","booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","interview_time","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready","coaching_report_ready","offer_approval_due","offer_approval_escalation_due"],"type":"string"}},"required":["pipeline_stage_id","trigger","action"],"type":"object"}
Deletea stagean automation rule. Plain delete (no approval preview→bind) ⟨11 unchanged words⟩
Listtheallorganization'sjobstageandautomationpipeline rules.RulesFilterarebyinertjob_idconfig(null—forauthoringpipelinefiresrules),nodepartment_id,sidepipeline_id,effect;trigger,theemailexecutororchildis_active.runsJob and department filters include inherited pipeline rules; pipeline filters also include hiring-step ruleslater.on jobs using that pipeline.
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"department_id":{"minLength":1,"type":"string"},"email":{"minLength":1,"type":"string"},"is_active":{"type":"boolean"},"job_id":{"minLength":1,"type":"string"},"pipeline_id":{"minLength":1,"type":"string"},"request_id":{"minLength":1,"type":"string"},"trigger":{"minLength":1,"type":"string" ⟨2 unchanged words⟩
⟨31 unchanged words⟩ booking_created","booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","interview_time","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready","coaching_report_ready","offer_approval_due","offer_approval_escalation_due"],"type":"string"}},"required" ⟨5 unchanged words⟩
Read onestageautomation rule by public id (its trigger, ⟨8 unchanged words⟩
⟨50 unchanged words⟩ ,"type":"object"},"due_date":{"description":"Existing fixed deadline; use due_in for recurring rules.","maxLength":64,"minLength":1,"type":"string"},"due_in":{"additionalProperties":false,"description":"Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.","properties":{"unit":{"enum":["days","hours"],"type":"string"},"value":{"maximum":8760,"minimum":1,"type":"integer"}},"required":["value","unit"],"type":"object"},"task_title":{"description":"Task title; {candidate} resolves to the candidate name.","maxLength":500,"minLength":1,"type":"string"},"task_type":{"description":"Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.","maxLength":200,"minLength":1,"type":" ⟨12 unchanged words⟩ additionalProperties":false,"properties":{"email_type":{"anyOf":[{"enum":["acknowledgment","advancement","interview_confirmation", ⟨5 unchanged words⟩ ","on_hold"],"type":"string"},{"const":"interview_cancellation","type":"string"}]},"template_key":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"send_email","type":"string"}},"required":["type","email_type"],"type":"object"},{"additionalProperties": ⟨10 unchanged words⟩ "minLength":1,"type":"string"},"minItems":1,"type":"array"},"type":{"const" ⟨9 unchanged words⟩ "},{"additionalProperties":false,"properties":{"template_key":{"enum":["candidate_preparation","onsite_logistics","technical_preparation"],"type":"string"},"type":{"const":"send_preparation_email","type":"string" ⟨9 unchanged words⟩ ["assigned_interviewer","recruiter","hiring_manager","team_owner","offer_approver","offer_requester"],"type":"string"},"template":{ ⟨52 unchanged words⟩ },"minItems":1,"type":"array"},"step_position":{"anyOf":[{"additionalProperties":false,"properties":{"which":{"const":"next","type":"string"}},"required":["which"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"first","type":"string"}},"required":["which","kind"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"last","type":"string"}},"required":["which","kind"],"type":"object"},{"additionalProperties":false,"properties":{"anchor_kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"kind":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"which":{"const":"last_before","type":"string"}},"required":["which","kind","anchor_kind"],"type":"object"}]}},"type":"object"},"delivery_mode":{"enum":["auto_send","auto_draft_review" ⟨7 unchanged words⟩ ,"is_active":{"type":"boolean"},"job_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"job_posting_ids":{"items":{"format":"uuid" ⟨11 unchanged words⟩ "maxLength":200,"type":"string"},"needs_step_pick":{"type":"boolean"},"pipeline_stage_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"pipeline_template_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"position":{"anyOf":[{"minimum":0, ⟨82 unchanged words⟩ booking_created","booking_changed","step_completed","feedback_submitted","all_scorecards_submitted","interview_time","booking_cancelled","scorecard_due","scorecard_overdue","decision_brief_ready","coaching_report_ready","offer_approval_due","offer_approval_escalation_due"],"type":"string"}},"required" ⟨3 unchanged words⟩
List immutablecandidateemailtemplateversions.
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"request_id":{" ⟨8 unchanged words⟩
List candidatetemplatesinternal emails
ListcandidateCandidatetemplateInternalpoliciesemailswithoutwithrawautomationprompts.usage counts.
⟨6 unchanged words⟩ ,"readOnlyHint":true,"title":"List candidatetemplatesinternal emails"}
Previewa candidatean emailtemplatewith sample data
Previewa candidatean emailtemplatefor sample variables.
⟨4 unchanged words⟩ ":{},"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"idempotency_key":{" ⟨13 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":false,"title":"Previewa candidatean emailtemplatewith sample data"}
Preview AI sample customization fora candidatean emailtemplatewithout publishing.
⟨4 unchanged words⟩ ":{},"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"idempotency_key":{" ⟨13 unchanged words⟩
Publisha candidatean emailtemplateversion
PublishUpdate,acreate,validatedduplicate,candidateresetversion.key.
⟨4 unchanged words⟩ ":{},"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"idempotency_key":{" ⟨13 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":false,"title":"Publisha candidatean emailtemplateversion"}
Reada candidatean emailtemplate
Readcandidatean emailtemplatebydetailbuilt-inwithouttyperaworprompts.custom template key.
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"request_id":{" ⟨8 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"Reada candidatean emailtemplate"}
Roll a candidate email template back toRestore an earlier email version
Rollback aRestorecandidatean emailtemplateto an immutable version.
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"idempotency_key":{" ⟨19 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":false,"title":"Roll a candidate email template back toRestore an earlier email version"}
Checka candidatean emailtemplatefor problems
Validatecandidateemailtemplatesubject, HTML, and text bodies.
⟨4 unchanged words⟩ ":{},"properties":{"email_type":{"enumpattern":["acknowledgment","advancement","interview_confirmation","rejection","offer_declined","offer","hired","withdrawn","on_hold"^[a-z][a-z0-9_]{0,"candidate_follow_up99}$"],"type":"string"},"idempotency_key":{" ⟨13 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":false,"title":"Checka candidatean emailtemplatefor problems"}
⟨25 unchanged words⟩ :{"minLength":1,"type":"string"},"stage_mapping":{"additionalProperties":{"minLength":1,"type":"string"},"propertyNames":{"minLength":1},"type":"object"}},"required":["job_id","pipeline_id"],"type":"object"}
Decide on an application — Decide on an application without a review task. Only the job's hiring manager may decide. Reject disqualifies the candidate.
Confirm bulk automation rule changes — Switch rules on, off or delete them. First use mode=preview with rule_ids or filter. Show the affected rules and skipped rules to the user and get explicit confirmation BEFORE applying. Then use mode=apply with only the exact rule_ids returned by preview; never reapply the filter. Pick a step rules are skipped when switching on. Warn that shared pipeline rules change for every job on that pipeline, including jobs outside the filter.
Copy a rule to jobs or pipelines — Copy one hiring process rule to job_ids, or one pipeline rule to pipeline_ids. Matches steps by name or kind and position, stages by name or mapped status. Unmatched copies start off and require Pick a step or Pick a stage. Copies are independent user rules.
Copy automations into a job — Copy reviewed rules into a job using chosen matches; keep unmatched rules off and existing rules intact.
Create an automation starter — Create a named organization starter from portable rule definitions.
Delete an automation starter — Delete an organization starter while keeping existing job copies.
List automation starters — List your organization’s saved automation starters.
Preview copying automations into a job — Preview copying a starter or job’s rules, including step and stage matches and unmatched rules.
Rename an automation starter — Rename an organization starter without changing existing job copies.
Save job automations as a starter — Save a job’s automation rules as a named organization starter.
Create a custom email — create an email. Use email_type for a built-in type or custom template key.
Delete a custom email — delete an email. Use email_type for a built-in type or custom template key.
Duplicate an email — duplicate an email. Use email_type for a built-in type or custom template key.
Reset an email to its Yardstick default — reset an email. Use email_type for a built-in type or custom template key.
Preview assigning a hiring pipeline to a job — Preview the job's stages in use, candidate counts and suggested same-name mapping before changing its pipeline. Makes no changes.
Answer an assigned review task — Answer an assigned application or scorecard review. Recruiter questions require a note.
List audit log entries — List public Yardstick audit log entries visible to the current principal.
List API events — List public Yardstick API events visible to the current principal.
Cancel a scheduled interview — Cancel a scheduled interview session, releasing the provider booking and invalidating its scheduling links.
Complete an interview — Complete an interview session for an explicit interviewer.
Remove an interviewer from an interview — Unassign an interviewer from an interview session.
Check interview scheduling readiness — Read interview-session scheduling readiness.
Generate a candidate scheduling link — Generate a scheduling link for an interview session.
Submit an interview scorecard — Submit an interview-session scorecard with explicit ratings.
Start an interview — Start an interview session for an explicit interviewer.
⟨30 unchanged words⟩ "},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter","hiring_manager","team_owner"],"type":"string"},"assigned_user_email":{"maxLength":320,"minLength":1, ⟨32 unchanged words⟩ "required":["type","task_type","task_title","assigned_user_email"],"type":"object"},{"additionalProperties": ⟨21 unchanged words⟩ type","email_type"],"type":"object"},{"additionalProperties":false,"properties":{"format":{"enum":["combined","separate"],"type":"string"},"interview_ids":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"},"type":{"const":"send_scheduling_invitation","type":"string"}},"required":["type","interview_ids","format"],"type":"object"},{"additionalProperties":false,"properties":{"type":{"const":"send_preparation_email","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"audience":{"enum":["assigned_interviewer","recruiter","hiring_manager","team_owner"],"type":"string"},"template":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"send_internal_email","type":"string"}},"required":["type","audience","template"],"type":"object"},{"additionalProperties":false,"properties":{"type":{"const":"verify_calendar_event","type":"string"}},"required":["type"],"type":"object"}]},"condition":{"additionalProperties":true,"properties":{"interview_ids":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"},"step_kinds":{"items":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"minItems":1,"type":"array"}},"type":"object"},"delivery_mode":{"enum":["auto_send","auto_draft_review"],"type":"string"},"idempotency_key":{"minLength":1,"type":"string"},"is_active":{"type":"boolean"},"job_posting_ids":{"items":{"format":"uuid","type":"string"},"type":"array"},"job_scope":{"enum":["all_compatible","selected"],"type":"string"},"name":{"maxLength":200,"type":"string"},"pipeline_stage_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"position":{"minimum":0,"type":"integer"},"request_id":{"minLength":1,"type":"string"},"starter_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}]},"timing":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"immediate","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"delayMinutes":{"minimum":0,"type":"integer"},"type":{"const":"delay","type":"string"}},"required":["type","delayMinutes"],"type":"object"},{"additionalProperties":false,"properties":{"anchor":{"enum":["start","end"],"type":"string"},"offsetMinutes":{"type":"integer"},"type":{"const":"interview_relative","type":"string"}},"required":["type","anchor","offsetMinutes"],"type":"object"}]},"trigger":{"enum":["stage_enter","stage_exit","step_ready","booking_created","booking_changed","step_completed","feedback_submitted","interview_time"],"type":"string"}},"required" ⟨5 unchanged words⟩
⟨26 unchanged words⟩ trigger":{"enum":["stage_enter","stage_exit","step_ready","booking_created","booking_changed","step_completed","feedback_submitted","interview_time"],"type":"string"}},"required": ⟨5 unchanged words⟩
Edit astageworkflow automation rule'striggername,typedstage or step trigger, action, condition,positionjob scope, delivery mode, timing oris_activeactive state.
⟨30 unchanged words⟩ "},{"additionalProperties":false,"properties":{"assigned_role":{"enum":["assigned_interviewer","recruiter","hiring_manager","team_owner"],"type":"string"},"assigned_user_email":{"maxLength":320,"minLength":1, ⟨32 unchanged words⟩ "required":["type","task_type","task_title","assigned_user_email"],"type":"object"},{"additionalProperties": ⟨21 unchanged words⟩ type","email_type"],"type":"object"},{"additionalProperties":false,"properties":{"format":{"enum":["combined","separate"],"type":"string"},"interview_ids":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"},"type":{"const":"send_scheduling_invitation","type":"string"}},"required":["type","interview_ids","format"],"type":"object"},{"additionalProperties":false,"properties":{"type":{"const":"send_preparation_email","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"audience":{"enum":["assigned_interviewer","recruiter","hiring_manager","team_owner"],"type":"string"},"template":{"maxLength":200,"minLength":1,"type":"string"},"type":{"const":"send_internal_email","type":"string"}},"required":["type","audience","template"],"type":"object"},{"additionalProperties":false,"properties":{"type":{"const":"verify_calendar_event","type":"string"}},"required":["type"],"type":"object"}]},"condition":{"additionalProperties":true,"properties":{"interview_ids":{"items":{"minLength":1,"type":"string"},"minItems":1,"type":"array"},"step_kinds":{"items":{"enum":["candidate_interview","reference_check","internal_debrief","offer_meeting"],"type":"string"},"minItems":1,"type":"array"}},"type":"object"},"delivery_mode":{"enum":["auto_send","auto_draft_review"],"type":"string"},"idempotency_key":{"minLength":1,"type":"string"},"is_active":{"type":"boolean"},"job_posting_ids":{"items":{"format":"uuid","type":"string"},"type":"array"},"job_scope":{"enum":["all_compatible","selected"],"type":"string"},"name":{"maxLength":200,"type":"string"},"pipeline_stage_id":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"position":{"anyOf":[{"minimum":0, ⟨10 unchanged words⟩ "minLength":1,"type":"string"},"starter_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}]},"timing":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"immediate","type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"delayMinutes":{"minimum":0,"type":"integer"},"type":{"const":"delay","type":"string"}},"required":["type","delayMinutes"],"type":"object"},{"additionalProperties":false,"properties":{"anchor":{"enum":["start","end"],"type":"string"},"offsetMinutes":{"type":"integer"},"type":{"const":"interview_relative","type":"string"}},"required":["type","anchor","offsetMinutes"],"type":"object"}]},"trigger":{"enum":["stage_enter","stage_exit","step_ready","booking_created","booking_changed","step_completed","feedback_submitted","interview_time"],"type":"string"}},"required" ⟨3 unchanged words⟩
Listthe organization's stageworkflow automation runs(what firedincludingforpublic_state,whichreason,candidatenext_action,success/failure).due_atFilterableand interview_session_id. Filter by application-idandor rule-id. Read-only; runs aresystem-written by the executor and include skipped (deferred) send_email rows so run state is fully observable.system-written.
Move an application to Candidates — Move one reviewed application to Candidates. Does not schedule interviews or send email.
Undo an accidental move to Candidates — Correct one accidental candidate admission using its current admission ID. No time limit; refused once candidate activity starts. Preserves history and excludes the corrected episode from admission reporting.
Preview a saved workflow rule (runs nothing) — Preview a saved workflow rule for a real application: recipients, sender, rendered email, scheduling links and missing prerequisites. Executes no action.
Try a workflow run again after fixing setup — Try a workflow run again after fixing missing setup. Only clean refusals and active rules qualify; unknown outcomes are refused.
Clone a hiring pipeline — Clone a pipeline and its stages. Set copy_rules to copy its workflow rules too (requires automation_rules:write). Returns rules_copied.
List documents for a person — List the documents attached to a person (resumes and other files). Archived documents are excluded unless include_archived is true. Takes a per_ display id and returns pdoc_ display ids.