# HiringOrchestrator > The headless, agent-native ATS. Every capability is exposed to agents as a first-class surface: a remote MCP server, a REST API, and an in-product copilot all share one capability layer. The UI is one consumer among equals. HiringOrchestrator is auto-on: connect it and your agent can activate a workspace, import an existing ATS, open and publish jobs, collect applications on a hosted board, send native 30-minute skill assessments (HiringTest), read scorecards, schedule interviews, collect blind feedback, and run versioned offers through approval chains. Posture: graded writes. Reads are free; consequential actions return undo handles; destructive actions require human confirmation; the system never makes an automated hiring decision; agents present evidence, humans decide. ## Connect - MCP server (streamable HTTP): https://www.hiringorchestrator.com/api/mcp - Auth: OAuth 2.1 with dynamic client registration, or scoped API keys - Install guide: https://www.hiringorchestrator.com/install - Command reference: https://www.hiringorchestrator.com/developers - REST API: https://www.hiringtest.ai/api/v1/orchestrator (Bearer, RFC 7807 errors) ## Commands (62 total, generated from the live catalog) ### Read - get_started: Call this FIRST in a new conversation, or whenever the user asks how to begin ('set me up', 'where do I start', 'what's the state of things'). - list_jobs: Call this when the recruiter asks about their jobs, roles, or requisitions (e.g. - get_job: Call this for full detail on one job (description, compensation, status, dates).. - get_pipeline_summary: Call this when the recruiter asks how a job's pipeline looks ('how's the PM role doing?', 'where are candidates stuck?'). - search_candidates: Call this when the recruiter refers to a person by name or email ('move Maya forward', 'do we have anyone from Acme?'). - get_candidate: Call this for one candidate's full ATS profile: identity, links, tags, recent notes.. - list_applications: Call this for the candidates on a job (optionally one stage), or recent activity across the org ('who applied this week?' → updatedAfter). - get_application: Call this for one application's detail including its full stage history.. - list_org_structure: Call this when you need the org's departments, candidate sources, or rejection/close reasons (e.g. - get_culture_profile: Call this before drafting any job description or public-facing copy — returns the company's values, what makes a great employee here, work style, and voice notes. - get_screening_questions: Call this to read a job's current screening/knockout questions before editing them (set_screening_questions replaces the whole list).. - get_candidate_comms_log: Call this for 'what have we sent this candidate' or any communication-history question. - export_candidate_record: Call this for an audit, EEOC, or data request about a specific candidate. - get_decision_record: Call this when anyone asks 'why was this candidate rejected' or for an audit/EEOC question. - get_assessment_scorecard: Call this when the recruiter asks how a candidate scored ('how did Maya do?'). - get_ats_import_status: Call this to check an import run: its status, the proposed stage mapping + any per-entity gaps (when awaiting confirmation), and live counts. - list_automation_rules: Call this to see the workspace's automation rules ('what automations do we have?'). - list_assessment_roles: Call this before attach_assessment to see which activated HiringTest assessment roles this workspace can attach to a job. - list_feedback_forms: Call this before submitting feedback to find the right scorecard form, or when the user asks what feedback forms exist.. - get_interview_briefing: Call this when an interviewer asks to be prepped ('prep me for my 2pm') — returns candidate background, the job, this interview's focus, the HiringTest assessment evidence (composite + weakest domains to probe), and any visible prior feedback.. - list_sequences: Call this when the user asks about their outreach sequences, or before enrolling candidates (to pick the right sequenceId).. - get_sequence_metrics: Call this when the user asks how a sequence is performing. ### Act (consequential; undo handles) - activate_orchestrator: Call this once when an org is brand new ('set me up') — seeds default sources, reasons, and the standard pipeline template. - set_culture_profile: Call this after interviewing the user about their culture — typically during first-run or before the first posting. - create_department: Call this when the user names a department that doesn't exist yet (check list_org_structure first). - create_job: Call this when the recruiter wants to open a new role/requisition. - update_job: Call this to edit an existing job's title, description, or department ('add a culture fit section to the Data Analyst JD'). - set_company_logo: Call this when the workspace has no logo or the recruiter wants to change it ('use the logo from our website'). - set_screening_questions: Call this when the recruiter wants application screening or knockout questions on a job ('ask applicants if they can work onsite in Austin'). - set_job_status: Call this to open, close, or archive a job. - create_candidate: Call this to add a person to the ATS ('add Jane, jane@x.com, from the meetup'). - add_candidate_note: Call this to record context on a candidate ('note that she prefers remote'). - add_candidate_tag: Call this to label a candidate ('tag him as senior-backend'). - create_application: Call this to put a candidate into a job's pipeline. - move_application_stage: Call this to advance or move a candidate's application to another stage ('move Maya to onsite'). - transfer_application: Call this to move a candidate's application to a DIFFERENT job (not a stage change). - cancel_rejection_notice: Call this when the recruiter wants to hold a not-yet-sent rejection email ('don't send Maya the rejection yet'). - propose_rejection_batch: Call this when the recruiter wants to clear out flagged applicants in bulk ('reject everyone who failed the location knockout'). - send_assessment: Call this to send a candidate the HiringTest assessment for their job ('send Maya the assessment'). - invite_to_hiringcase: Call this to invite a candidate to build a HiringCase living profile (verified endorsements + demonstrated work). - start_ats_import: Call this to promote a connected ATS's full pipeline into Orchestrator ('import everything from Greenhouse'). - confirm_ats_import: Call this AFTER the recruiter has reviewed the stage mapping from get_ats_import_status, to begin writing the imported jobs, candidates, and applications. - create_automation_rule: Call this when the recruiter asks to automate routine pipeline motion ('whenever someone scores 80+, move them to interview and tell me'). - set_automation_rule_enabled: Call this to pause or resume an automation rule. - publish_job_posting: Call this to publish a job on the org's public hosted board ('post the PM role'). - unpublish_job_posting: Call this to take a job off the public board ('stop accepting applications for the PM role'). - attach_assessment: Call this to make a HiringTest skill assessment the job's native assessment stage ('use the PM assessment on this req'). - submit_feedback: Call this when the signed-in interviewer wants to file their scorecard on an application. - schedule_interview: Call this to record an interview time agreed with the candidate ('book Maya's onsite for Tuesday 2pm'). - create_offer: Call this to draft an offer on an application ('draft an offer for Maya at 180k'). - start_offer_approval: Call this to send a draft offer through the company's sequential approval chain. - approve_offer: Call this ONLY when the signed-in recruiter is the named approver of the current pending step and has stated their decision. - extend_offer: Call this to send the approved offer letter to the candidate by email ('send Maya her offer'). - record_offer_response: Call this when the candidate has responded to an extended offer. - create_sequence: Call this AFTER drafting an outreach sequence WITH the user. - enroll_in_sequence: Call this to start outreach to specific candidates ('enroll these five in the data-analyst three-touch'). - stop_enrollment: Call this to stop outreach to one candidate ('stop the sequence for Maya'). - set_outreach_opt_out: Call this when a candidate asks not to be contacted ('take Maya off all outreach'). ### Destructive (confirmation required) - reject_application: Call this ONLY after the recruiter explicitly confirms rejecting a specific candidate. - confirm_rejection_batch: Call this ONLY after the recruiter reviewed the proposal list and explicitly approved specific candidates — repeat every name back before calling. - merge_candidates: Call this ONLY after the recruiter confirms two records are the same person. - rescind_offer: Call this ONLY on an explicit instruction to pull an extended offer. ## Public surfaces - Hosted job boards: https://www.hiringorchestrator.com/o/{org} - Per-org JSON feed: https://www.hiringorchestrator.com/o/{org}/feed.json