ATS Jobs & Hiring Signals — Greenhouse, Lever, Ashby, Workday avatar

ATS Jobs & Hiring Signals — Greenhouse, Lever, Ashby, Workday

Pricing

from $1.50 / 1,000 job listings

Go to Apify Store
ATS Jobs & Hiring Signals — Greenhouse, Lever, Ashby, Workday

ATS Jobs & Hiring Signals — Greenhouse, Lever, Ashby, Workday

Track who is hiring at the companies you care about. Give company websites or ATS handles; get normalized jobs from Greenhouse, Lever, Ashby, Workday, Personio, Recruitee and Teamtailor. Only-new-jobs mode for scheduled monitoring. No login.

Pricing

from $1.50 / 1,000 job listings

Rating

0.0

(0)

Developer

Dmitry Melikhov

Dmitry Melikhov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

ATS Jobs & Hiring Signals — Greenhouse, Lever, Ashby, Workday, Personio, Recruitee, Teamtailor

Know the day your target companies open a new role. Paste a list of company websites, and this Actor finds each company's applicant-tracking system, pulls its live job postings into one clean schema, and — on a schedule — returns only the jobs that are new since the last run. No login, no browser, no API keys.

Who uses it

You areYou give itYou get
Sales / SDR team selling to companies that are growingYour target-account list (websites) + a daily scheduleA daily feed of new roles: "Acme opened 3 Data Engineer jobs" = a buying signal
Recruiting agencyClient and prospect companiesEvery new opening the moment it is posted, with direct apply URLs
Investor / analystPortfolio or watch-list companiesHiring velocity by company, department and location
Job board or newsletterCompanies you coverFresh, de-duplicated postings from the source ATS
AI agent (MCP / API)companyWebsitesStructured jobs in one call

Quick start

{ "companyWebsites": ["stripe.com", "notion.so", "gitlab.com"] }

That is all. The Actor detects that Stripe and GitLab use Greenhouse and Notion uses Ashby, and returns their jobs.

Monitoring mode — schedule it daily with:

{
"companyWebsites": ["stripe.com", "notion.so", "gitlab.com"],
"onlyNewJobs": true,
"stateKey": "sales-targets"
}

The first run returns all current jobs (your baseline). Every next run returns only postings that appeared since — and you pay only for those rows.

Output — one row per job

{
"vendor": "greenhouse",
"company": "GitLab",
"title": "Senior Backend Engineer",
"url": "https://job-boards.greenhouse.io/gitlab/jobs/8860302002",
"location": "Remote, US",
"department": "Engineering",
"employmentType": null,
"postedAt": "2026-10-01T00:00:00-04:00",
"remote": null,
"jobId": "8860302002",
"description": "…",
"sourceUrl": "https://boards-api.greenhouse.io/v1/boards/gitlab/jobs?content=true",
"fetchedAt": "2026-10-16T12:00:00+00:00",
"statusCode": 200
}

Same 14 fields for all seven ATS vendors. null means the vendor does not publish that field.

Pricing

$2.00 per 1,000 jobs delivered (event job-listing). You are never charged for errors, retries, companies where no ATS was found, jobs you already received in monitoring mode, or the coverage report. Apify platform usage is included.

Example: if your watch-list produces 300 new postings in a week, that week costs $0.60.

Coverage report (key-value store COVERAGE)

One entry per company, so you always know what you did and did not get:

{ "vendor": "greenhouse", "company": "stripe.com", "handle": "stripe",
"jobsFound": 200, "jobsExpected": 731, "coverageStatus": "capped",
"gapReason": "stopped at maxJobsPerCompany=200 (731 reported)",
"newJobsDelivered": 12, "detectedFrom": "stripe.com: probed greenhouse API with handle 'stripe'" }

coverageStatus: complete | partial | capped | failed | not_attempted | not_detected.

How ATS detection works

  1. If you paste an ATS URL (jobs.lever.co/acme, acme.wd5.myworkdayjobs.com/External) it is parsed directly.
  2. Otherwise the Actor reads the company site, /careers and /jobs and looks for embedded ATS links or widgets.
  3. As a last resort it tries the domain name as a Greenhouse, Lever or Ashby handle. A match found this way is marked "probed … with handle" in detectedFrom — check it for companies with generic names. For exact control, pass companies with {vendor, handle} instead.

Limits

  • Only public career boards are read. Companies using other ATS (iCIMS, Taleo, SuccessFactors, SmartRecruiters…) are reported as not_detected and cost nothing.
  • Workday reports at most what its public career site shows; descriptions cost one extra request per job.
  • Monitoring memory lives in a named key-value store ats-jobs-state-<stateKey> in your own account; delete it to reset.

Exact sources (advanced)

VendorInputPublic endpointReports a total?
Greenhouse{vendor:"greenhouse", handle}boards-api.greenhouse.io/v1/boards/{handle}/jobsyes
Lever{vendor:"lever", handle}api.lever.co/v0/postings/{handle}no
Ashby{vendor:"ashby", handle}api.ashbyhq.com/posting-api/job-board/{handle}no
Workday{vendor:"workday", handle, host, site}POST {host}/wday/cxs/{tenant}/{site}/jobsyes
Personio{vendor:"personio", handle}{handle}.jobs.personio.de/xmlyes
Recruitee{vendor:"recruitee", handle}{handle}.recruitee.com/api/offers/no
Teamtailor{vendor:"teamtailor", handle}{handle}.teamtailor.com/jobs.jsonno

Feedback

Missing an ATS or a field you need? Open an issue on the Actor page.