Workday, Greenhouse, Lever & Ashby Jobs Scraper + Delta API avatar

Workday, Greenhouse, Lever & Ashby Jobs Scraper + Delta API

Pricing

from $1.20 / 1,000 job listings

Go to Apify Store
Workday, Greenhouse, Lever & Ashby Jobs Scraper + Delta API

Workday, Greenhouse, Lever & Ashby Jobs Scraper + Delta API

Scrape open jobs from Workday, Greenhouse, Lever and Ashby career sites, or start from a company domain and find its ATS job board. Change tracking returns only new, updated and closed jobs. No browser, no proxies.

Pricing

from $1.20 / 1,000 job listings

Rating

0.0

(0)

Developer

ginugokz

ginugokz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Get every open job from company career sites running Workday, Greenhouse, Lever or Ashby — from a career-site URL or just a company domain like stripe.com. Track changes between runs and receive only new, updated and closed jobs. No browser, no login, no proxies.

What you can do

  • Scrape jobs from any Workday, Greenhouse, Lever or Ashby career site into one normalized schema.
  • Start from a company domain. Give stripe.com and the Actor finds the company's job board and proves it belongs to that domain before using it.
  • Monitor hundreds of companies on a schedule with only_deltas: true and receive only ADDED, UPDATED and REMOVED jobs.
  • Find which ATS a company uses (resolve_only mode) — you pay only for domains that resolve to a verified board.

Who uses it

  • Sales and GTM teams — hiring signals for Clay, HubSpot or Salesforce: which accounts are hiring, for which roles, where.
  • Recruiting and staffing agencies — new openings at target companies the day they appear.
  • Job boards and aggregators — direct-from-employer postings with apply URLs.
  • AI agents — live job data through the Apify MCP server.

Supported career sites

ATSURL formatExample
Workdayhttps://{company}.wd{n}.myworkdayjobs.com/{locale}/{site} or https://wd{n}.myworkdaysite.com/recruiting/{company}/{site}https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite
Greenhousehttps://boards.greenhouse.io/{board} or https://job-boards.greenhouse.io/{board}https://boards.greenhouse.io/stripe
Leverhttps://jobs.lever.co/{company}https://jobs.lever.co/spotify
Ashbyhttps://jobs.ashbyhq.com/{company}https://jobs.ashbyhq.com/ramp

Finding the URL. Open the company's careers page and click any job. If the address uses one of the hosts above, copy it up to the board or site name. Greenhouse boards embedded in a company page (?for={board}) also work.

Don't know the URL? Put the company domain in domains. The Actor finds the job board and proves it belongs to that domain before using it.

Input

FieldExampleNotes
targets["https://boards.greenhouse.io/stripe", "https://jobs.ashbyhq.com/ramp"]Career-site URLs. A bare board token such as stripe works only with provider set
providerautoATS of the targets; auto detects it from the URL
portal_urlhttps://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSiteOne URL or one company domain
domains["stripe.com", "linear.app"]Company domains, resolved to their job boards
modeextract or resolve_onlyresolve_only returns the job board for each domain, without jobs
only_deltastrueOnly jobs added, updated or removed since the previous run
max_jobs100Maximum jobs per company (1–500)
include_detailstrueFull descriptions and salary extraction
full_scantrueReads every job on the site (up to 5,000) in summary mode, without descriptions. Needed to detect closed jobs on large sites
datasetIdReads domains or career URLs from another Actor's dataset (filled automatically in Apify integrations)

Monitor a list of career sites daily

{
"targets": ["https://boards.greenhouse.io/stripe", "https://jobs.lever.co/spotify", "https://jobs.ashbyhq.com/ramp"],
"only_deltas": true,
"full_scan": true
}

The first run returns every current job as ADDED; later runs return only new, edited and closed jobs.

Start from company domains

{ "domains": ["stripe.com", "ramp.com", "linear.app"], "only_deltas": true }

Only find each company's ATS

{ "mode": "resolve_only", "domains": ["stripe.com", "ramp.com", "notion.so"] }

Output

Job (one item per job). Real item from a run on 16 October 2026; locations (13 entries) and description_html are shortened here:

