Workday Jobs API - Careers Site Scraper & Hiring Feed avatar

Workday Jobs API - Careers Site Scraper & Hiring Feed

Pricing

Pay per event

Go to Apify Store
Workday Jobs API - Careers Site Scraper & Hiring Feed

Workday Jobs API - Careers Site Scraper & Hiring Feed

Every open role on any Workday careers site as structured JSON or CSV, at $1.50 per 1,000 jobs. Paste the careers URL. Title, location, country, employment type, remote type, posted date and apply link. Change detection between runs and a white-label hiring report included.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Howth Technology Factory

Howth Technology Factory

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Workday Jobs API + Report

Every open role on any Workday careers site, as clean structured data. Paste the careers URL.

Unofficial. Not affiliated with or endorsed by Workday.


What it does

Reads the public Workday careers feed and returns one row per open role: title, location, country with its ISO code, employment type, remote type, the real posted date and the apply link. It de-duplicates, flags likely reposts without deleting them, tells you what changed since your last run, and can produce a white-label hiring report in HTML and PDF.

Workday is the largest enterprise applicant-tracking system, so this is the listing that covers big employers the smaller ATS platforms never see.

Who it's for

  • Recruiters and sourcers tracking large enterprise employers.
  • Market researchers measuring hiring at scale — a single tenant here can carry thousands of open roles.
  • AI agents needing enterprise roles as structured JSON — see the MCP block below.

You need the careers URL, not the company name

Unlike the other listings in this family, a company name alone cannot work here. A Workday board is a triple — tenant, datacentre and site — and only the first is derivable:

https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
^tenant ^datacentre ^site name

The datacentre is one of at least wd1, wd3, wd5, wd10, wd12, and the site name is arbitrary text the employer chose — NVIDIAExternalCareerSite, Jobs, External_Career_Site. Guessing it would just produce wrong answers, so a bare company name is refused with a message explaining exactly this rather than quietly returning nothing.

Sample output

From a real run, 2026-08-01: 100 roles in 52 seconds, 105 HTTP requests, no retries and no errors.

{
"source": "workday",
"board": "redhat|wd5|Jobs",
"company": "redhat",
"title": "Principal Forward Deployed Engineer - AI Platform",
"location": "Singapore",
"country": "SG",
"isRemote": false,
"workplaceType": "onsite",
"employmentType": "full-time",
"postedAt": "2026-08-01",
"applyUrl": "https://redhat.wd5.myworkdayjobs.com/Jobs/job/Singapore/...",
"description": null
}

What Workday actually publishes

Measured on those same 100 roles.

FieldCoverage
title, company, location, country, workplaceType, postedAt, applyUrl100 / 100always present
employmentType97 / 100
department, team, seniority, salary, updatedAt0 / 100not published by Workday

Two requests per role, and a 100-role cap

Workday's list response carries only a title, a path, a location string and a relative recency — Posted Today, Posted 30+ Days Ago. That is not a date, and converting it into one would be guessing, which this product does not do. The real posted date, the employment type, the country code and the remote type all live on a per-role detail endpoint.

So each role costs a second request, and a board is bounded at 100 roles per run. When a tenant has more, the run returns the newest 100 and says so in the result rather than silently truncating. Narrow with the title, location and date filters, or run one site at a time.

The list page size is fixed at 20 by the platform — limit=50 and limit=100 both return HTTP 400.

The three rules this product is built on

  1. Job descriptions belong to the employer. includeDescription is off by default.
  2. No personal data, ever. No recruiter names, no hiring-manager contacts, no emails, no phone numbers. There is nowhere in this schema to put one, and a test fails the build if a personal-data field appears.
  3. Unofficial, reading a public feed. No key, no login, no browser automation, no anti-bot circumvention. A live tenant's robots.txt expressly allows the careers-site path. Not affiliated with or endorsed by Workday.

Pricing

EventPrice
Actor start$0.00005
Job returned$0.0015

$1.50 per 1,000 jobs, charged on the final de-duplicated set. A board that could not be read returns nothing and is not charged. The 25-job run used for the platform check cost $0.04.

Monitoring

Set onlyNewSinceLastRun and schedule it. The first run on each board stores a baseline and returns everything — nothing is reported as a change, because everything being new the first time is not news. Add a webhookUrl for a JSON summary when anything moves.

FAQ

Do I need a Workday API key? No. This reads the public careers feed.

Why won't a company name work? See above — the datacentre and site name cannot be derived. Paste the careers URL.

Why only 100 roles per company? Because a usable record costs a second request per role. The bound is stated in the result, not hidden.

Why is department always empty? Because Workday's public feed does not publish it. Left null rather than guessed.

Why is postedAt a real date when the site says "Posted Today"? Because the date comes from the detail endpoint. The relative phrase is never converted.

Is it stable? Checked across nine unrelated tenants; every correctly-formed triple answered 200. The failures were wrong site names in the test, not the API.

MCP — for AI agents

{ "mcpServers": { "jobs": { "url": "https://jobs-api.mcpize.run" } } }

search_jobs $0.01 · get_company_jobs $0.01 · monitor_jobs $0.02 · generate_report $0.10


Unofficial. Not affiliated with or endorsed by Workday. Job adverts are the property of the employers who published them.