Workday.com Scraper
Pricing
from $1.50 / 1,000 results
Workday.com Scraper
Extract job listings from Workday-powered corporate career pages worldwide. Titles, locations, departments, job IDs & full descriptions. Fortune 500 & enterprise coverage. $1.50/1,000 results.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Workday Scraper

Collect job listings from any company that uses the Workday ATS platform — all in one run. Add any myworkdayjobs.com URL to scrape any company instantly. Comes pre-loaded with 23 verified open companies across Tech, Pharma, Finance, and more. No API key, no registration, no browser required.
Why this scraper?
🌍 23 verified open companies pre-loaded
Intel, Pfizer, Novartis, Medtronic, PayPal, CrowdStrike, Zoom, NXP Semiconductors, Workday Inc, Labcorp, IQVIA, Amgen, Regeneron, Bristol Myers Squibb, Takeda, AstraZeneca, Leidos, CACI International, Unisys, Choice Hotels, Calix, Zealand Pharma, and more — ready to scrape without any configuration.
Note: Many large corporations (Shell, Adidas, Goldman Sachs, BASF, etc.) use protected Workday instances that require a browser session. These cannot be scraped via the public API. The scraper detects them automatically and skips to the next company.
🔗 Add any company instantly
Paste any myworkdayjobs.com URL from a company career site and the scraper extracts jobs automatically. Works with any Workday tenant worldwide.
🔍 Keyword + location search
Filter listings by job title keywords and location across all selected companies in a single run.
📄 Full job descriptions included
Retrieves complete job descriptions in HTML, plain text, and Markdown. Also extracts contract type (full time / part time), ISO country code, and salary ranges when present in the description.
💰 Salary extraction
For companies that publish pay ranges in their job descriptions (e.g. PayPal, Zealand Pharma, Labcorp), salaryMin, salaryMax, currency, and salaryPeriod are automatically extracted from the HTML.
♻️ Cross-run deduplication
Enable Skip reposts to track which jobs were already seen across previous runs (90-day memory). Avoid processing the same listing twice in scheduled pipelines.
⚡ Lightweight and fast
Pure API calls — no browser, no proxy. A run across 10 companies with 50 jobs each completes in under 3 minutes.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | [] | Workday career site URLs to scrape. Any page from a company's Workday site works. Leave empty to use the pre-seeded company list. |
companies | Array | [] | Filter the pre-seeded list by company name (e.g. ["Philips", "Shell"]). Leave empty to scrape all 23 companies. |
searchQuery | String | "" | Keyword filter (e.g. "software engineer"). Leave empty for all jobs. |
location | String | "" | Location filter (e.g. "Amsterdam"). Combined with the search query. |
maxResults | Integer | 100 | Maximum jobs to collect per company. Lower this when scraping all 23 companies to manage run time. |
fetchDetails | Boolean | true | Fetch the full job description from each listing's detail page. Disable to collect list-level data faster. |
daysOld | Integer | — | Only return jobs posted within this many days. Leave empty for all available jobs. |
skipReposts | Boolean | false | Skip listings already seen in previous runs (cross-run deduplication). |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
id | string|null | Workday job requisition ID (e.g. "R18929", "REQ-10077296") |
jobReqId | string|null | Same as id — explicit requisition ID field |
url | string | Direct link to the job on the company's career site |
title | string|null | Job title |
company | string | Company name |
companyWebsite | string | Company Workday career site URL |
city | string|null | City extracted from Workday's structured location data |
country | string|null | Country name from Workday's structured location API |
countryCode | string|null | ISO 3166-1 alpha-2 country code (e.g. "US", "GB", "NL") |
locationText | string|null | Raw location string as returned by Workday |
remote | boolean | true if "remote" appears in the location text |
salaryMin | number|null | Minimum salary when found in job description |
salaryMax | number|null | Maximum salary when found in job description |
salaryText | string|null | Raw salary snippet extracted from description (e.g. "$160,500.00 - $238,700.00 Annually") |
salaryPeriod | string|null | Pay period: "annual", "monthly", or "hourly" |
currency | string|null | Currency code (e.g. "USD", "GBP") when salary is present |
publishDate | string|null | Publication date (YYYY-MM-DD) — sourced from Workday's startDate field |
publishDateISO | string|null | Publication date (ISO 8601) |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string|null | Date first seen (when isRepost: true) |
source | string | Workday tenant domain |
careerSite | string | Career site identifier within the tenant |
scrapedAt | string | ISO 8601 timestamp of this run |
contentHash | string | 16-character MD5 of id + title + location |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
descriptionHtml | string|null | Full job description as HTML |
descriptionText | string|null | Plain text version of the description |
descriptionMarkdown | string|null | Markdown version of the description |
summary | string|null | First 300 characters of the description |
contractType | string|null | Employment type (e.g. "Full Time", "Part Time") |
canApply | boolean|null | Whether the application portal is currently open |
Example output
{"id": "R0134771","jobReqId": "R0134771","url": "https://paypal.wd1.myworkdayjobs.com/Jobs/job/Chicago.../Staff-Data-Scientist_R0134771-1","title": "Staff Data Scientist","company": "PayPal","companyWebsite": "https://paypal.wd1.myworkdayjobs.com","city": "Chicago","country": "United States","countryCode": "US","locationText": "Chicago, Illinois, United States of America","remote": false,"salaryMin": 160500,"salaryMax": 238700,"salaryText": "$160,500.00 - $238,700.00 Annually","salaryPeriod": "annual","currency": "USD","contractType": "Full Time","canApply": true,"descriptionHtml": "<p>We are looking for...</p>","descriptionText": "We are looking for...","descriptionMarkdown": "We are looking for...","summary": "We are looking for a Staff Data Scientist to join our team…","publishDate": "2026-05-06","publishDateISO": "2026-05-06T00:00:00.000Z","isRepost": false,"originalPublishDate": null,"source": "paypal.wd1.myworkdayjobs.com","careerSite": "Jobs","scrapedAt": "2026-05-06T10:00:00.000Z","contentHash": "a3f1c2d4e5b67890"}
Examples
Search for software engineering roles across all pre-seeded companies
{"searchQuery": "software engineer","maxResults": 50,"fetchDetails": true}
Scrape a specific company by pasting their Workday URL
{"startUrls": [{ "url": "https://yourcompany.wd3.myworkdayjobs.com/en-US/ExternalCareers" }],"searchQuery": "data analyst","maxResults": 200}
Daily feed — only new jobs posted today, skip already-seen listings
{"companies": ["Novartis", "Pfizer", "Amgen"],"daysOld": 1,"skipReposts": true,"fetchDetails": true}
Collect all jobs without descriptions for a fast overview
{"companies": ["Intel", "Leidos", "PayPal"],"maxResults": 500,"fetchDetails": false}
💰 Pricing
$0.89 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.09 |
| 1,000 | ~$0.89 |
| 10,000 | ~$8.90 |
| 100,000 | ~$89.00 |
Flat-rate alternatives typically charge $10–$30/month regardless of usage. At $0.89/1k this is the most affordable real-time Workday scraper on Apify.
Use the Max results per company cap to control spend precisely.
Performance
| Scope | Approx. time |
|---|---|
| 1 company, 50 jobs, with descriptions | ~30 seconds |
| 10 companies, 50 jobs each | ~4 minutes |
| All 23 companies, 20 jobs each | ~10 minutes |
| Single company, full catalogue (500+ jobs) | ~8 minutes |
Known limitations
- Salary data: Not part of Workday's structured API. Extracted on a best-effort basis from HTML description text. Available for companies that embed pay ranges in their postings (PayPal, Zealand Pharma, Labcorp, and others).
- Gated listings: Some companies configure their Workday instance to require login for certain roles. These listings are not accessible and are skipped automatically.
- Company catalogue changes: Companies occasionally change their Workday tenant ID or career site name. Add the updated URL via
startUrlsif a pre-seeded company stops returning results. - Location precision:
cityis extracted from Workday's structuredjobRequisitionLocationfield. For some companies this may include office-level detail (e.g. building names) rather than just the city.
Technical details
- Source: myworkdayjobs.com — Workday ATS platform used by thousands of companies worldwide
- Architecture: Pure REST API — POST
/wday/cxs/{tenant}/{careerSite}/jobsfor search, GET for detail pages - Date accuracy: Uses Workday's native
startDateISO field (no fuzzy "Posted X days ago" parsing) - Location accuracy: Uses Workday's structured
jobRequisitionLocationincluding ISOalpha2Codecountry codes - Memory: 512 MB
- Repost storage: KeyValueStore
workday-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Part of the Unfenced Group European job board scraper portfolio — 50+ job markets covered. Built by unfenced-group · Issues? Open a ticket or send a message.