Workday API: public job postings from every tenant in 2026
Skip Workday's enterprise SOAP API. Pull public job postings from every Workday tenant through one REST endpoint - same JSON shape as Greenhouse, Lever, and 30+ ATSs.
Dvir Atias
Founder, JobsPipe
Search for “Workday API” and most of the results are about Workday’s official integration platform - SOAP endpoints, OAuth2 grants, and tenant-side access that you can’t get unless your company is already a Workday customer. If you’re a developer trying to pull job postings from Workday tenants (Stripe, Salesforce, Adobe, every Fortune 500), that’s the wrong API to be looking at.
This post explains what the official Workday API actually offers, why it doesn’t solve the job-data problem, and the two practical ways to access public Workday job postings at scale in 2026.
The official Workday API: what it is, and isn’t
Workday exposes a REST + SOAP API to tenant customers - the companies who pay for Workday HCM. If you work at Stripe and you want to integrate Stripe’s Workday with Slack, you can get OAuth2 credentials and call /ccx/api/v1/workers all day. If you do not work at Stripe and you want Stripe’s public job postings, that API isn’t available to you at any price.
Most of the 1,000+ monthly searches for “Workday API” fall into the second bucket: external developers building sourcing tools, compensation benchmarks, AI recruiters, or job-search products who need public Workday data.
Option 1: hit the tenant CXS feeds directly - the full contract
Every public Workday career site is rendered from an undocumented but stable JSON endpoint, the same one the site’s own frontend calls. The shape is:
POST https://{host}/wday/cxs/{tenant}/{site}/jobs
Content-Type: application/json
{ "appliedFacets": {}, "limit": 20, "offset": 0, "searchText": "" }The three values come from the company’s careers URL, not from any directory. From nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite: host nvidia.wd5.myworkdayjobs.com, tenant nvidia, site NVIDIAExternalCareerSite. The datacenter segment (wd1, wd3, wd5, wd103...) and the site name are per-customer choices you cannot guess - open the careers page with devtools filtered to cxs and copy the POST URL verbatim.
The response gives you total plus a jobPostings array of title, externalPath, locationsText, and postedOn. Descriptions need a second request per job: GET https://{host}/wday/cxs/{tenant}/{site}{externalPath} returns jobPostingInfo with jobDescription (HTML), location, and startDate. The public job URL is https://{host}/en-US/{site}{externalPath}.
The gotchas that will actually bite you:
limitsilently caps at 20. Ask for 100 and Workday returns an emptyjobPostingsarray with no error - which reads exactly like “no more results.” Keep limit at 20 and page withoffsetuntiloffset >= total.- Akamai bot management. Sustained fetching from one IP gets throttled mid-pagination. If you break on the first failed page you’ll silently store a truncated list - retry with backoff, and abort the whole tenant rather than committing a partial crawl.
- 10,000-result hard cap per query on the biggest tenants - slice by location or category facets to enumerate everything.
- No closed signal. The feed only contains open roles; diff snapshots to detect closes, and treat a whole board going empty as “unknown,” not as mass closure.
- Tenant discovery is the real problem. There is no public directory of Workday customers; building and maintaining the tenant list is its own permanent background job.
For 1-2 specific companies, the direct route is genuinely fine - copy the URL from devtools and you’re done in an hour. At tens or hundreds of tenants, the discovery, throttling, and diffing work adds up to an ongoing engineering project.
Option 2: use a normalized Workday Jobs API
JobsPipe ships a single REST endpoint that returns Workday job postings from any indexed tenant - same JSON schema as Indeed, Greenhouse, Lever, and every other source. You don’t need to know the tenant URL; you query by company name across 45,000+ live Workday postings from the verified tenant set:
curl https://api.jobspipe.dev/v1/jobs/search \
-H "Authorization: Bearer jp_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "company_name_partial_match_or": ["Stripe"], "limit": 25 }'Response is normalized: title, company, location, parsed compensation, the original apply_url pointing back at the tenant, and a stable id that doesn’t change between crawls.
Pricing reality check
We have a free tier with monthly credits, then $49/mo for 25,000 jobs credits. Building the equivalent in-house costs roughly $4,200/mo in compute alone (we wrote about that here), plus an engineer’s time on the regular Workday UI changes. Most teams break even on JobsPipe inside the first month.
Start pulling Workday jobs in 30 seconds - free tier included.
Get a free API keySkip the scraper - try the API right now
Live, normalized postings from 30+ ATS feeds and job boards in one JSON schema. No key, no signup - this sandbox returns sample data in the exact live shape.
Press Test search to see normalized job records rendered here, and the raw JSON on the right.
POST /v1/sandbox/jobs/search{
"job_title_or": [
"software engineer"
],
"limit": 3,
"remote": true
}Advanced: edit the raw request, or copy it as curl
curl -X POST https://api.jobspipe.dev/v1/sandbox/jobs/search \
-H "Content-Type: application/json" \
-d '{"job_title_or":["software engineer"],"remote":true,"limit":5}'For live results, get a free key (1,000 jobs/month) and swap /v1/sandbox/jobs/search for /v1/jobs/search with an Authorization: Bearer header - request and response shapes are identical.
Frequently Asked Questions
Does Workday have a public API for job postings?
Workday's official REST and SOAP API is available only to tenant customers, not to outside developers who want job postings. If your company pays for Workday HCM you can get OAuth2 credentials and call endpoints like /ccx/api/v1/workers. If you do not work there, that API is not available to you at any price. Public job postings are a separate path: the tenant JSON feeds, or a normalized third-party API.
How do I pull job postings from a Workday tenant?
Every public Workday tenant exposes a JSON feed at a predictable URL, in the shape company.wd1.myworkdayjobs.com/wday/cxs/{tenant}/External/jobs. You POST a search filter and get back a paginated list of jobs as structured JSON, so no HTML scraping or browser rendering is needed. The catch is operational: Workday uses Akamai bot management, each tenant has its own URL shape, and job search has a 10,000-result hard cap per query.
How much does it cost to get Workday job data?
JobsPipe has a free tier with monthly credits, then $49 per month for 25,000 jobs. Building the equivalent in-house costs roughly $4,200 per month in compute alone, plus an engineer's time absorbing the regular Workday UI changes. Workday's own tenant API is not sold to outside developers at any price, so the real choice is between a DIY scraper across a tenant list you maintain yourself and a managed source.