{
"source_system": "workday_cxs",
"company_tenant": "nvidia",
"site_id": "NVIDIAExternalCareerSite",
"requisition_id": "JR1999579",
"title": "Senior HPC Architect, Automation and At-Scale Deployment",
"url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-HPC-Architect_JR1999579",
"locations": ["US, CA, Santa Clara", "US, TX, Remote", "US, CO, Remote"],
"posted_date": "2026-10-15",
"employment_type": "Full time",
"remote_type": null,
"compensation_raw": "184,000 USD - 287,500 USD",
"description_html": "<p>NVIDIA has continuously reinvented itself over two decades. …</p>",
"delta_status": "ADDED",
"summary_hash": "ec90f0b7cd647ca6",
"detail_hash": "2f3177f5f974d75c",
"scraped_at": "2026-10-16T04:50:18.026337+00:00"
}

source_system is workday_cxs, greenhouse, lever or ashby. compensation_raw is filled only when the posting publishes a salary; remote_type only when the ATS provides it. summary_hash and detail_hash fingerprint each posting for change tracking.

Company (resolve_only mode, one item per domain). Real item from the same day:

{
"domain": "stripe.com",
"status": "RESOLVED",
"boards": [{
"board_key": "greenhouse:stripe",
"provider": "greenhouse",
"portal_url": "https://boards.greenhouse.io/stripe",
"open_jobs": 725,
"confidence": 0.96,
"ownership_evidence": { "kind": "reverse_ats_payload_etld1_match", "matched_domain": "stripe.com", "evidence_score": 15 }
}]
}
statusMeaningCharged
RESOLVEDA job board was found and proven to belong to the domainYes
NOT_FOUNDNo supported job board found for the domainNo
BLOCKEDThe company website blocked automated accessNo
AMBIGUOUSMore than 3 candidate boards; nothing is guessedNo
INVALID_DOMAINThe input is not a valid domainNo

How ownership is proven. A board is reported only when the company's own careers page links to it, or when the board's own job data references the company's registrable domain (for example ramp.com never matches liveramp.com). A board that only shares a name with the company is never reported.

Change tracking

delta_statusMeaning
ADDEDNew job since the previous run
UPDATEDTitle, description or compensation changed
REMOVEDJob no longer listed. Reported only after a complete, consistent read of the site; if a site suddenly lists zero jobs, removal waits for a second run to confirm
EXISTINGUnchanged; skipped when only_deltas is true

Tracking state is stored per company in a named key-value store in your own Apify account, so parallel runs on different companies never overwrite each other.

Pricing

Pay per event. No subscription.

EventPriceWhen it is charged
Actor start$0.001Once per run
Job listing$0.0012 ($1.20 per 1,000)Per job delivered. With only_deltas, only added, updated or removed jobs
Company resolved$0.002 ($2 per 1,000)resolve_only mode, only for domains with a verified board. Unresolved domains are free

In extract mode, resolving domains is free; you pay only for the jobs you receive.

Examples

  • 1,000 domains in resolve_only, 700 resolved: 700 × $0.002 + $0.001 = $1.40.
  • 50 companies monitored daily with only_deltas (about 25 changes a day): about $0.03 per day.

Integrations

  • Clay — add a column with Run Apify Actor, or an HTTP API column calling https://api.apify.com/v2/acts/ginugokz~ats-zero-browser-gateway/run-sync-get-dataset-items.
  • n8n, Make, Zapier — use the Apify app. A ready-made n8n workflow is in the GitHub repository.
  • Chain after any Actor — add this Actor in another Actor's Integrations tab. It reads the domain, website or career-URL fields from that run's dataset automatically.
  • AI agents (MCP) — https://mcp.apify.com/?tools=ginugokz/ats-zero-browser-gateway.

Limits

  • Supported: Workday (myworkdayjobs.com, myworkdaysite.com), Greenhouse, Lever, Ashby.
  • Not supported: SmartRecruiters (its robots.txt disallows automated access), iCIMS, Taleo, SuccessFactors and in-house career sites.
  • Domain resolution works best for technology companies. If a careers page renders its job list with JavaScript and the board name differs from the domain, the domain may return NOT_FOUND.
  • Workday exposes at most 2,000 jobs per career site. On sites at that limit, REMOVED is not reported, so a job is never marked closed by mistake.

FAQ

Is this legal? It reads the public job-board endpoints that the companies' own career pages use. No login is used. It returns job postings, not personal profiles, and removes recruiter emails and phone numbers from descriptions.

Do I need proxies? No.

How fresh is the data? Live: every run reads the career site at that moment.

Changelog

  • 3.7 — Company-domain resolution with ownership proof; resolve_only mode; per-company tracking state; Workday 2,000-job guard; reads domains from upstream datasets in integrations; SmartRecruiters removed.
  • 3.6 — Workday, Greenhouse, Lever and Ashby extraction with change tracking.