Workday Jobs Scraper avatar

Workday Jobs Scraper

Pricing

from $1.00 / 1,000 job listings

Go to Apify Store
Workday Jobs Scraper

Workday Jobs Scraper

Extract public job listings from Workday career sites (API-first), with optional descriptions, deduplication, and per-source limits.

Pricing

from $1.00 / 1,000 job listings

Rating

0.0

(0)

Developer

Vamsi Krishna

Vamsi Krishna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Extract public job listings from Workday career sites into a clean, structured Apify dataset.

This actor is built for recruiting research, job-board enrichment, hiring-market monitoring, and company career-page tracking. It only works with publicly accessible Workday career pages.

Why Use It

  • API-first extraction from Workday public CXS endpoints when available.
  • Correct public job URLs with locale and career-site paths preserved.
  • Enriched records with requisition IDs, Workday tenant/site, locations, remote/workplace signals, job family/category, and description text.
  • Practical filters for India, city targeting, IT roles, fresher/entry-level jobs, remote roles, and recently posted jobs.
  • Per-source limits so large companies do not consume the whole run.
  • Cost controls with maxItems and maxItemsPerSource, so users can cap paid results before starting large runs.
  • Run summary diagnostics for debugging empty or filtered runs.

What It Does

  • Reads one or more Workday career site URLs.
  • Uses Workday public CXS endpoints when available for faster and cleaner extraction.
  • Falls back to public page crawling when needed.
  • Saves one dataset item per job listing.
  • Deduplicates jobs by requisition ID, URL, or title/location/company.
  • Supports keyword, location, freshness, IT-role, and fresher/entry-level filters.
  • Can fetch job descriptions using CXS detail endpoints or public HTML pages.

Supported URLs

Examples:

https://company.wd1.myworkdayjobs.com/en-US/External
https://company.wd5.myworkdayjobs.com/en-US/Careers
https://wd1.myworkdaysite.com/en-US/recruiting/tenant/site

The actor supports common public Workday hosts such as:

  • myworkdayjobs.com
  • wd1.myworkdayjobs.com
  • wd3.myworkdayjobs.com
  • wd5.myworkdayjobs.com
  • myworkdaysite.com

Input

Key fields:

  • startUrls - Workday career URLs to scrape.
  • companyOverrides - Optional friendly company-name mapping by URL, tenant, or site.
  • keyword - Optional keyword search, for example software engineer.
  • location - Optional location filter, for example India.
  • country and cities - Optional location filters for cleaner country/city targeting.
  • remoteOnly - Keep only jobs detected as remote.
  • experienceLevel - all, fresher, entry_level, mid, or senior.
  • jobFunction - all, software, data, cloud, security, qa, support, or product.
  • maxItems - Maximum jobs to save for the whole run.
  • maxItemsPerSource - Optional per-company/source limit.
  • includeDescription - Fetch job descriptions when available.
  • descriptionMode - auto, cxs, html, or none.
  • postedWithinDays - Keep recently posted jobs only, when dates are available.
  • itOnly - Best-effort filter for IT/software/data/engineering roles.
  • fresherOnly - Best-effort filter for fresher, graduate, trainee, intern, and entry-level roles.
  • dedupeMode - requisitionId, url, titleLocationCompany, or none.
  • proxyConfiguration - Optional Apify proxy settings.

Example input:

{
"startUrls": [
{
"url": "https://relx.wd3.myworkdayjobs.com/en-US/relx"
}
],
"companyOverrides": {
"relx": "RELX"
},
"keyword": "software engineer",
"location": "India",
"country": "India",
"cities": ["Bengaluru", "Hyderabad", "Pune"],
"experienceLevel": "entry_level",
"jobFunction": "software",
"maxItems": 100,
"maxItemsPerSource": 25,
"includeDescription": true,
"descriptionMode": "auto",
"dedupeMode": "requisitionId"
}

Output

Each saved dataset item may include:

  • jobId
  • title
  • company
  • sourceCompany
  • requisitionId
  • tenant
  • site
  • location
  • locations
  • country
  • city
  • remoteType
  • workplaceType
  • isRemote
  • employmentType
  • timeType
  • jobFamily
  • jobCategory
  • detectedSeniority
  • detectedFunction
  • postedDate
  • jobUrl
  • applyUrl
  • descriptionHtml
  • description
  • requirements
  • salary
  • externalPath
  • detailApiUrl
  • sourceUrl
  • sourceType
  • scrapedAt

The actor also saves a RUN_SUMMARY record to the default key-value store with per-source counts and diagnostic information.

API Usage

Run from JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('YOUR_USERNAME/workday-jobs-scraper').call({
startUrls: [{ url: 'https://relx.wd3.myworkdayjobs.com/en-US/relx' }],
keyword: 'software engineer',
country: 'India',
maxItems: 50,
includeDescription: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with curl:

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~workday-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://relx.wd3.myworkdayjobs.com/en-US/relx"}],"maxItems":25}'

Cost Guidance

Pricing is pay per saved job listing plus a small start event. The actor only charges the result event when a job is saved to the default dataset. Use maxItems and maxItemsPerSource to control spend before running large source lists.

Examples:

  • maxItems: 25 saves up to 25 paid job listings.
  • maxItems: 100 saves up to 100 paid job listings.
  • maxItemsPerSource: 20 spreads results across companies instead of letting one employer consume the full run.

For fast runs:

{
"includeDescription": false,
"descriptionMode": "none",
"maxItemsPerSource": 25
}

For richer job descriptions:

{
"includeDescription": true,
"descriptionMode": "auto"
}

For fresher IT jobs:

{
"keyword": "software engineer",
"location": "India",
"country": "India",
"experienceLevel": "entry_level",
"jobFunction": "software",
"itOnly": true,
"fresherOnly": true,
"includeDescription": true
}

Reliability Notes

Workday implementations vary by company. Some tenants expose rich public CXS data, while others expose limited metadata or block public detail endpoints. The actor handles these differences best-effort and avoids saving incomplete records when required fields such as title or jobUrl are missing.

If a run returns no jobs:

  • Check that the URL is a public Workday career site.
  • Try removing restrictive filters such as postedWithinDays, itOnly, or fresherOnly.
  • Try descriptionMode: "none" for a faster listing-only run.
  • Use RUN_SUMMARY to see which sources returned jobs and which did not.

Local Development

npm install
npm run build
npm test
apify run
apify push

Compliance

This actor only targets publicly accessible job listings. It does not bypass login, CAPTCHA, paywalls, private APIs, or access controls. Use it responsibly and respect the target website's terms of service and applicable laws.