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.
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 action | What it does | Cost through hyreflow |
|---|---|---|
| Create job | Creates or changes a record | no hyreflow credits |
| Create job posting | Creates or changes a record | no hyreflow credits |
| Set job status | Creates or changes a record | no hyreflow credits |
| List departments | Looks something up | no hyreflow credits |
One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.
2 hyreflow skills call Ashby as part of the run. A skill is a whole pipeline your agent already knows, end to end.
use whenthe same role has to be opened in more than one applicant tracking system and you are tired of typing it out in each
use whenyou have a client's job description or your own brief, and what goes on the careers page has to be written for the candidate, not for the client's file
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 →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_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.
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.
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"
}'
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.
success: false — treat any error text as "not
created", not a partial success.Draft. Opening it is set_job_status, above, and it cannot open at all until
it has a default interview plan.create_job_posting, above.confidential cannot be set through the API, on create or update.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.
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.
Ashby runs on your own Ashby account: hyreflow charges no credits for it, and Ashby bills you as before.
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 Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.