NVIDIA, CVS Health, Wells Fargo, Northrop Grumman and thousands of other large employers post their jobs on Workday. You know these sites by the address: something.wd5.myworkdayjobs.com/SomeCareerSite.

The page itself is a JavaScript app, so fetching its HTML gives you almost nothing. But the app loads every job from a small JSON API, and that API is public: no login, no key, no cookies. It is the same request your browser makes when you open the site. This post shows how to use it, and the four gotchas that will silently cost you jobs if you do not know about them.

1. Read the three parts from the URL

Open the company's careers page, click any job, and look at the address:

https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/... ^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ tenant data center site 
  • tenant: the company's code, nvidia
  • data center: wd1, wd3, wd5, wd12 and so on
  • site: the career site name, NVIDIAExternalCareerSite. Skip the language part (en-US) if there is one.

You cannot guess these from the company name. NVIDIA is nvidia.wd5/NVIDIAExternalCareerSite, Northrop Grumman is ngc.wd1/Northrop_Grumman_External_Site, Wells Fargo is wf.wd1/WellsFargoJobs. Many companies also run several sites: one for experienced hires, one for students, one per country.

2. List the jobs

The API lives on the same host, under /wday/cxs/{tenant}/{site}:

curl -s https://nvidia.wd5.myworkdayjobs.com/wday/cxs/nvidia/NVIDIAExternalCareerSite/jobs \ -H 'Content-Type: application/json' \ -d '{"appliedFacets":{},"limit":20,"offset":0,"searchText":"security"}' 

The answer looks like this (shortened):

{ "total": 413, "jobPostings": [ { "title": "Director, Global Event Security", "externalPath": "/job/US-CA-Santa-Clara/Director--Global-Event-Security_JR2023116", "locationsText": "US, CA, Santa Clara", "postedOn": "Posted 30+ Days Ago", "bulletFields": ["JR2023116"] } ], "facets": [ ... ] } 

searchText is Workday's own keyword search. Leave it empty to get everything. Page through with offset in steps of 20.

3. The four gotchas

Pages hold at most 20 jobs. Ask for "limit": 50 and you get HTTP 400. Twenty is the maximum.

total often comes only with the first page. On many sites later pages report 0, so read it from offset: 0 and keep it.

Many sites return at most 2,000 jobs per search, and they do not tell you. Past offset 2,000 they quietly send the first page again. A loop that stops on an empty page will never stop, and a loop that counts pages will collect the same 20 jobs over and over. These sites also report total: 2000 when they have more: NVIDIA reports 2,000 and has 2,692. Other sites have no such limit. CVS Health reports its real total, about 18,000, and pages through all of it. One request at offset 2,000 tells you which kind you have: if it repeats the first page, the site is capped.

Dates are relative. The list says "Posted Today" or "Posted 30+ Days Ago". The exact date is only in the job details (next section).

Getting past 2,000 on capped sites

The answer also carries facets: the site's own filters with a job count for each value, such as job family, worker type, time type and location. Pick a facet where every value has fewer than 2,000 jobs, run one search per value, and merge the results by externalPath:

{"appliedFacets": {"jobFamilyGroup": ["<id from facets>"]}, "limit": 20, "offset": 0, "searchText": ""} 

On very large capped sites one facet is not enough, because even the biggest slice is over 2,000. Then you nest filters: split that slice again by location or worker type.

4. Job details

Each job's externalPath gives you the full posting:

curl -s https://nvidia.wd5.myworkdayjobs.com/wday/cxs/nvidia/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Director--Global-Event-Security_JR2023116 

Look inside jobPostingInfo:

Field What it is
jobDescription Full description as HTML
startDate Exact posting date
location, additionalLocations Every location of the job, not just "2 Locations"
timeType Full time or part time
remoteType Remote, hybrid or on-site, when the company sets it
jobReqId Requisition ID
externalUrl Link candidates use to apply

There is no salary field. US employers publish pay ranges inside the description, in formats like $100,000.00 - $179,000.00, 232,000 USD – 368,000 USD or USD 120,000 - 150,000, so you parse them from the text.

5. The whole thing in one script

About 90 lines of Python, standard library only. It reads the site from a URL, pages through the search, checks whether the site is capped, splits capped sites by one facet, and prints the first few jobs with details:

python workday_jobs_example.py https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite # 2692 jobs # Senior QA Engineer, System Product Engineering | Israel, Yokneam | 2026-11-15 | https://nvidia.wd5.myworkdayjobs.com/... 

The script is on GitHub: github.com/johnkaa/workday-jobs-api.

6. Where to find Workday sites

There is no public list of companies that use Workday. You can build one from the Common Crawl URL index: search it for *.myworkdayjobs.com, collect the tenant and site pairs, and check each one with a single /jobs request. That is how I put together a list of more than 3,000 live career sites. The 500 biggest are in the same repository.

Be a good guest

This is public data that companies publish for anyone to read, but it is still somebody's server. Keep a few requests in flight at most, cache what you can, and do not fetch descriptions you do not need.

If you would rather not maintain this

I packaged all of the above as Workday Jobs Scraper on Apify. You paste a career site URL or type a company name, or you search one keyword across all 3,000+ sites at once. It handles both kinds of big sites: NVIDIA returns all 2,692 jobs through nested filters, CVS Health all 18,047 by paging straight through. It also parses salaries, filters by location, remote type and posting date, and can return only jobs that are new since the last run. It costs $1.00 per 1,000 jobs. Apify's free plan includes $5 of usage every month, enough for about 5,000 jobs.

If you also need Greenhouse, Lever, Ashby, SmartRecruiters and other job boards in the same format, Career Site Jobs Scraper covers nine of them.