Skip to main content

Documentation Index

Fetch the complete documentation index at: https://lava.so/docs/llms.txt

Use this file to discover all available pages before exploring further.

Applicant tracking system (ATS) API for reading and managing a company’s hiring pipeline in Breezy HR — positions, candidates, pipeline stages, scorecards, and interview guides. Use when an agent needs to list open roles, pull or add candidates, move candidates between stages, or read recruiting data from a team’s own Breezy account. Unlike candidate-sourcing or enrichment APIs, Breezy returns the customer’s own recruiting records — their pipeline state, not public profiles. 11 example endpoints available through Lava’s AI Gateway. See the Breezy HR API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.breezy.hr/v3 is supported. Any Breezy HR v3 endpoint. Construct URL as https://api.breezy.hr/v3/{path}. Most resources are company-scoped under /company//… (positions, pipelines, questionnaires, templates, departments); get your company_id from GET /companies. Candidates live under a position: /company//position//candidate(s). The candidate list supports ?page and ?page_size (max 50). Rate limit: 100 requests per 60 seconds per token (HTTP 429 on exceed). See https://developer.breezy.hr/reference/overview for the full reference. The endpoints below are curated examples.

Endpoints

List companies the access token can manage (returns the company_id used by other endpoints)

GET https://api.breezy.hr/v3/companies — Free
const data = await lava.gateway('https://api.breezy.hr/v3/companies', { method: 'GET' });

Get the user that owns the access token

GET https://api.breezy.hr/v3/user — Free
const data = await lava.gateway('https://api.breezy.hr/v3/user', { method: 'GET' });

List positions (job openings) for a company, optionally filtered by state (draft, published, archived, closed, pending)

GET https://api.breezy.hr/v3/company/{company_id}/positions?state=published — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/positions?state=published', { method: 'GET' });

Create a new position (job opening) for a company

POST https://api.breezy.hr/v3/company/{company_id}/positions — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/positions', {
  body: {
"name": "Senior Backend Engineer",
"type": "fullTime",
"description": "We are hiring a senior backend engineer.",
"location": {
  "country": "US",
  "state": "FL",
  "city": "Jacksonville",
  "is_remote": true
},
"category": "software",
"department": "Engineering",
"experience": "mid-senior"
},
});

List candidates for a position (abbreviated objects). Supports ?page and ?page_size (max 50)

GET https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidates?page=1&page_size=50 — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidates?page=1&page_size=50', { method: 'GET' });

Add a new candidate to a position

POST https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidates — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidates', {
  body: {
"name": "Jane Candidate",
"email_address": "jane@example.com",
"phone_number": "123-456-7890",
"summary": "Strong backend background, 6 years of experience.",
"tags": [
  "technical",
  "senior"
],
"source": "LinkedIn",
"origin": "sourced"
},
});

Retrieve a single candidate (full object) by id

GET https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id} — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id}', { method: 'GET' });

Move a candidate to a different stage (and optionally a different position) in the hiring pipeline

POST https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id}/move — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id}/move', {
  body: {
"target_position_id": "{target_position_id}",
"target_stage_id": "applied",
"stage_actions_enabled": false
},
});

List the hiring pipelines (stage definitions) for a company

GET https://api.breezy.hr/v3/company/{company_id}/pipelines — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/pipelines', { method: 'GET' });

Update a candidate’s details (e.g., tags, summary)

PUT https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id} — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/position/{position_id}/candidate/{candidate_id}', {
  method: 'PUT',
  body: {
"tags": [
  "technical",
  "senior",
  "onsite"
],
"summary": "Updated after phone screen — strong on system design."
},
});

Delete a webhook endpoint

DELETE https://api.breezy.hr/v3/company/{company_id}/webhook_endpoint/{endpoint_id} — Free
const data = await lava.gateway('https://api.breezy.hr/v3/company/{company_id}/webhook_endpoint/{endpoint_id}', { method: 'DELETE' });

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests