PEOPLEDEVELOPER TOOLSAI API MCP READY

Workday Careers API

Every job on any Workday careers site as structured JSON — titles, locations, ISO posted dates, full descriptions, pay ranges, employment type, remote status and direct apply URLs. Works on any myworkdayjobs.com or myworkdaysite.com URL, in any locale, with no proxies and no login.

RECORDS1,736
MEDIAN LAGon demand
PARAMETERS7
TOTAL USERS2
MONTHLY ACTIVE1
TOTAL RUNS38
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-07-31
PUBLISHED2026-07

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
startUrls string[] yes One or more Workday careers site URLs. Every public form works — plain sites, locale variants like /en-US/, and the myworkdaysite.com form.
searchText string no Keyword query passed to the site's own job search, matching titles and descriptions exactly as the search box on the careers page does. Empty returns every job.
maxJobsPerSite integer no 0 Soft cap on jobs returned per start URL. 0 means every job on the site. — drives your bill
includeDetails boolean no true Opens each job's detail record to add the full description, exact ISO posted and end dates, employment type, every location, country and apply URL. Off returns only the fast list fields, at one request per 20 jobs.
descriptionFormat enum no both html keeps the original rich text, text returns clean plain text, both returns each in its own field.
postedAfter string no ISO date cutoff (YYYY-MM-DD). Only jobs posted on or after this date are returned. Requires includeDetails.
detailConcurrency integer no 5 Job-detail requests running in parallel, 1 to 10. List pages are always paced and rate limits are backed off politely; raise this only for very large sites.

Worked examples

Basic — one careers site, every job
{
  "startUrls": [{ "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite" }]
}
Keyword filter — the site's own search, capped for a cheap test run
{
  "startUrls": [{ "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite" }],
  "searchText": "engineer",
  "maxJobsPerSite": 100
}
New postings only — date cutoff, needs the detail record
{
  "startUrls": [{ "url": "https://intel.wd1.myworkdayjobs.com/en-US/External" }],
  "postedAfter": "2026-07-01",
  "includeDetails": true
}
Fast monitoring — list fields only, one request per 20 jobs
{
  "startUrls": [{ "url": "https://adobe.wd5.myworkdayjobs.com/external_experienced" }],
  "includeDetails": false
}
Several sites at once — join the rows on tenant and siteId
{
  "startUrls": [
    { "url": "https://kla.wd1.myworkdayjobs.com/Search" },
    { "url": "https://cadence.wd1.myworkdayjobs.com/External_Careers" }
  ],
  "descriptionFormat": "text"
}
POWER-USER TIP
postedAfter needs the detail record — Exact ISO posted dates live on each job's detail record, not the list page, so a date cutoff only works with includeDetails on. Setting postedAfter in fast list-only mode filters against a date the run never fetched.

Coverage

2
URL families — myworkdayjobs.com · myworkdaysite.com
32
fields per job — ids locations dates salary description remote type +
2
description formats — html · plain text

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~workday-careers-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"}],"searchText":"engineer","maxJobsPerSite":100}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/workday-careers-api").call(
    run_input={
        "startUrls": [{"url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"}],
        "maxJobsPerSite": 100,
    }
)
for job in client.dataset(run.default_dataset_id).iterate_items():
    print(job.get("title"), "-", job.get("primaryLocation"), job.get("salaryText"))

What people use it for

Alternatives