๐ผ Workday Jobs Scraper
Pricing
from $5.00 / 1,000 results
๐ผ Workday Jobs Scraper
Workday job scraper for any myworkdayjobs or myworkdaysite careers portal. Get titles, salaries, descriptions, normalised locations, skills, seniority and company data โ 20+ filters, streamed live to your dataset.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape any Workday careers portal into a clean, enriched job dataset โ titles, salaries, locations, skills and full descriptions.
โก TL;DR
Paste a careers URL โ press Start โ get structured jobs. Works on every public
*.myworkdayjobs.comand*.myworkdaysite.comboard. Handles pagination, opens each posting for the full description, normalises locations toCity, Region, Countrywith coordinates and timezone, extracts salary ranges, skills, seniority, benefits and 40 job categories โ and streams every row into your dataset while the run is still going.๐ง Custom fields, private builds, bespoke job-data pipelines โ hello.dataminds@gmail.com
๐งญ Pick your path
| I want toโฆ | Jump to |
|---|---|
| ๐ Get my first 10 jobs in a minute | 60-second start |
| ๐ Copy a ready-made config | Recipe book |
| ๐ See exactly what a row looks like | One job, one row |
| ๐งพ Look up a field or an input | Field dictionary ยท Input reference |
| ๐ก๏ธ Understand blocking & proxies | How it survives protected boards |
| ๐ธ Keep the bill small | Cost control |
| โ Ask a question | Answers ยท Fix-it table |
๐ฏ The problem this Actor solves
Thousands of the world's biggest employers โ food distribution giants, chip makers, banks, hospital networks, retailers โ publish every opening on Workday, the applicant tracking system behind URLs like company.wd5.myworkdayjobs.com/careers.
Those boards are JavaScript-driven, paginated and inconsistent between tenants. Copying them by hand is unthinkable; a naive scraper gets half a page of titles and a location string like Sysco Iowa - Ankeny - Distribution/Main Office that no database can use.
Workday Jobs Scraper closes that gap.
| Raw careers board | What you get back |
|---|---|
Sysco Iowa - Ankeny - Distribution/Main Office | Ankeny ยท Polk County ยท Iowa ยท United States ยท 41.72971, -93.60577 ยท America/Chicago |
"$27.42" buried in paragraph 9 | ai_salary_value: 27.42 ยท ai_salary_currency: USD ยท ai_salary_unit_text: HOUR |
| 6,000 words of HTML | Clean description_text + responsibilities + requirements summaries |
| "Full time" | FULL_TIME ยท On-site ยท seniority 0-2 ยท 40-category taxonomy ยท skills list ยท benefits list |
| Page 1 of 40 | Every page, deduplicated, streamed live to your dataset |
๐ 60-second start
- Open the Actor in Apify Console and hit Try for free.
- Paste a careers URL into ๐ Careers portal URLs โ for example
https://sysco.wd5.myworkdayjobs.com/syscocareers - Set ๐ฌ Jobs to collect to
10. - Press โถ Start and watch each job land in the log the second it is ready.
- Open the Output tab and flip between the seven views, or export JSON / CSV / Excel / XML.
๐ฌ Nothing else is required. No proxy setup, no API key, no cookies, no browser profile. Every advanced option ships with a sensible default.
Via API:
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://sysco.wd5.myworkdayjobs.com/syscocareers" }],"results_wanted": 10}'
Via Python client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"startUrls": [{"url": "https://sysco.wd5.myworkdayjobs.com/syscocareers"}],"results_wanted": 100,"aiWorkArrangementFilter": ["Remote OK", "Remote Solely"],"hasSalary": True,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], "โ", job.get("locations_derived"), job.get("ai_salary_max_value"))
๐ Recipe book โ copy-paste configs
Every recipe below is a complete input. Paste it into the JSON tab in Console, or send it as the API body.
๐ Which URLs work?
| Paste this | Result |
|---|---|
https://company.wd5.myworkdayjobs.com/careers | ๐ข Whole board |
https://company.wd1.myworkdayjobs.com/en-US/External | ๐ข Locale boards |
https://wd3.myworkdaysite.com/en-US/recruiting/company/External | ๐ข Hosted boards |
https://company.wd5.myworkdayjobs.com/careers?q=engineer | ๐ข Your keyword search is reproduced |
https://company.wd5.myworkdayjobs.com/careers/job/Site/Title_R12345 | ๐ข That one job |
| A board that requires a login | ๐ด Not collectable โ public pages only |
๐ก Pro move: open the careers site in your browser, apply any filters you like, then copy the URL from the address bar. Whatever you searched, the Actor repeats.
๐งพ One job, one row
{"id": 4108616529,"date_posted": "2026-07-29T00:00:00","date_created": "2026-07-29T13:43:34.894714","title": "CDL A Local Delivery Truck Driver","organization": "US0039 Sysco Iowa, Inc.","locations_alt": ["Sysco Iowa - Ankeny - Distribution/Main Office"],"salary": "$27.42","employment_type": ["Full time"],"url": "https://wd5.myworkdaysite.com/recruiting/sysco/syscocareers/job/.../CDL-A-Local-Delivery-Truck-Driver_R253735","source": "workday","source_domain": "sysco.wd5.myworkdayjobs.com","organization_logo": "https://sysco.wd5.myworkdayjobs.com/syscocareers/assets/logo","cities_derived": ["Ankeny"],"counties_derived": ["Polk County"],"regions_derived": ["Iowa"],"countries_derived": ["United States"],"locations_derived": ["Ankeny, Iowa, United States"],"timezones_derived": ["America/Chicago"],"lats_derived": [41.72971],"lngs_derived": [-93.60577],"domain_derived": "sysco.com","ai_salary_currency": "USD","ai_salary_value": 27.42,"ai_salary_unit_text": "HOUR","ai_benefits": ["Paid time off", "Flexible schedule", "Tuition reimbursement", "Employee discounts"],"ai_experience_level": "0-2","ai_work_arrangement": "On-site","ai_key_skills": ["Leadership", "Training", "Sales", "Driving"],"ai_employment_type": ["FULL_TIME"],"ai_working_hours": 40,"ai_taxonomies_a": ["Transportation", "Supply Chain & Logistics", "Sales"],"ai_taxonomies_primary": "Transportation","ai_core_responsibilities": "Sysco has immediate job openings for dependable local CDL A Delivery Truck Driversโฆ","ai_requirements_summary": "21+ years of age. Valid Class A Commercial Driver License (CDL)โฆ","org_linkedin_name": "Sysco","org_linkedin_industry": "wholesale","org_linkedin_size": "10,001+ employees","org_linkedin_headcount": 67001,"org_linkedin_headquarters": "Houston","org_linkedin_founded_date": "1969","date_modified": null,"modified_fields": null,"description_text": "Company:\nUS0039 Sysco Iowa, Inc.\n\nZip Code:\n50021\n\nJob Summary:\nโฆ","compact": { "title": "โฆ", "company": "โฆ", "requisition_id": "R253735", "apply_url": "โฆ", "job_url": "โฆ" },"raw": { "id": "R253735", "title": "โฆ", "โฆ": "untouched source payload" }}
๐๏ธ Seven views, seven tidy sections
The Output tab ships with prebuilt table views so you never scroll through 75 columns looking for one:
| View | Columns you see |
|---|---|
| โจ Job Overview | Title ยท company ยท location ยท type ยท arrangement ยท posted ยท link |
| ๐ Locations & Geo | Raw label ยท city ยท region ยท country ยท timezone ยท lat ยท lng |
| ๐ฐ Salary & Benefits | Currency ยท min ยท max ยท flat pay ยท pay period ยท benefits |
| ๐ง AI Insights | Seniority ยท skills ยท categories ยท hours ยท sponsorship ยท language ยท education |
| ๐ข Company & Employer | Company ยท URL ยท domain ยท logo ยท industry ยท size ยท headcount ยท website |
| ๐ Description & Summary | Responsibilities ยท requirements ยท full description |
| ๐งญ Source & Change tracking | IDs ยท portal ยท collected / posted / closing dates ยท changed fields |
๐๏ธ Four row shapes
outputFormat | Row contains | Use it when |
|---|---|---|
all (default) | Full record + compact + raw | You want everything, once |
full | 73 enriched fields | Analytics, dashboards, warehouses |
compact | 12 essential columns | Sheets, Slack alerts, quick exports |
raw | Untouched source payload | Your own parsing pipeline |
๐ A run summary โ totals, per-portal counts and the live category breakdown โ is saved in the key-value store as run-summary.
๐ Field dictionary
๐๏ธ Input reference
๐ก๏ธ How it survives protected boards
Careers portals rate-limit, throttle and occasionally slam the door. The run adapts on its own:
๐ direct connection โโrefusedโโโถ ๐ก๏ธ datacenter route โโrefusedโโโถ ๐ residential route โโโถ ๐งญ browser rescueโฒ fastest, free โฒ sticky from here on โฒ 3 focused retries โฒ last resort
- ๐ Direct first โ most portals never push back, so you pay nothing for proxies.
- ๐ฆ Sticky escalation โ the moment a portal refuses, the run switches route and stays there for every remaining request. No flapping.
- ๐ฃ Fully logged โ every switch is printed plainly: "Network fallback โ direct connection was refused (HTTP 429) โ switching to the datacenter route for every remaining request." A route-change summary closes the run.
- โป๏ธ Smart retries โ transient errors and
429s back off exponentially and honourRetry-After. - ๐งญ Browser rescue โ whatever is still refused gets one attempt inside a real browser session.
- ๐ข Your politeness dials โ
requestDelay,requestTimeout,concurrency. - ๐พ Nothing is ever lost โ rows are written the instant they are ready, so even an aborted or migrated run keeps everything collected so far.
โ You do not need to configure a proxy. Turn one on only when you want a specific country route.
๐ธ Cost control
Billing is pay per result โ one job_result event per job row saved. Filtered-out postings do not add result charges.
| Lever | Effect |
|---|---|
results_wanted | ๐ฏ The hard ceiling on rows saved โ the single biggest lever |
details: false | โก Listing-only sweep: dramatically faster and cheaper |
pagination / max_pages | ๐ Bound how much of the board is walked |
titleSearch ยท postedAt ยท locationSearch | ๐ซ Drop postings before their descriptions are ever opened |
geocode: false | ๐ Skip normalisation when raw labels are enough |
concurrency | โ๏ธ Higher finishes sooner (less compute) โ be gentle with small portals |
๐ Integrations & automation
- โฐ Schedules โ hourly or daily runs;
date_modified+modified_fieldsreveal what changed. - ๐ Webhooks โ ping your service the moment a run finishes.
- ๐ Make ยท Zapier ยท n8n โ push new jobs into Airtable, Sheets, Slack, HubSpot or your own ATS.
- ๐๏ธ API access โ dataset items as JSON, JSONL, CSV, XLSX, XML or RSS.
- ๐ค AI pipelines โ
description_text+ai_key_skills+ai_taxonomies_adrop straight into embeddings, RAG stores, job-matching models and skill-extraction training sets.
$curl "https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=csv"
๐ฅ Built for
| Who | Why |
|---|---|
| ๐งฒ Recruiters & staffing agencies | Track competitor hiring, source live openings, build candidate-facing feeds |
| ๐ Job boards & aggregators | Ingest thousands of employer postings with one consistent schema |
| ๐ Talent intelligence & HR analytics | Hiring velocity, location strategy, salary benchmarks, headcount plans |
| ๐ผ Sales & GTM teams | Hiring signals are buying signals โ 30 new warehouse roles means a new facility |
| ๐ฌ Labour-market researchers | Longitudinal datasets of real, employer-published demand |
| ๐ค AI & data teams | Clean job text for matching, embeddings and skill graphs |
| ๐งโ๐ป Developers | A dependable job data API with zero ATS paperwork |
๐ฌ Answers
๐ ๏ธ Fix-it table
| Symptom | Fix |
|---|---|
| ๐ซ No jobs saved | Loosen filters โ strict titleSearch + locationSearch + dates can exclude everything. The run summary's Top filters line names the filter that dropped the most. |
| โณ Only old jobs / nothing recent | You probably set startAt (posted on or before) instead of postedAt (posted on or after). |
| ๐ Fewer jobs than requested | The board may hold fewer matches, or pagination / max_pages ended the sweep. Set pagination: 0 and raise max_pages. |
| ๐ Run stops at 200 | limit is the per-portal cap and bounds the total too. Raise it when results_wanted exceeds 200. |
| ๐ข Company fields empty | Set includeCompanyDetails: true and choose a companyProvider (wikidata is free). |
๐ locations_derived is null | The label matched no real place โ common for Remote or internal codes. Raw labels remain in locations_alt. |
| ๐ Portal did not answer | The URL may be private, retired or region-locked. Open it in a browser first; login-walled boards cannot be collected. |
| ๐ Slow runs | details: false for a listing sweep, raise concurrency, lower requestDelay. |
โ๏ธ Is scraping job listings legal?
This Actor collects publicly available job postings โ the same pages any visitor can open without logging in. Scraping public data is generally lawful in the EU and the US, but how you use it is on you:
- ๐ง Do not collect data behind authentication or paywalls.
- ๐ค Respect the target site's terms and reasonable request rates.
- ๐ Handle personal data (a recruiter's name in a posting, for instance) in line with GDPR, CCPA and local law.
- ๐ซ Never use the data for spam or unlawful discrimination.
Background reading: Apify's guide on the legality of web scraping. Not legal advice.
๐ Support & custom builds
| ๐ Bug or missing field | Open the Actor's Issues tab |
| ๐ง Custom scrapers, private integrations, bulk job-data pipelines | hello.dataminds@gmail.com |
| โญ Enjoying it? | Leave a review โ it genuinely helps |