ATS Hiring Signals: Greenhouse, Lever & Ashby Jobs API avatar

ATS Hiring Signals: Greenhouse, Lever & Ashby Jobs API

Pricing

from $1.00 / 1,000 job results

Go to Apify Store
ATS Hiring Signals: Greenhouse, Lever & Ashby Jobs API

ATS Hiring Signals: Greenhouse, Lever & Ashby Jobs API

Turn company domains or names into open jobs from the official public Greenhouse, Lever and Ashby job-board APIs. Normalized jobs (annual USD salary, seniority, function), a per-company hiring summary with a transparent hiring-intent score, and new/closed job tracking between runs.

Pricing

from $1.00 / 1,000 job results

Rating

0.0

(0)

Developer

Dot Com

Dot Com

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn a list of company domains or names into open jobs and hiring signals. The Actor finds out whether each company uses Greenhouse, Lever or Ashby, then reads that ATS's official public job-board API. You get back:

  • Normalized jobs: title, department, location, remote/hybrid/on-site, employment type, seniority, job function and published salary (also converted to annual USD).
  • A per-company summary: open jobs by department, function and seniority, hiring velocity, salary transparency, and a transparent 0–100 hiring-intent score.
  • Change tracking: jobs that are new or closed since your last run. Schedule it daily to monitor hiring.

There is no login, no scraping of job aggregators, no Workday and no LinkedIn. The Actor only reads the documented public endpoints that employers publish so others can build careers pages.

Use cases

  • Sales prospecting (hiring intent): find accounts that are hiring sales, data or security people right now. Rank them by hiringIntentScore.
  • Recruiting & talent intelligence: track competitors' openings, salary bands and new roles every day.
  • Job boards & newsletters: a clean, deduplicated feed of direct employer postings with apply links.
  • AI agents (MCP): inputs are simple strings, every output field is described, and summaries are compact enough to fit in a prompt.

Input

FieldWhat it does
companiesDomains (linear.app), URLs, names (Ramp), board URLs (https://jobs.lever.co/spotify) or tokens (greenhouse:airbnb, lever:palantir, ashby:ramp).
boardsOptional known boards; these skip detection.
titleKeywords, excludeTitleKeywords, locations, departments, workplace, seniority, postedWithinDaysFilters.
includeDescriptions / descriptionFormatAdds the full description as plain text or HTML.
changeTracking, onlyNewJobs, emitChangeEvents, stateStoreNameMonitoring between runs.

Example:

{
"companies": ["linear.app", "Ramp", "greenhouse:discord"],
"titleKeywords": ["engineer"],
"workplace": "remote_or_hybrid",
"changeTracking": true
}

Output

Results go to three datasets (see the Output tab).

  • Jobs (default dataset): one record per matching job. Fields include company, ats, jobId, title, department, location(s), workplaceType, employmentType, seniority, jobFunction, salaryMin/Max/Currency/Interval, salaryAnnualMinUSD/MaxUSD, salarySource, postedAt, url, isNew, firstSeenAt and optionally description.
  • Companies: one record per input. It has the detection result (detectionMethod, detectionConfidence, detectionEvidence) and these signals:
    • boardOpenJobs, byDepartment, byFunction, bySeniority, postedLast7/30/90Days
    • salaryTransparencyRate, medianSalaryAnnualUSD
    • newSinceLastRun, closedSinceLastRun
    • hiringIntentScore, plus its components and the exact formula
  • Changes: job_added / job_removed events since the previous tracked run.

Hiring-intent score (0–100)

The score is computed on the jobs that match your filters:

  • volume = 35 × min(1, log10(1+openJobs)/log10(201))
  • freshness = 30 × postedLast30Days/openJobs
  • momentum = 25 × clamp(0.5 + 2.5 × (new − closed)/previousOpen, 0, 1). This is neutral (12.5) on the first run.
  • leadership = 10 × min(1, director/VP/C-level openings / 5)

Every record includes the components, so you can re-weight them yourself.

How detection works

  1. Direct input: a board URL or ats:token is used as given (confidence high).
  2. Website links: the Actor reads the homepage and up to 4 careers pages (robots.txt respected) and looks for Greenhouse, Lever or Ashby board links or embeds (confidence high).
  3. Slug probing: it tries likely tokens (from the domain or name) against the three APIs. Confidence is medium if the company name appears in the board data, low otherwise. Check low-confidence matches before relying on them. If plain tokens fail, common Greenhouse variants are tried too (scaleai, doordashusa, andurilindustries, gleanwork). A variant is only accepted when the company name is confirmed in the board data.

Detections are cached in the state store for 14 days.

Pricing (pay per event)

EventPrice
Company resolved (a board was found and read)$0.002
Job result (one job record)$0.001
Change event (job added/removed since last run)$0.0005

Companies that aren't found, duplicates and summary records are free. Use Max jobs per company, Output only new jobs or the platform's maximum cost per run to cap spend. The Actor stops cleanly when the limit is reached and does not advance the change-tracking snapshot for companies it could not finish.

Limitations

  • Only Greenhouse, Lever and Ashby are supported. Companies on Workday, SmartRecruiters, iCIMS, etc. come back as not_found.
  • Name-only inputs rely on slug probing, so give domains when you can.
  • Salaries appear only when the employer publishes them. Description-parsed salaries are marked description_text.
  • Seniority and job function are rule-based classifications of the title. They are not taken from the ATS.
  • Greenhouse first_published can reset when a job is reposted. Lever provides no "updated" date.
  • Very large Greenhouse boards (descriptions over about 20 MB, e.g. 2,000+ jobs) are fetched without descriptions. A note on the company record says so.
  • Large boards produce many job-result events. Use maxJobsPerCompany or filters to cap the cost.
  • Lever EU boards need the lever:eu:<token> form or a jobs.eu.lever.co URL; probing checks the global instance only.
  • USD conversion uses European Central Bank reference rates of the day. If those rates can't be fetched, only USD salaries get USD values.

Data sources & attribution

Job content belongs to the employers who publish it. Use it in line with each employer's terms and applicable law. The Actor identifies itself with the User-Agent ATSHiringSignals/1.0.


Resumen en español

ATS Hiring Signals convierte una lista de dominios o nombres de empresa en ofertas de empleo abiertas y señales de contratación. Detecta si la empresa usa Greenhouse, Lever o Ashby y lee sus APIs públicas oficiales, sin login ni scraping de LinkedIn.

Devuelve:

  • ofertas normalizadas (salario anualizado en USD, nivel de seniority, área funcional, remoto/híbrido/presencial);
  • un resumen por empresa con una puntuación de intención de contratación (0–100) con fórmula transparente;
  • las ofertas nuevas y cerradas desde la última ejecución.

Ideal para prospección B2B, reclutamiento y agentes de IA.

Precio: $0.002 por empresa encontrada, $0.001 por oferta y $0.0005 por cambio detectado.