Extract public job postings from Workday-hosted company career sites, including titles, URLs, requisition IDs, locations, employment type, remote signals, categories, and descriptions.
Use it to build hiring intelligence datasets, monitor competitor job pages, track role demand, enrich sales triggers, or keep public Workday job feeds synced through the Apify API.
At a glance
- Workday career site export: Paste one or more public Workday career site URLs and save structured job rows.
- Keyword filtering: Send optional search text such as
engineering,remote,sales, oranalyst. - Job detail enrichment: Include description text, exact locations, Workday IDs, employment type, and category fields.
- Company normalization: Let the actor infer a company name from the Workday tenant or set your own override.
- Automation-ready output: Download CSV/JSON/Excel exports or stream hiring data into dashboards, agents, CRMs, and warehouses.
What can it do?
Workday Jobs Scraper calls public Workday career-site endpoints, paginates through job listings, optionally fetches each job detail page, and saves one dataset row per public job posting.
- Extract public jobs: Save titles, URLs, company names, Workday IDs, requisition IDs, locations, and timestamps.
- Search within Workday: Use
searchTextto narrow a company career site by keyword. - Include descriptions: Keep
includeJobDetailsenabled for description HTML, plain text, categories, and employment fields. - Handle multiple companies: Process more than one Workday career site in the same run.
- Control spend and size: Use
maxItemsto cap saved jobs across all supplied start URLs.
Common workflows
- Competitive hiring intelligence: Track roles, locations, seniority patterns, and remote signals from public Workday sites.
- Recruiting market research: Export job titles and descriptions for skill, role, or location analysis.
- Sales trigger monitoring: Watch target accounts for hiring in relevant teams or regions.
- Talent analytics: Compare job families, employment types, and posting volume over time.
- Job board ingestion: Feed public Workday postings into downstream search, alerting, or enrichment systems.
What data can you extract?
The actor returns one dataset row per saved Workday job posting.
| Field | Description |
|---|---|
title |
Job title |
company |
Company name inferred from the Workday tenant or set by companyName |
jobId |
Public requisition or job ID when available |
workdayId |
Workday internal posting ID when available |
externalPath |
Workday job path |
url |
Public job posting URL |
locationsText |
Human-readable location text |
locations |
Location list from job details |
postedOn |
Posted label from Workday |
postedDate |
Detail-page start or posted date when available |
employmentType |
Employment or time type when available |
jobFamily |
Workday job family when available |
category |
Job family group or category when available |
remoteType |
Inferred Remote or Hybrid signal when present in location text |
descriptionHtml |
Job description HTML when detail fetching is enabled |
descriptionText |
Plain-text job description when detail fetching is enabled |
sourceUrl |
Input Workday career site URL |
scrapedAt |
ISO timestamp for the scrape |
Example input
{
"startUrls": [
{
"url": "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite"
}
],
"searchText": "engineering",
"maxItems": 25,
"includeJobDetails": true,
"companyName": "NVIDIA",
"proxyConfiguration": {
"useApifyProxy": false
}
}
Example output
{
"title": "Senior Software Engineer",
"company": "NVIDIA",
"jobId": "JR1999999",
"workdayId": "abc123",
"externalPath": "/en-US/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Software-Engineer_JR1999999",
"url": "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Software-Engineer_JR1999999",
"locationsText": "US, CA, Santa Clara",
"locations": ["US, CA, Santa Clara"],
"postedOn": "Posted 2 Days Ago",
"postedDate": null,
"employmentType": "Full time",
"jobFamily": "Engineering",
"category": "Engineering",
"remoteType": null,
"descriptionText": "We are looking for a senior software engineer...",
"sourceUrl": "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite",
"scrapedAt": "2026-07-03T10:00:00.000Z"
}
Tips for best results
- Use the public career site URL: Start from a Workday-hosted careers page, not a private applicant portal.
- Search narrowly first: Test with one company, one keyword, and
maxItems: 25. - Keep details on for analysis:
includeJobDetailsgives cleaner locations, descriptions, and IDs. - Turn details off for speed: Use
includeJobDetails: falsefor quick list-level monitoring. - Use company overrides: Set
companyNamefor cleaner dashboards when Workday tenant names are abbreviated.
Limits and practical notes
- The actor extracts public Workday-hosted job postings only.
- It does not access private applicant accounts, candidate data, saved applications, or login-gated pages.
- Some Workday tenants use custom site names, regions, or posting fields, so a few fields can be empty.
remoteTypeis inferred from location text and may be empty when Workday does not label a role as remote or hybrid.- Source career pages can change structure or availability over time.
API usage
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~workday-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite"}],"searchText":"engineering","maxItems":25}'
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/workday-jobs-scraper').call({
startUrls: [{ url: 'https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite' }],
searchText: 'engineering',
maxItems: 25,
includeJobDetails: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/workday-jobs-scraper").call(run_input={
"startUrls": [{"url": "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite"}],
"searchText": "engineering",
"maxItems": 25,
"includeJobDetails": True,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
MCP and AI agents
Use this actor from MCP-compatible tools through Apify MCP Server.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/workday-jobs-scraper
Example prompts:
- "Scrape public engineering jobs from this Workday career site and summarize the locations."
- "Monitor these Workday companies weekly and flag new remote roles."
- "Export public Workday job descriptions for hiring-market analysis."
Legality and responsible use
This actor extracts publicly available job postings from Workday-hosted career sites.
Use the data responsibly, follow Workday site terms, Apify's terms, and applicable employment, privacy, and anti-spam laws.
Do not use the actor to access private candidate data, applicant accounts, or login-protected workflows.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.
Need help?
Start with one Workday career site, one keyword, and a small maxItems value. If parsing fails, confirm the URL is a public Workday career site and not a login-protected applicant page.