Target (target.wd5), Netflix (netflix.wd108) and Verizon (verizon.wd12) post their jobs on Workday, behind the same JSON search as every *.myworkdayjobs.com careers site:
curl -s -X POST "https://target.wd5.myworkdayjobs.com/wday/cxs/target/targetcareers/jobs" \
-H "Content-Type: application/json" \
-d '{"limit":20,"offset":0,"searchText":"","appliedFacets":{}}' \
| jq '.total, ([.facets[] | select(.facetParameter=="Location_Country") | .values[].count] | add)'
That printed 2000 and 14192: Target's total stops at 2,000 while its own facets count 14,192. That cap, and reading past it by facet, are in the Walmart, Wells Fargo and Bank of America write-up. Five more things to know, measured on 2026-10-27 with a few seconds between requests.
1. The data centre is part of the address, and it changes
wd5 and wd108 are data centres, and tenants move between them. The old address does not redirect; it answers 422 with an empty message:
for dc in wd1 wd5 wd108; do
printf "%s " $dc
curl -s -o /dev/null -w "%{http_code}\n" -X POST \
"https://netflix.$dc.myworkdayjobs.com/wday/cxs/netflix/Netflix/jobs" \
-H "Content-Type: application/json" -d '{"limit":1,"offset":0,"searchText":"","appliedFacets":{}}'
sleep 3
done
That printed 422, 422 and 200. Verizon answers on wd12 and 422 on wd5. Cracker Barrel's address in our own list, on wd5, answered 422 that day; the tenant is on wd503 now. The codes tell you where you stand: 422 means the tenant is not on that data centre, 404 means it is and the site name is wrong, 200 means found.
2. Facet names belong to the tenant
Walmart nests locationCountry under locationMainGroup. Target's facets sit at the top level and are called Location_Country and Location_Region_State_Province, so code that looks for Walmart's names finds nothing on Target and reads its 2,000. Slicing by state does not finish the job either: California alone held 2,135, so that slice needs a second facet. Not jobFamilyGroup, where "Stores" held 2,098 of California's jobs; workerSubType split it into 1,535 regular, 582 seasonal and 18 interns.
3. bulletFields[0] is not the job ID
On NVIDIA's site the first bullet is the requisition number (19 of the first 20), and it is tempting to key on it. Thales prints the employment type there, Michaels a US state:
curl -s -X POST "https://thales.wd3.myworkdayjobs.com/wday/cxs/thales/Careers/jobs" \
-H "Content-Type: application/json" \
-d '{"limit":20,"offset":0,"searchText":"","appliedFacets":{}}' \
| jq -r '.jobPostings[] | "\(.bulletFields[0]) \(.externalPath | split("_") | last)"' | head -5
16 of Thales's first 20 said "Regular Employee". The requisition is the end of externalPath, after the last underscore. In September our own reader keyed on the bullet and merged 61,107 stored Workday jobs into 16,314.
4. postedOn is a phrase, the date is one GET away
The list says "Posted Today", "Posted 3 Days Ago" or "Posted 30+ Days Ago", and the last one has no upper bound. On Target's page at offset 1,980 all 20 said "Posted 30+ Days Ago". The job's own record has the date:
BASE="https://target.wd5.myworkdayjobs.com/wday/cxs/target/targetcareers"
JOB=$(curl -s -X POST "$BASE/jobs" -H "Content-Type: application/json" \
-d '{"limit":1,"offset":1980,"searchText":"","appliedFacets":{}}' | jq -r '.jobPostings[0].externalPath')
curl -s "$BASE$JOB" | jq '.jobPostingInfo | {postedOn, startDate, jobReqId}'
That one was "Posted 30+ Days Ago" with startDate 2026-09-23. The same record carries the full description, about 20 KB of HTML for that Target job.
5. limit is 20, and 21 is an error
curl -s -o /dev/null -w "%{http_code}\n" -X POST \
"https://target.wd5.myworkdayjobs.com/wday/cxs/target/targetcareers/jobs" \
-H "Content-Type: application/json" -d '{"limit":21,"offset":0,"searchText":"","appliedFacets":{}}'
That printed 400, with an empty message, as did 50. A 2,000-job slice is 100 requests.
Hosted
Workday Jobs Scraper on Apify takes Target, Netflix, Verizon or Cracker Barrel by name and asks the other data centres when an address answers 422: Cracker Barrel's rows came back linking to wd503. It splits a site past 2,000 by whatever facets the tenant names, a second facet where one value is too big (the nightly read on 2026-10-27 held 14,185 Target jobs), keys rows on the requisition, and with includeDescription dates each job from its startDate. Every other system's public endpoint, with a tested curl, is in job-board-apis.
Top comments (0)