Skip to the content.

Workday Jobs Scraper & API

▶ Run it on Apify: no install, no login to any data source. Apify’s free plan includes monthly credit, enough for small runs.

Extract every open job from any company that hires with Workday: title, department, location, remote/hybrid/on-site, employment type, salary range, posting date, apply link and the full description. Works with NVIDIA, Salesforce, Adobe, Intel, Walmart and most of the Fortune 500.

Who uses it

How to use it

  1. Add one or more companies. Workday career site URLs, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite or https://wd1.myworkdaysite.com/recruiting/company/site. No list? Leave Companies empty and add title keywords (for example data engineer) to search every Workday company in our directory (3,500+ companies).
  2. Optionally filter by title keywords, locations, departments, remote only, posting date, experience level, employment type, minimum salary, words in the description or visa sponsorship (only jobs that say they sponsor visas).
  3. Click Start. Download the results as JSON, CSV, Excel or connect them to Google Sheets, Zapier, Make, n8n or your own app via API.

Example input

{
    "companies": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite","https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"],
    "keywords": ["engineer"],
    "locations": ["Remote", "New York"],
    "onlyNewJobs": false
}

Output

Each job is one item:

{
    "ats": "workday",
    "company": "Example Inc",
    "companySlug": "example",
    "jobId": "4012345",
    "title": "Senior Software Engineer, Payments",
    "department": "Engineering",
    "team": null,
    "location": "New York, NY",
    "locations": ["New York, NY", "Remote (US)"],
    "country": "US",
    "workplaceType": "hybrid",
    "isRemote": false,
    "employmentType": "full-time",
    "seniority": "senior",
    "salaryMin": 180000,
    "salaryMax": 240000,
    "salaryCurrency": "USD",
    "salaryPeriod": "year",
    "salaryText": "$180,000 - $240,000",
    "postedAt": "2026-10-28T14:52:05.000Z",
    "updatedAt": "2026-10-30T09:12:00.000Z",
    "url": "https://...",
    "applyUrl": "https://...",
    "description": "About the role ...",
    "scrapedAt": "2026-11-03T20:23:21.879Z"
}
Field Description
workplaceType remote, hybrid, onsite or null when the posting does not say
seniority Detected from the title: intern, junior, mid, senior, lead, manager, director, executive
salaryMin / salaryMax Numbers parsed from the posting’s pay range (when the company publishes one)
salaryPeriod year, month, week, day or hour
description Plain text by default; choose Markdown, HTML or none in the input
visaSponsorship true when the description says visas are sponsored, false when it says they are not, null when it does not say

A SUMMARY record in the run’s key-value store lists how many jobs were found per company and any company that could not be loaded.

Pricing

You pay $1.50 per 1,000 jobs saved to the dataset, plus a tiny fee per run start. Filters are applied before saving, so you never pay for jobs you filtered out. Use Max jobs in total to cap the cost of any run.

Monitoring mode (only new jobs)

Turn on Only new jobs and schedule the Actor (for example every morning). Each run returns only openings that were not returned before, so you can pipe them straight into Slack, email or a spreadsheet. The list of already-seen jobs is stored in a named key-value store in your own Apify account.

🧹 Closed jobs, free: in monitoring mode each run also writes a CLOSED_JOBS record listing the jobs you received earlier that are no longer open (job ID, title, URL and when the closure was detected). Job boards use it to remove expired listings. Closed jobs are not charged.

FAQ

Is this an alternative to a LinkedIn or Indeed jobs scraper? Yes, and a safer one. Most jobs you see on LinkedIn and Indeed are first published on the employer’s own career site (Greenhouse, Lever, Workday and the other ATS this Actor reads), so you get the same openings from the original source, usually earlier and with the full description, salary range and direct apply link. No LinkedIn or Indeed account, cookies, proxies or login are needed, nothing is scraped from those sites, and there are no blocked runs or duplicated reposts. This Actor is not affiliated with LinkedIn or Indeed.

Is it legal? The Actor reads public job postings that companies publish so that anyone can see them, using the public JSON endpoints that power every Workday career site. It does not log in and does not collect personal data. As always, use the data in line with the laws that apply to you.

How do I find a company’s Workday board? Open the company’s careers page and click any job. If the link goes to a Workday page, paste that URL here.

Why did a company return 0 jobs? Either it has no open roles right now, or it moved to another applicant tracking system. Check the SUMMARY record of the run.

Use it from your code, AI agents and automations

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("richiedc95/workday-jobs-scraper").call(run_input={
    "companies": [
        "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
        "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"
    ],
    "keywords": [
        "engineer"
    ],
    "onlyNewJobs": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

JavaScript

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('richiedc95/workday-jobs-scraper').call({
    "companies": [
        "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
        "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"
    ],
    "keywords": [
        "engineer"
    ],
    "onlyNewJobs": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Get a fresh feed automatically (job boards, dashboards, alerts)

  1. Click Save as a new task with your input (turn on the monitoring option if the Actor has one, so each run returns only new jobs).
  2. Add a schedule to the task (hourly, daily or weekly) under Schedules.
  3. Read the latest results from one stable URL, in the format your tool expects:
https://api.apify.com/v2/actor-tasks/<TASK_ID>/runs/last/dataset/items?token=<YOUR_APIFY_TOKEN>&status=SUCCEEDED&format=csv

Use format=json, csv, xlsx, xml or rss. Job-board plugins and spreadsheets can import that URL directly.

Run it

Job Data APIs: Company Career Sites, ATS Job Boards and Job Search · All data APIs