Workday Scraper — Jobs from 3,600+ Employers' Career Sites
Pricing
from $1.30 / 1,000 results
Workday Scraper — Jobs from 3,600+ Employers' Career Sites
Scrape Workday career sites (myworkdayjobs.com): full job descriptions, exact posting dates, requisition IDs, locations, country, remote and time type, job category and pay ranges. Built-in directory of 6,100+ verified employer career sites. No login. Not affiliated with Workday.
Pricing
from $1.30 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Workday Scraper
Workday Scraper exports job postings from Workday career sites — every *.myworkdayjobs.com and *.myworkdaysite.com jobs page — to CSV, Excel, JSON, XML or an API, with no login, no cookies and no browser. If you were looking for a Workday jobs scraper, a Workday careers API, a myworkdayjobs.com scraper or a Workday API alternative for job postings, this Actor reads the same JSON data a Workday career site loads in your browser and returns full job descriptions, exact posting dates, requisition IDs, every location, country, remote type, time type, job category and the pay range written in the posting.
It comes with a built-in directory of 6,123 verified Workday career sites from 3,694 employers — Accenture, Walmart, Target, CVS Health, NVIDIA, Salesforce, Bank of America, PwC, Lowe's, Citi, Boeing, Intel, Adobe and thousands more — so you can pick employers by name, paste any Workday career-site URL, or search every employer at once ("all data engineer jobs in Germany on Workday"). Use it for job aggregation, recruiting and sourcing, hiring-signal lead generation, salary benchmarking from pay-transparency ranges, labour-market analytics and AI / RAG datasets of job descriptions.
Measured on 2026-10-15 on the Apify platform: 1,000 jobs with full details in 21 s · 30,000 jobs from 291 employers in 108 countries in one 9-minute run, 0 duplicates · all 33,942 postings of Accenture's career site in 74 s · Workday's 2,000-results-per-search cap lifted automatically · pay per result · no login · no cookies.
What you get
| Field group | Columns | Notes |
|---|---|---|
| Job | title, jobReqId, jobUrl, applyUrl, workdayJobId | Requisition ID as the employer writes it (JR2027699, R-292670, 26020274) |
| Employer | company, hiringEntity, workdayTenant, careerSite, careerSiteUrl | Clean employer name from the directory; legal hiring entity from the posting |
| Location | location, additionalLocations, locationsCount, country, countryCode | Every location of multi-location postings; ISO country code |
| Work model | remoteType, isRemote, timeType | Workday's own remote / hybrid / on-site value when the employer sets it |
| Classification | jobCategory | The career site's job category / job family (Engineering, Nursing, Sales, …) |
| Dates | postedDate, postedOnText, daysSincePosted, applicationDeadline | Exact posting date (YYYY-MM-DD), not just "30+ days ago" |
| Pay | salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod | Read from the posting only when an explicit amount or range is written next to a pay word |
| Content | description (clean text) and/or descriptionHtml | Full description, paragraphs and bullet points kept |
| Run info | searchKeyword, detailsIncluded, scrapedAt, workdayDataCenter | Which keyword found the job, when it was read |
Values that a posting does not state stay null — never a made-up 0, never a guess.
Use cases
Job aggregation and job boards
Workday powers the careers pages of a large share of the Fortune 500 and thousands of mid-size employers, and those jobs are often not on LinkedIn or Indeed in full. Pull every posting from hundreds or thousands of Workday employers on a schedule, de-duplicated by workdayJobId, with the exact postedDate for freshness and the applyUrl that sends candidates straight to the employer's application.
Recruiting, staffing and sourcing
See which employers are hiring for a skill, in which cities, and how fast: filter by keywords, countries, location words and posted within N days. Staffing agencies use the jobReqId, hiring entity and location to pitch candidates to the right hiring team before the role reaches job boards.
Hiring-signal lead generation (B2B sales)
A company opening 40 data-engineering roles, a new office or a new country is a buying signal. Export jobs by employer with jobCategory, country and postedDate, count openings per company per week, and feed the result to your CRM. The company, careerSiteUrl and hiringEntity columns identify the account.
Salary benchmarking
Pay-transparency laws (California, Colorado, New York, Washington and more) mean many Workday postings now include a pay range. The Actor turns "The base salary range is 144,000 USD - 230,000 USD" into salaryMin: 144000, salaryMax: 230000, salaryCurrency: "USD", salaryPeriod: "YEAR" — ready for benchmarking by title, category and location.
Labour-market and HR analytics
Track open roles per employer, function and country over time; measure remote vs hybrid vs on-site; compare how long postings stay open (postedDate vs today, applicationDeadline). The built-in directory gives you a ready-made panel of 3,694 employers.
AI, LLM and RAG datasets
Clean plain-text job descriptions with structured metadata are ideal for training classifiers, building skill taxonomies, job-matching models and retrieval-augmented assistants.
How it works
- Choose what to read — employers by name (looked up in the built-in directory), Workday career-site or job URLs, or every employer in the directory.
- The Actor reads the career site's own JSON API — the
/wday/cxs/…endpoints the public Workday job search page calls — 20 jobs per list page, then each job's detail for the full description, dates, locations and pay. No headless browser, no login, no cookies. - Past the 2,000 limit. Workday answers at most 2,000 jobs per search — asking for result 2,001 silently returns page one again. When a site has more, the Actor splits the search along the site's own facet counts (job category → job type → time type → country → city), which divide the result set, and de-duplicates every posting. Measured: 33,942 of Accenture's ~42,000 postings from one career site (list mode) in a single 74-second run.
- Fast without getting blocked. Workday rate-limits each IP per career site and per platform. The Actor paces every connection below those limits and, for big runs, opens extra Apify Proxy sessions in parallel — so 1,000 detailed jobs take about 20 seconds instead of minutes.
- Moved tenants are found automatically. A company that migrated to another Workday data centre (e.g. Walmart from
wd5towd504) answers 422 on the old address; the Actor tries the other data centres and continues there. - Rows are saved as they arrive, with
searchKeywordandscrapedAt, and the run writes aSUMMARYrecord (career sites read, splits, duplicates skipped, sites that are not public).
Reliability built in: pacing and back-off on rate limits · dead connections replaced at once · exact Max jobs · stops cleanly at the run's time limit or maximum cost and keeps what it has · no matches → succeeds with a clear message; Workday unreachable → fails with the reason.
Freshness: every run reads the career sites live at that moment — no cache, no stale database.
Input
Employers from the built-in directory
{"companies": ["NVIDIA", "Salesforce", "Bank of America"],"maxItems": 1000}
Every Workday career site an employer runs is included (experienced, campus, regional, brand sites). Names are matched case-insensitively, with or without "Inc." / "Corporation", and Workday tenant ids work too (ghr is Bank of America's tenant).
Career-site or job URLs
{"startUrls": ["https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite","https://wd1.myworkdaysite.com/recruiting/snapchat/snap","https://salesforce.wd12.myworkdayjobs.com/External_Career_Site?q=engineer","https://adobe.wd5.myworkdayjobs.com/external_experienced/job/San-Jose/Director-and-Associate-General-Counsel--Corporate-Legal_R171220"],"maxItems": 0}
Any Workday career-site URL works, with or without a locale (/en-US/). Search terms and filters in the URL (q=, locations=, jobFamilyGroup= …) are applied. A job URL returns that one posting. maxItems: 0 reads everything.
Every employer at once — keyword and country search
{"allCompanies": true,"keywords": ["data engineer", "machine learning engineer"],"countries": ["Germany", "Netherlands"],"postedWithinDays": 14,"maxItems": 5000}
Searches all 6,123 career sites in the directory, biggest employers first. Countries are applied with each career site's own country filter where it has one (fast), otherwise from the job's country.
A whole employer, every job
{"companies": ["Accenture"],"maxItems": 0}
Fast list-only export
{"companies": ["Target", "Walmart", "Lowe's"],"includeDetails": false,"maxItems": 20000}
With includeDetails: false the Actor skips the per-job detail request: you get title, requisition ID, URL, location (from the list or the job URL), approximate posting date and job category — about 20× fewer requests.
A sample from many employers
{"allCompanies": true,"maxJobsPerCompany": 50,"maxItems": 10000}
maxJobsPerCompany caps each career site, so one large employer does not fill the whole run.
All input fields
| Field | Type | Default | What it does |
|---|---|---|---|
companies | array | – | Employer names or Workday tenant ids from the built-in directory |
startUrls | array | – | Workday career-site or job URLs |
allCompanies | boolean | false | Search every career site in the directory |
keywords | array | – | Search terms for each site's own search box; each is searched separately |
countries | array | – | Country names or ISO codes ("US", "Germany", "UK") |
locationKeywords | array | – | Keep jobs whose locations contain one of these words ("Austin", "Remote") |
postedWithinDays | integer | 0 | Only jobs posted in the last N days (0 = any) |
remoteOnly | boolean | false | Only remote jobs |
includeDetails | boolean | true | Read each job's detail (description, dates, pay, all locations) |
descriptionFormat | string | "text" | text, html or both |
maxItems | integer | 1000 | Stop after this many jobs (0 = no limit) |
maxJobsPerCompany | integer | 0 | Cap per career site (0 = no cap) |
proxyConfiguration | object | Apify Proxy | Extra connections for speed on big runs; not needed to get data |
Output data dictionary
| Column | Type | Description |
|---|---|---|
title | string | Job title as posted |
company | string | Employer name (from the directory or the career site) |
jobReqId | string | Employer's requisition number |
jobUrl | string | Public Workday job page |
applyUrl | string | Direct link to the application form |
location | string | Primary location as the employer writes it (e.g. US, CA, Santa Clara, California - San Francisco) |
additionalLocations | array | Other locations of the same posting |
locationsCount | number | Number of locations |
country | string | Country of the primary location |
countryCode | string | ISO 3166-1 alpha-2 country code |
remoteType | string | Workday remote type when set: Remote, Hybrid, On-site, Office - Flexible, … |
isRemote | boolean | true remote · false on-site or hybrid · null not stated |
timeType | string | Full time / Part time |
jobCategory | string | The site's job category / job family |
postedDate | string | Posting date YYYY-MM-DD (exact with details, approximate in list-only mode) |
postedOnText | string | Workday's label, e.g. Posted Yesterday, Posted 30+ Days Ago |
daysSincePosted | number | Days since posting |
applicationDeadline | string | Posting end date when the employer sets one |
description | string | Full description as clean text |
descriptionHtml | string | Original HTML (with descriptionFormat html or both) |
salaryText | string | Pay range exactly as written |
salaryMin / salaryMax | number | Lower / upper end of the pay range |
salaryCurrency | string | USD, CAD, GBP, EUR, INR, … |
salaryPeriod | string | HOUR, DAY, WEEK, MONTH, YEAR |
hiringEntity | string | Legal entity hiring for the job (Workday's hiring organization) |
canApply | boolean | Whether the Apply button is shown |
workdayJobId | string | Workday's posting ID (stable — use it to de-duplicate across runs) |
workdayTenant | string | Employer's Workday tenant id |
careerSite | string | Career-site id |
careerSiteUrl | string | Career site the job was read from |
workdayDataCenter | string | wd1, wd5, wd12, wd103, wd501, … |
searchKeyword | string | Keyword that found the job |
detailsIncluded | boolean | Whether the job detail was read |
scrapedAt | string | ISO timestamp |
Output example (real row from a test run, description shortened)
{"title": "Senior Technical Program Manager, Trust & Infrastructure","company": "Salesforce","jobReqId": "JR363488","jobUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site/job/California---San-Francisco/Senior-Technical-Program-Manager--Trust---Infrastructure_JR363488-1","applyUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site/job/California---San-Francisco/Senior-Technical-Program-Manager--Trust---Infrastructure_JR363488-1/apply","location": "California - San Francisco","additionalLocations": ["Washington - Seattle"],"locationsCount": 2,"country": "United States of America","countryCode": "US","remoteType": "Office Tech-Flexible","isRemote": false,"timeType": "Full time","jobCategory": "Program & Project Management","postedDate": "2026-10-14","postedOnText": "Posted Yesterday","daysSincePosted": 1,"applicationDeadline": null,"description": "To get the best candidate experience, please consider applying for a maximum of 3 roles within 12 months …","salaryText": "$150,100 - $227,000","salaryMin": 150100,"salaryMax": 227000,"salaryCurrency": "USD","salaryPeriod": "YEAR","hiringEntity": "100 Salesforce, Inc.","canApply": true,"workdayJobId": "f23413c0c23f1005bd16ba82ca2d0001","workdayTenant": "salesforce","careerSite": "External_Career_Site","careerSiteUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site","workdayDataCenter": "wd12","searchKeyword": null,"detailsIncluded": true,"scrapedAt": "2026-10-15T10:33:53.723Z"}
An NVIDIA posting from the same day gives "salaryText": "144,000 USD - 230,000 USD", "salaryMin": 144000, "salaryMax": 230000, "salaryPeriod": "YEAR"; an NVIDIA internship gives "20 USD - 71 USD" with "salaryPeriod": "HOUR".
The built-in Workday directory
Workday has no public list of the companies that use it. This Actor ships one: 6,123 career sites of 3,694 employers, each checked live against the Workday career-site API on 2026-10-15 (sites that did not answer, or had no open jobs, were left out). The candidates came from public web-crawl captures of *.myworkdayjobs.com and *.myworkdaysite.com pages from 2024–2026.
- About 1.16 million job postings were listed on these sites when the directory was built (some employers list the same job on more than one site).
- 84 sites had 2,000+ open jobs (where Workday's search cap applies and the Actor splits searches), 1,741 had 100+.
- Biggest by open jobs: Accenture (~41,600), Dollar Tree (~25,000), Walmart (~20,100), CVS Health (~19,800), O'Reilly Auto Parts (~18,900), Advance Auto Parts (~16,500), Target (~14,200), Loblaw Companies (~13,800), Lowe's (~12,700), TJX Companies (~11,300), Circle K, Kohl's, Advocate Health, RTX, Michaels, PACS Group, Hitachi, Citi, PwC, Petco, JLL, DICK'S Sporting Goods, Northrop Grumman …
- Technology: NVIDIA, Salesforce, Intel, Adobe, Cisco, HP, Hewlett Packard Enterprise, Micron Technology, Applied Materials, Broadcom, CrowdStrike, Autodesk, Workday, Snap Inc. … Banking and finance: Bank of America, Citi, Wells Fargo, Morgan Stanley, Mastercard, Capital One, PNC, Fidelity Investments, State Street, Barclays … Healthcare: CVS Health, Advocate Health, AdventHealth, Sanford Health, Cleveland Clinic, Mass General Brigham, Corewell Health, Fresenius Medical Care, Abbott, Pfizer, Novartis …
- Workday data centres covered: wd1, wd3, wd5, wd10, wd12, wd102, wd103, wd105, wd107, wd108, wd115, wd116, wd501, wd502, wd503, wd504.
An employer that is not in the directory is still one URL away: paste its career-site address (it ends in myworkdayjobs.com/<site> or myworkdaysite.com/recruiting/<company>/<site>) into Career site or job URLs.
How much data can I get?
As much as the career sites list. Measured on the Apify platform on 2026-10-15 with the default 2 GB memory:
| Input | Jobs | Run time | Duplicates |
|---|---|---|---|
| Example input — NVIDIA + Salesforce, 50 jobs | 50 | 7 s (first rows after ~4 s) | 0 |
| NVIDIA + Salesforce, 1,000 jobs with full details | 1,000 | 21 s | 0 |
| All employers, 100 jobs per employer, 3,000 jobs | 3,000 (30 employers) | 53 s | 0 |
| All employers, 100 jobs per employer, 30,000 jobs | 30,000 (291 employers, 108 countries) | 9 min 9 s | 0 |
Accenture, one career site, list-only (includeDetails: false) | 33,942 | 74 s | 0 |
The fill rate on 1,000 detailed NVIDIA + Salesforce jobs: title, company, requisition ID, URLs, location, country, time type, posting date, description, hiring entity 100 %; job category 98 %; remote type 90 %; pay range 46.5 % (the share of postings that state one); additional locations 35 %; application deadline 10 % (employers set it rarely). On the 30,000-job run across 291 employers: title, company, location, country, posting date and description 100 %, hiring entity 92 %, pay range 39 %, remote type 21 % (many employers do not set it), application deadline 21 %. jobCategory is filled when a career site is read in full; a sample taken with Max jobs per career site is read in the site's own order and skips the category split.
Big runs need a big enough "Maximum cost per run"
This Actor is paid per result, and every paid run on Apify has a maximum cost — if you do not set one, the platform applies a default limit, which may cover only a few thousand results. For 10,000+ jobs, set Maximum cost per run (run options in Console, or maxTotalChargeUsd in the API) to at least jobs × price per job — for example 20,000 jobs at $2.00 per 1,000 need at least $40.
If the maximum cost is lower than that, nothing breaks: the Actor works out at the start how many jobs the limit covers, fetches only those, stops cleanly at that number and finishes as Succeeded, with a status message such as "Saved 28 jobs — this run's maximum cost ($0.05) covers 28 results at the current price. Raise 'Maximum cost per run' to get more." The SUMMARY record then contains stoppedBy: "MAX_COST" and affordableResults. You are never charged beyond your limit, and the run never fails or aborts because of it.
Speed and price
What you pay: a fixed price per job saved — see the Pricing tab (on 2026-10-15: $2.00 per 1,000 jobs on the Free plan, $1.30 per 1,000 from Gold up). Compute, storage and proxies are included.
How fast it is: about 20 seconds per 1,000 jobs from one or two employers, about a minute per 3,000 jobs and 9 minutes per 30,000 jobs spread over hundreds of employers, with full details. List-only exports (includeDetails: false) need about 20× fewer requests. Speed depends mostly on how many employers a run spans — each Workday career site may only be read at a limited pace per connection — so very large single-employer exports take longer than the same number of jobs from many employers.
Integrations
API (curl)
Run the Actor and get the jobs in one call (fine for runs up to a few minutes):
curl -X POST "https://api.apify.com/v2/acts/logiover~workday-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN&format=json" \-H "Content-Type: application/json" \-d '{"companies":["NVIDIA"],"keywords":["software engineer"],"maxItems":200}'
For big exports start a run with a maximum cost that covers them (POST /v2/acts/logiover~workday-scraper/runs?maxTotalChargeUsd=50) and read GET /v2/datasets/{defaultDatasetId}/items?format=csv when it finishes — format can be json, csv, xlsx, xml or jsonl.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('logiover/workday-scraper').call({allCompanies: true,keywords: ['data engineer'],countries: ['US'],postedWithinDays: 7,maxItems: 2000,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0].company, items[0].title, items[0].salaryMin);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("logiover/workday-scraper").call(run_input={"companies": ["Bank of America", "Citi", "Wells Fargo"],"countries": ["United States"],"maxItems": 5000,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["company"], job["title"], job["location"], job["postedDate"], job["salaryMin"], job["salaryMax"])
Make, Zapier and n8n
Use the Apify app in Make ("Run an Actor" → "Get dataset items"), the Zapier Apify integration, or the Apify node in n8n. Pick logiover/workday-scraper, paste the input JSON, and map the dataset fields into your ATS, CRM, Airtable, Notion, Slack or e-mail steps.
Google Sheets
Add the Google Sheets integration from the Actor's Integrations tab to append every run's jobs to a sheet, or download the dataset as CSV / Excel and import it.
Webhooks and schedules
Schedule the Actor (for example every morning with postedWithinDays: 1) and add a webhook for ACTOR.RUN.SUCCEEDED; the payload contains resource.defaultDatasetId, so your backend can fetch the new jobs the moment the run finishes. De-duplicate across runs by workdayJobId.
MCP and AI agents
AI agents can call this Actor as a tool through the Apify MCP server (https://mcp.apify.com?actors=logiover/workday-scraper) from Claude, Cursor, VS Code or any MCP client — for example "list NVIDIA's open machine-learning jobs in Germany with pay ranges" or "which Workday employers posted nursing jobs in Texas this week?".
Comparison
| Browsing Workday sites by hand | Generic scrapers / browser extensions | Workday Scraper | |
|---|---|---|---|
| Coverage | one employer at a time | one site at a time, you find the URLs | 6,123 verified career sites built in + any URL |
| Depth | what you can click through | usually stops at 2,000 results | past the 2,000 cap automatically |
| Fields | what the page shows | title + location, often no description | description, exact date, req ID, all locations, country, remote type, category, pay range |
| Speed | — | a browser per page | ~1,000 detailed jobs in ~20 s |
| Login / cookies | none needed | sometimes your session | none |
| Output | copy-paste | raw HTML or partial CSV | typed JSON / CSV / Excel / API, nulls instead of fake zeros |
| Reliability | — | breaks on layout changes, rate limits | reads structured data; paced below Workday's limits; honest success / failure |
Limits and tips
- 2,000 per search is Workday's own limit. The Actor splits bigger sites by their facets; for the very largest employers (40,000+ postings on one site) a few slices can still hit the cap — e.g. 33,942 of Accenture's ~42,000 postings in one run. Add Keywords or Countries to reach the rest.
- Pay ranges appear only where the employer writes one (common in US states with pay-transparency laws).
salaryMin/salaryMaxare leftnullrather than guessed. - Posting dates: with details on,
postedDateis Workday's exact posting start date; in list-only mode it is computed from "Posted N Days Ago" (anything older than 30 days shows as30+). - Company names come from the built-in directory (hand-checked for the largest employers) or, for other sites, from the career site's own texts; the legal entity of each job is always in
hiringEntity. - Internal or login-only career sites (employee job boards) are not public; the run lists them in
SUMMARY.unavailableSitesand moves on. - Big runs: set Maximum cost per run high enough (see above) and give 50,000+ job exports a longer run timeout.
- Freshness: schedule daily runs with
postedWithinDays: 1and de-duplicate byworkdayJobId.
FAQ
What is Workday Scraper?
An Apify Actor that exports job postings from Workday career sites (myworkdayjobs.com, myworkdaysite.com) — title, full description, exact posting date, requisition ID, locations, country, remote and time type, job category and pay range — for one employer, a list of employers, or every employer in its built-in directory.
Does Workday have a public jobs API?
Each Workday career site has a JSON API that its own job search page uses (/wday/cxs/{company}/{site}/jobs), but there is no documented, company-wide API and no list of the companies on Workday. This Actor uses those public career-site endpoints and adds the directory, the 2,000-cap splitting, pacing, parsing and clean output.
Do I need a Workday account, login or cookies?
No. Only public job postings are read — the same ones anyone can see without signing in.
Which companies use Workday for hiring?
3,694 employers are in the built-in directory, from Accenture, Walmart and Target to NVIDIA, Salesforce, Bank of America and thousands of hospitals, universities, retailers and manufacturers. If a company's careers page address contains myworkdayjobs.com or myworkdaysite.com, this Actor can read it.
How do I find a company's Workday career-site URL?
Open the company's careers page and click a job search or job link; if you land on an address like https://<company>.wd5.myworkdayjobs.com/<site>, that is it. Or just type the company name into Companies — it may already be in the directory.
Can I scrape all Workday jobs at once?
Yes: switch on All employers in the directory. Combine it with Keywords, Countries and Max jobs, and use Max jobs per career site if you want a sample from many employers rather than everything from the biggest ones.
How many results can I get per run?
As many as the sites list. Single runs of 30,000 jobs from 291 employers and 33,942 postings from one Accenture career site were measured. For 10,000+ results also raise Maximum cost per run (see How much data can I get?).
How fast is it?
About 20 seconds per 1,000 detailed jobs from one or two employers, about a minute per 3,000 jobs and 9 minutes per 30,000 jobs across many employers, and 74 seconds for 33,942 jobs in list-only mode — measured on 2026-10-15.
How much does it cost to run?
You pay per job saved — see the Pricing tab (on 2026-10-15: $2.00 per 1,000 jobs on the Free plan, $1.30 per 1,000 from Gold up). Compute, storage and proxies are included.
Why did my run stop before reaching Max jobs?
Usually because of Maximum cost per run: the Actor stops cleanly at the number of jobs your limit covers and says so in the status message. The other reasons are that the employers have fewer matching jobs, the filters are narrow, or the run reached its time limit — the status message says which.
Do I need proxies?
No — the Actor connects directly first. For big runs it opens extra Apify Proxy connections in parallel only to go faster, because Workday limits how quickly one connection may read a site. Turn proxy off in the input to use the direct connection only.
Why is salaryMin empty for some jobs?
The posting does not state a pay range, or states it in a form that cannot be read unambiguously (for example only "competitive salary"). The Actor never guesses a number.
Why is isRemote null?
The employer did not set Workday's remote type and the location does not say "Remote" — the posting does not tell, so the Actor does not either. false means on-site or hybrid; true means remote.
Can I get only new jobs every day?
Yes: schedule the Actor with postedWithinDays: 1 (or 2 to be safe) and de-duplicate by workdayJobId.
What happens if a career site moved or is offline?
A company that moved to another Workday data centre is found and read there automatically. A site that is not public or no longer exists is listed in the SUMMARY record and the run continues; if nothing could be read at all, the run fails with the reason, so an outage never looks like "no jobs".
I need a field or filter that is missing. Can you add it?
Yes. Open an issue on the Actor's Issues tab — answered within 24 h. Bug reports with the run link get fixed first.
Is it legal to scrape Workday career sites?
This Actor collects only public job postings — the same information any visitor sees on an employer's careers page without logging in — and does not access candidate accounts, applications or any personal data of applicants. Job postings are published by employers to be found. Scraping public data is generally lawful, but how you use it matters: respect copyright in long descriptions if you republish them, follow data-protection rules (GDPR, UK GDPR, CCPA) if your use involves personal data such as recruiter names in descriptions, and check the terms that apply to you. This is not legal advice.
Changelog
- 2026-10-15 — first release. Workday career-site jobs with full description, exact posting date, requisition ID, all locations, country, remote and time type, job category, pay range and hiring entity; built-in directory of 6,123 verified career sites (3,694 employers); employer-name lookup, URLs or all employers; keywords, countries, location words, posted-within days, remote only; automatic splitting past Workday's 2,000 cap; automatic data-centre relocation; paced parallel connections; honest success / failure;
SUMMARYrecord. Full details in the Changelog tab.
Support
Questions, a missing employer, a missing field or a broken run? Open an issue on the Issues tab — answered within 24 h. Include the run link and we will look at the exact run.
Workday Scraper is an independent tool and is not affiliated with, endorsed by or sponsored by Workday, Inc. or any of the employers whose career sites it reads. "Workday" is a trademark of Workday, Inc.; company names are trademarks of their respective owners and are used here only to describe the data the tool works with.