ATS Hiring Signals & Salary Feed avatar

ATS Hiring Signals & Salary Feed

Pricing

from $2.00 / 1,000 job results

Go to Apify Store
ATS Hiring Signals & Salary Feed

ATS Hiring Signals & Salary Feed

Monitor public job listings across Greenhouse, Lever, Ashby, Workable, and SmartRecruiters. Extract structured job data, published salary ranges, remote work details, and hiring changes. Track new, updated, and removed listings for recruitment, sales intelligence, and market research.

Pricing

from $2.00 / 1,000 job results

Rating

0.0

(0)

Developer

PRIVATEX

PRIVATEX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Turn a list of companies into a clean, normalized feed of their open jobs, published pay ranges and hiring changes — straight from the official public job-board APIs of Greenhouse, Lever, Ashby, Workable and SmartRecruiters.

No login, no cookies, no proxy, no browser. Because the data comes from the endpoints these platforms publish for career sites, runs are fast, stable and cheap.

Who is it for

Recruiters and sourcers tracking who is hiring, sales and partnership teams using hiring as a buying signal, and analysts or job-board builders who need clean job and pay data without writing five ATS integrations.

Quick start

  1. Open the Input tab. Demo mode is pre-ticked: the first run returns FREE synthetic data about fictional companies (labelled dataOrigin: SYNTHETIC_DEMO) so you can inspect the output format at no cost. To get real data, untick Demo mode - the four example companies (Airbnb, Ramp, Palantir, Hugging Face) are pre-filled, capped at 25 jobs each, costing at most about $0.20; raise Max jobs per company for full boards. A run started with completely empty input (for example from the API) is also a free demo.
  2. Press Start. No account, API key or proxy is needed: the Actor reads each company's public job-board API.
  3. Open Output: one row per open job with title, location, remote flag, pay range (if published) and a change column (first_seen, new, updated, unchanged, removed).
  4. Run it again later with the same input: the Actor remembers the previous run and marks what is new, updated or removed.

Example input

{
"companies": ["greenhouse:airbnb", "lever:palantir"],
"titleKeywords": ["engineer"],
"remoteOnly": false,
"postedWithinDays": 30
}

Example output row (SAMPLE - synthetic, illustrative values; not from a real account)

{
"company": "Airbnb",
"ats": "greenhouse",
"jobId": "1234567",
"change": "new",
"title": "Senior Backend Engineer",
"location": "Remote - US",
"workplaceType": "remote",
"salaryMin": 180000, "salaryMax": 220000, "salaryCurrency": "USD", "salaryPeriod": "year",
"url": "https://boards.greenhouse.io/airbnb/jobs/1234567"
}

Errors you may see

  • "companies" is missing / is empty / must be a list of strings: fix the input; the run fails on purpose, nothing is charged.
  • No public job board was found for any entry: none of your companies has a public Greenhouse, Lever, Ashby, Workable or SmartRecruiters board. Use a careers URL or ats:slug.
  • Demo output is never real jobs and is never billed.

Pricing

$0.002 per job listing delivered ($2 per 1,000 jobs). A job is billed only when its row is written to your dataset. removed markers (a job that disappeared since your last run) are free. Filters (titleKeywords, remoteOnly, maxJobsPerCompany, ...) are applied before billing, so you pay only for jobs you keep.

Pay-per-event. Platform usage (compute, storage) is included in the price - there is no separate Apify usage bill for you. A negligible Actor-start event ($0.00005 per GB of memory, minimum one) also applies. You can cap spending with Apify's "Maximum charged results / cost per run" setting; the Actor stops cleanly at your limit.

What is verified, and what is not

  • Greenhouse, Lever, Ashby, Workable and SmartRecruiters public job-board APIs are called live; behaviour was checked against real public boards.
  • Change tracking (new/updated/removed) needs a previous run with the same input and stateStoreName; the first run reports first_seen.

