← all tools
ATS

Ashby

Post a job to Ashby via its API — create a job with a title, team, location, employment type, interview plan, template and brand. BYOK-only.

Ashby is an applicant tracking system, and one of the 54 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 4 actions: 1 that looks something up and 3 that create or change records. Ashby runs on your own Ashby account: hyreflow charges no credits for it, and Ashby bills you as before.

Cost per callBYOK · vendor billed
Your own keyrequired
CategoryATS

Which Ashby actions can an AI agent run through hyreflow?

Through hyreflow, an AI agent can run 4 Ashby actions: 1 that looks something up and 3 that create or change records. Ashby runs on your own Ashby account: hyreflow charges no credits for it, and Ashby bills you as before.

Ashby actionWhat it doesCost through hyreflow
Create jobCreates or changes a recordno hyreflow credits
Create job postingCreates or changes a recordno hyreflow credits
Set job statusCreates or changes a recordno hyreflow credits
List departmentsLooks something upno hyreflow credits

One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.

How does an AI agent know how to use Ashby?

hyreflow ships a written playbook for Ashby, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.

Read the Ashby docs →
Show the raw playbookwritten for the agent

Access

Ashby is BYOK-only. Connect your own Ashby API key in Integrations; the key needs Ashby's jobsWrite permission. There is no managed-key fallback and the write costs 0 Hyreflow credits. list_departments is the free connection check: it verifies the key and returns the departments a teamId comes from.

Create a job

create_job(payload) posts a job. Three fields are required, and the schema is closed: any field not listed here is rejected.

  • title (required) — the job title.
  • teamId (required) — UUID of the department/team.
  • locationId (required) — UUID of the job's location.
  • defaultInterviewPlanId — UUID; a job cannot be opened without one.
  • jobTemplateId — UUID; only an active template may be used.
  • employmentType — FullTime, PartTime, Intern, Contract, Temporary.
  • brandId — UUID of the brand the job publishes under.
hyreflow tools execute ashby_create_job --payload '{
  "title": "Senior Platform Engineer",
  "teamId": "f9e52a51-a075-4116-a7b8-484deba69004",
  "locationId": "3ae2b801-19f6-41ef-ad28-214bd731948f",
  "employmentType": "FullTime"
}'

The new job's id is results.id.

Where the ids come from

list_departments returns the teamId values. locationId, defaultInterviewPlanId, jobTemplateId and brandId are Ashby UUIDs Hyreflow does not look up. Ask the user for them, or have them read the ids out of Ashby (Departments, Locations, Job Templates, Brands each show the id in the admin URL). Never invent a UUID — a wrong id is a failed write.

Opening the job

set_job_status(job_id, status) moves a job between Draft, Open, Closed and Archived. close_reason_id is accepted only alongside Closed. A job can't move to Open until it has a default interview plan — set defaultInterviewPlanId at create time or the open fails.

hyreflow tools execute ashby_set_job_status --payload '{
  "job_id": "1be42b8e-cafd-4beb-8121-f4981eb20f42",
  "status": "Open"
}'

Publishing the posting

create_job_posting(payload) creates the candidate-facing posting — the object that actually puts a role on a careers page. Only jobId is required; the posting defaults to Draft, so pass "status": "Published" to go live, and a published posting must carry a description.

  • jobId (required) — the job the posting belongs to.
  • title — defaults to the parent job's title.
  • description — required to publish — {"type": "text/html", "value": "<p>…</p>"}.
  • status — Draft (default) or Published.
  • workplaceType — OnSite, Hybrid, Remote.
  • isListed — defaults to true; forced false when the parent job is confidential.
  • locationId — inherits the job's location.
  • secondaryLocationIds — additional locations.
  • applicationFormDefinitionId — falls back to the org default form.
hyreflow tools execute ashby_create_job_posting --payload '{
  "jobId": "1be42b8e-cafd-4beb-8121-f4981eb20f42",
  "description": {"type": "text/html", "value": "<p>Own the deployment platform.</p>"},
  "status": "Published",
  "workplaceType": "Hybrid"
}'

Publishing is public and irreversible in the way that matters — candidates can see it. Confirm with the user before the Published call, not after.

Gotchas

  • Ashby answers a rejected write with HTTP 200 and success: false — treat any error text as "not created", not a partial success.
  • No idempotency key: a retried call after a timeout can create a second job. Check Ashby first.
  • This is a write into the customer's own ATS — confirm the exact payload before executing.

What creating a job does NOT do

  • The job is created in Draft. Opening it is set_job_status, above, and it cannot open at all until it has a default interview plan.
  • Nothing appears on a careers page yet — the candidate-facing posting is a separate object, created and optionally published with create_job_posting, above.
  • confidential cannot be set through the API, on create or update.

Questions about Ashby and hyreflow

Can I use Ashby inside Claude or ChatGPT?

Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls Ashby for you. hyreflow exposes 4 Ashby actions this way.

Do I need my own Ashby account to use it with hyreflow?

Yes. Ashby runs on your own Ashby account. You connect it to hyreflow once, hyreflow charges no credits for the calls, and Ashby bills you as before.

What does Ashby cost through hyreflow?

Ashby runs on your own Ashby account: hyreflow charges no credits for it, and Ashby bills you as before.

How do I connect Ashby to an AI agent over MCP?

Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the Ashby API directly and exposes its actions as tools the assistant can run, so there is no separate Ashby server to install.

Connect hyreflow to your assistant →

Put Ashby to work from one prompt

Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.