Public Signal Data / Actors / ATS Job Board Scraper

Hiring signals

ATS Job Scraper API — Workday, Greenhouse, Lever, Ashby

The ATS Job Board Scraper is an API that collects structured job postings across Workday, Greenhouse, Lever and Ashby from a plain list of company names, in one normalized schema — and in delta mode returns only what changed since the last run: which companies opened new roles and which postings quietly disappeared.

Capabilities

What it does

Workday is first-class, not an afterthought

Most job scrapers stop at Greenhouse and Lever because they have friendly APIs. Workday hosts most Fortune 500 careers sites, and this actor speaks its native wday/cxs JSON protocol: automatic tenant discovery from a bare company name, full pagination, relative-date normalization.

Delta mode = hiring signals

The actor fingerprints every run in a key-value store; the next delta run emits only change: “new” and change: “removed” postings. Scheduled daily against a prospect list, that diff is the signal recruiters, sales teams and investors actually pay for.

One schema across all four ATS systems

Company, title, department, location, remote flag, employment type, posted/updated dates, apply URL — identical fields whether the source was Workday or Ashby. No per-ATS parsing on your side, ever.

Graceful discovery

Plain names are auto-discovered on every enabled source; companies that can't be found are logged and skipped — never a crashed run.

sample output — one dataset record
{
  "company": "nvidia",
  "source": "workday",
  "job_id": "JR2018037",
  "title": "Senior Systems Software Engineer",
  "department": "Engineering",
  "location": "US, CA, Santa Clara",
  "remote": false,
  "employment_type": "Full time",
  "posted_at": "2026-07-28",
  "change": "new",
  "url": "https://nvidia.wd5.myworkdayjobs.com/..."
}
input
{
  "companies": ["stripe", "nvidia", "lever:palantir",
                "https://jobs.ashbyhq.com/openai"],
  "keywords": ["engineer", "data"],
  "locations": ["Remote", "New York"],
  "mode": "delta"
}

Bare names are auto-discovered per ATS (nvidia → nvidia.wd5.myworkdayjobs.com). Prefixes and full board URLs pin a source.

Playbook

How people use it

Sales trigger events

A company opening five data-engineering roles is about to buy data infrastructure. Run delta mode daily over your prospect list and route new postings by department into your CRM as timed outreach triggers.

Recruiting intelligence

Track which competitors are hiring for what, where — and which searches quietly closed. Removed postings are as informative as new ones.

Investment research

Hiring velocity by department is an alternative-data signal for private and public companies alike. A normalized daily feed across four ATS systems makes it measurable.

Job boards and aggregators

Seed a niche job board from the source ATS systems with one schema, instead of maintaining four scrapers.

Integration

Call it from your stack

Synchronous REST, official clients, schedules with webhooks — or expose it directly to an AI agent through the Apify MCP server. More patterns on the integrations page.

run synchronously, get dataset items back
curl -X POST \
  "https://api.apify.com/v2/acts/splendorous_astrolabe_xs9~ats-jobs-workday/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "companies": ["stripe", "nvidia", "lever:palantir",
                "https://jobs.ashbyhq.com/openai"],
  "keywords": ["engineer", "data"],
  "locations": ["Remote", "New York"],
  "mode": "delta"
}'
pip install apify-client
from apify_client import ApifyClient

client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("splendorous_astrolabe_xs9/ats-jobs-workday").call(
    run_input={
  "companies": ["stripe", "nvidia", "lever:palantir",
                "https://jobs.ashbyhq.com/openai"],
  "keywords": ["engineer", "data"],
  "locations": ["Remote", "New York"],
  "mode": "delta"
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
any MCP client (Claude, Cursor, ChatGPT, …)
{
  "mcpServers": {
    "public-signal": {
      "url": "https://mcp.apify.com/?actors=splendorous_astrolabe_xs9/ats-jobs-workday",
      "headers": {
        "Authorization": "Bearer <APIFY_TOKEN>"
      }
    }
  }
}

Pricing

Pay per result, not per seat

Billed through your Apify account's usage credit. The free plan includes $5 of usage every month — no card needed to try it.

Billable eventPriceCharged
Job posting$0.0015per result row in the dataset

A full sweep returning 1,000 postings costs $1.50; a daily delta run emitting 40 changes costs $0.06.

Questions

Frequently asked

Which ATS platforms are supported?

Workday, Greenhouse, Lever and Ashby — one actor, one normalized schema. Workday support is native (wday/cxs protocol), including tenant auto-discovery and full pagination.

How does delta mode work?

Each run persists a fingerprint of every posting. The next delta run compares against it and emits only records with change: “new” or change: “removed” — you pay only for the diff, not the whole board.

Can I filter to remote roles or keywords?

Yes — keywords, locations and a remoteOnly flag are built in, applied before rows are billed.

Do I need the board URL for each company?

No. Plain company names are auto-discovered on every enabled source; URLs or source prefixes (lever:palantir) are only needed to pin ambiguous cases.

Related

Pairs well with

Lead generation$0.004

New Business Filings

Fresh LLC and corporation registrations from official state portals, normalized and cleaned of formation-mill noise. Day-one B2B leads.

Lead generation$0.003

GovCon Monitor

SAM.gov opportunities, fresh awards, and the money mode: expiring federal contracts 6–12 months before the recompete RFP drops.

Try ATS Job Board Scraper now

A full sweep returning 1,000 postings costs $1.50; a daily delta run emitting 40 changes costs $0.06.

Run on Apify ↗