Limitations

  • Only companies that publish through one of the five supported ATS systems are found. Company names and domains are matched by guessing the board slug - check the ats and atsSlug columns, or pass a careers URL / ats:slug for exact results.
  • Pay ranges appear only where the employer published them; salarySource tells you whether the range is structured or parsed from text.

Built by PRIVATEX. Questions or a data-format that does not parse? Open an issue on the Actor page and include the (anonymised) column headers or first lines.

What you get

  • Auto-discovery – give a company name, a domain, a careers URL or ats:slug; the Actor finds the job board.
  • One schema for five ATS platforms – title, department, team, employment type, locations, country, remote/hybrid/onsite, posted date, job and apply URLs.
  • Pay transparency – salary min/max, currency, period and a yearly-normalised amount. Taken from the official structured field when the ATS exposes it (Greenhouse, Ashby, Lever), otherwise parsed from the job text and labelled salarySource: "text".
  • Change tracking – every row is labelled first_seen, new, updated, unchanged or removed compared with the previous run. Schedule it daily and use changesOnly to receive just the delta.
  • Filters that save money – title keywords, exclusions, location, remote only, only jobs with pay, posted within N days, max jobs per company. You are charged for returned jobs only.

Who uses it

  • Sales & RevOps teams – hiring signals: who is hiring SDRs, data engineers or security staff right now.
  • Recruiters & talent-intelligence teams – competitor job and pay benchmarking by role and country.
  • Job boards & aggregators – a legal, structured source of direct-from-employer listings.
  • Compensation analysts & journalists – pay-transparency datasets (US state laws, EU Pay Transparency Directive).
  • AI agents / automations – a reliable "what is company X hiring for" tool.

Input

{
"companies": ["greenhouse:airbnb", "ashby:ramp", "https://jobs.lever.co/palantir", "Hugging Face"],
"titleKeywords": ["engineer", "data"],
"locationKeywords": ["United States", "remote"],
"onlyWithSalary": true,
"maxJobsPerCompany": 50,
"trackChanges": true,
"changesOnly": false
}
FieldMeaning
companiesNames, domains, careers URLs or ats:slug entries. URLs and ats:slug are exact; names/domains are matched by slug – verify ats/atsSlug in the output.
atsPlatformsWhich systems to probe for names/domains.
titleKeywords / excludeTitleKeywordsTitle include / exclude filters.
locationKeywords, remoteOnlyLocation and remote filters.
onlyWithSalaryKeep only jobs with a published pay range.
postedWithinDaysFreshness filter.
maxJobsPerCompanyNewest-first cap per company (0 = unlimited).
includeDescriptionAdds plain-text description to each row.
trackChanges, changesOnly, stateStoreNameRun-to-run change detection.

Output example

{
"company": "Ramp",
"ats": "ashby",
"atsSlug": "ramp",
"change": "new",
"title": "Senior Backend Engineer",
"location": "New York, NY (HQ)",
"workplaceType": "hybrid",
"postedAt": "2026-10-22T19:20:16.077Z",
"url": "https://jobs.ashbyhq.com/ramp/...",
"salaryMin": 204000,
"salaryMax": 280000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryAnnualMin": 204000,
"salaryAnnualMax": 280000,
"salarySource": "ats-structured"
}

A SUMMARY record in the key-value store lists, per company, which board was found, how many jobs are open and how many were returned.

Good to know

  • Only public job postings that employers publish for candidates are read. No personal data is collected.
  • Companies that use other systems (Workday, iCIMS, custom sites) are reported as "no public job board found".
  • SmartRecruiters' public listing does not expose descriptions or pay; those fields are empty for that ATS.
  • Pay parsed from free text is best-effort; structured pay is flagged ats-structured.
  • Very large boards (thousands of jobs) take a few more seconds; SmartRecruiters scanning is capped at 5,000 postings per company.

Scheduling a hiring-signal monitor

Create a schedule (daily), keep trackChanges on, set changesOnly: true, and connect the dataset to a webhook, Google Sheets, Slack or Zapier/Make.