Workday Jobs — Any Employer's Careers Site, One Schema avatar

Workday Jobs — Any Employer's Careers Site, One Schema

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Workday Jobs — Any Employer's Careers Site, One Schema

Workday Jobs — Any Employer's Careers Site, One Schema

Read any employer's Workday careers site: title, location, requisition ID, posting date and the full description. One keyless schema across thousands of large employers.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

alaudin burki

alaudin burki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share

Read any employer's Workday careers site as flat rows: title, location, requisition ID, posting date and the full description. One keyless schema across thousands of large employers — NVIDIA, Salesforce and the rest.

Why one Actor covers thousands of employers

Workday hosts the careers sites of a large share of big companies, and every one exposes the same two JSON endpoints under /wday/cxs/. Only the tenant and the site name change, so the input is the employer's careers URL and everything else is parsed from it.

{ "employers": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"] }

Real run: 2,000 postings from NVIDIA, 1,563 from Salesforce.

The two things that break a naive version

1. The host cannot be guessed. It is nvidia.wd5.myworkdayjobs.com for one employer and salesforce.wd12.myworkdayjobs.com for another — the wdN number is not derivable from the name. A guessed host returns 404 and an empty dataset. This Actor parses tenant, site and host from the URL you give it, and refuses anything that is not a myworkdayjobs.com address with a typed error.

2. postedOn is prose, not a date. It reads "Posted Today", "Posted 3 Days Ago" or "Posted 30+ Days Ago". Converting that to a timestamp would be a guess, so the raw string is kept and postedDaysAgo is set only when the prose states an exact number — "30+ Days Ago" is null, because 30 is a lower bound, not the number of days.

What you get

FieldExample
employernvidia
titleSenior Software and System Architect
locationFrance, Remote
jobReqIdJR1997578
postedOnPosted Today
descriptionthe full posting text, tags stripped

Details are optional, and their absence is visible

includeDetails fetches the posting page for the description — one extra request per row. If a detail page fails, the posting is not lost: the list row is still emitted with hasDetails: false and a null description. A run that returned nothing because one detail call failed would be the wrong trade.

descriptionChars records the full length before the 4,000-character cap, so a truncated row is visible as truncated rather than looking complete.

Rate limits

Large employers answer 429 under load. Each request is retried up to three times with backoff; a 429 that survives three attempts fails that employer and is reported in SUMMARY.problems, without taking the other employers down.

Use cases

  • Job seekers — every opening at a list of target employers, in one sheet.
  • Recruiters — a competitor's live requisitions, refreshed on a schedule.
  • Market research — hiring by team and location, with the posting text.

Limits

  • 20 postings per page is Workday's own limit; maxPages bounds how deep a run goes.
  • Workday only. Greenhouse (#122), Ashby (#123) and Lever are separate Actors — their APIs differ.
  • Facets are not exposed. The API supports filtering by location and department; this Actor passes only free-text search.
  • Descriptions are capped at 4,000 characters; descriptionChars shows what was cut.

Verified

36 unit tests — URL parsing including the locale segment and the wdN host, the 30+ Days Ago rule, HTML-to-text, the row shape and the request body — plus 26 live checks across NVIDIA and Salesforce: both list endpoints, both detail endpoints, description extraction, a bad tenant failing with a typed error, and pagination actually moving.


One row per posting, flat, with the employer's own words preserved.