← all tools
ATScoming soon

Breezy HR

Coming soon — not connectable yet while Breezy finishes its own API. Post a job to Breezy HR via its v3 API — create a position with a title, description, employment type, location, department, category, experience and education levels, salary band, pipeline, questionnaire, tags and application-form field visibility. BYOK-only.

Cost per callBYOK · vendor billed
Your own keyrequired
CategoryATS

Ask for the outcome and your agent composes the run itself. Or start from a skill, a whole pipeline it already knows end to end.

browse all skills →

What your agent reads before it touches Breezy HR

Every tool ships with a written playbook, 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 Breezy HR docs →
Show the raw playbookwritten for the agent

Breezy calls a job a position.

Coming soon

Breezy's own v3 API is published as a work in progress, so the integration is not connectable yet: Breezy is listed on the Integrations page as unavailable, saving a key is refused, and the breezy_* tools will not run. The adapter below is built and tested against the documented surface — this page describes what ships the day Breezy's API is ready. Ask us if you need it before then.

Access

Breezy is BYOK-only. Once it opens you will connect your own Breezy personal access token and your company id in Integrations; there is no managed-key fallback and the write costs 0 Hyreflow credits. The company's Breezy plan needs the Developer API feature enabled. list_companies is the free connection check: it verifies the key and returns the companies the token can reach.

Create a position

create_job(payload) posts a position. Required: name, description, type, location.country.

  • name (required) — the position title.
  • description (required) — the position details.
  • type (required) — fullTime, partTime, contract, temporary, other.
  • location.country (required) — 2-letter ISO country code.
  • location.state — validated against US states / Canadian provinces when the country is US or CA.
  • location.city, location.is_remote.
  • requisition_id — your own tracking id.
  • department — must match the name of an existing department.
  • categorysoftware, design, product, sysadmin, devops, finance, custserv, sales, marketing, pr, hr, management, operations, other, or a custom category id.
  • experiencena, internship, entry-level, associate, mid-level, senior-level, executive.
  • educationunspecified, high-school, certification, vocational, associate-degree, bachelors-degree, masters-degree, doctorate, professional, some-college, vocational-diploma, vocational-degree, some-high-school.
  • salary{from, to, period, currency}.
  • pipeline_id / scorecard_id / questionnaire_id — must exist in the company, or the call 404s.
  • tags — free-form strings.
  • application_form — per-field visibility (see below).
hyreflow tools execute breezy_create_job --payload '{
  "name": "Senior Platform Engineer",
  "description": "<p>Own the deployment platform.</p>",
  "type": "fullTime",
  "location": {"country": "US", "state": "CA", "city": "San Francisco"},
  "experience": "senior-level"
}'

The position's id is _id.

Publishing it

set_job_state(position_id) defaults to published, and also accepts draft, archived and closed:

hyreflow tools execute breezy_set_job_state --payload '{"position_id": "a3f9c1d2e4b5"}'

It answers 204 with no body, so an empty result is success. Publishing can fail with a 400 once the company's plan hits its active-position limit — that's a billing constraint, not a bad payload, so relay it rather than retrying. pending shows up in the state a position can be in, but the endpoint won't accept it as a value to set.

Gotchas

  • Breezy silently drops any field it doesn't recognize — a typo produces a success with the value missing. Hyreflow rejects unknown top-level keys instead, so an "unsupported field" error means a typo.
  • A position read back returns type, experience and category as objects; create takes plain strings — take .id, never the object.
  • pipeline_id, scorecard_id, questionnaire_id are checked by reference: a well-formed but non-existent id 404s. Only send one the user gave you.
  • Breezy publishes no rate limit; don't batch positions in parallel.
  • This is a write into the customer's own ATS — confirm the payload before executing.

What creating a position does NOT do

  • state cannot be set here — Breezy decides it. set_job_state, above, moves it, and can fail once the plan's active-position limit is hit.
  • salary.period and salary.currency are validated against sets Breezy doesn't publish; ask the user what their account uses if one is refused.