# Workday Jobs Scraper & API - Every Job, Salary & Remote (`surefeed/workday-jobs-scraper`) Actor

Get every job from any Workday careers site, beyond Workday's 2,000-job cap: title, locations, exact posted date, salary range, remote status, full description and apply link. Search by company name, keyword, country; only new jobs.

- **URL**: https://apify.com/surefeed/workday-jobs-scraper.md
- **Developed by:** [gianluca de dominicis](https://apify.com/surefeed) (community)
- **Categories:** Jobs, AI, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.33 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Workday Jobs Scraper & API - Every Job, Salary & Remote

Get **every job from any Workday careers site** — also past Workday's 2,000-results limit — with the **exact posting date**, the **salary range** as published, **remote / hybrid / on-site**, all locations, the full description and the apply link, as a spreadsheet, JSON or a live API. Type a **company name** or paste its careers site link.

> ⭐ **Found this Actor useful?** [Leave a review](https://apify.com/surefeed/workday-jobs-scraper/reviews) — it takes 30 seconds and helps other people find it.
>
> 🛠️ **Something not working?** [Open an issue](https://apify.com/surefeed/workday-jobs-scraper/issues) with the run link and we'll fix it within 24–48 hours.

**What you get for each job**

- 📋 Title, job ID, **every location**, country and country code, full-time / part-time, **remote / hybrid / on-site**
- 📅 **Exact posting date** (not just "Posted 30+ Days Ago") and the closing date when the site shows one
- 💵 **Salary range** — min, max, currency, per hour / month / year — plus the sentence it comes from
- 📝 Full description (text, optionally HTML) and the direct link to apply
- 🏢 **2,200+ companies by name** (NVIDIA, Bank of America, Walmart, Johnson & Johnson…) or any Workday careers site by link

**Quick start:** click **Start** without changing anything to get NVIDIA's 100 newest jobs (about $0.05). Then add your companies, keywords, locations and dates. No login or API key needed — you pay only per job returned.

Real results — NVIDIA, United States, October 2026:

| Job title | Locations | Posted on | Salary (USD/year) | Workplace |
|---|---|---|---|---|
| Principal Software Engineer - Rack Scale Systems Infrastructure | Santa Clara, CA + 4 remote US locations | 2026-10-08 | 272,000 – 431,250 | — |
| HPC Operations Engineer | Santa Clara, Westford, Austin, Durham | 2026-10-08 | 124,000 – 241,500 | — |
| Senior System Software Engineer, Replay and Simulation | Santa Clara, CA | 2026-10-08 | 152,000 – 287,500 | — |

#### Why this Workday scraper?

| Typical Workday scrapers | This Actor |
|---|---|
| Stop at 2,000 jobs: Workday never shows more per search, and past 2,000 it starts again from the first page | **Every job**: big boards are split by job category and merged without duplicates — **NVIDIA: 2,685 of 2,685 jobs**, where others report "about 2,000" |
| Unverified data | **Checked by hand in a browser: 20 of 20 jobs identical** on 4 companies (title, locations, posting date, job ID, full/part time, workplace type, closing date, salary) |
| "Posted 30+ Days Ago" | **Exact posting date**, and a **Posted in the last N days** filter checked against the date itself |
| Salary left inside the description | **Salary range extracted**: per hour / year, multi-level ranges merged ("Level 3 and Level 4"), Canadian, euro, pound and other currencies — **1,402 of 1,402** NVIDIA US jobs |
| You need the careers site link | **Search by company name** in our directory of 3,400+ Workday careers sites |
| Location filters that miss "United States of America" | **Locations as you write them** ("United States", "USA", "Germany", "California", "London"), applied as the site's own filter when possible; a job matches when any of its locations is there |
| Re-download everything every day | **Only new jobs**: schedule it daily and pay only for jobs you haven't received yet |

#### Use cases

- **AI agents**: "find remote data engineering jobs posted this week at Salesforce, CVS Health and NVIDIA, with salary" — one call.
- **Job boards and aggregators**: import complete, fresh listings from thousands of employers, with salary and exact dates.
- **Recruiters and sales teams**: see who is hiring, for which roles and where — a strong buying signal.
- **Labor-market and salary research**: published pay ranges by role, level, location and company.
- **Job seekers**: a daily alert of new roles at your target companies.

#### How to use

1. Add **Careers site URLs** (e.g. `https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite`) and/or **Or company names** (e.g. `Salesforce`, `Bank of America`).
2. Optional filters: **Search keywords**, **Job title must contain**, **Locations**, **Workplace type**, **Posted in the last N days**.
3. Set **Max jobs per site** (0 = every job).
4. Click **Start** and download the results as JSON, CSV or Excel, or fetch them via API.

#### Input

```json
{
    "companies": ["NVIDIA", "Salesforce"],
    "startUrls": ["https://wd1.myworkdaysite.com/recruiting/cvshealth/CVS_Health_Careers"],
    "titleKeywords": ["engineer", "scientist"],
    "locations": ["United States"],
    "workplaceTypes": ["remote", "hybrid"],
    "postedWithinDays": 7,
    "maxJobsPerSite": 0,
    "onlyNewJobs": false
}
```

#### Output

One item per job (real example from a run with Locations = United States, description shortened):

```json
{
    "company": "Salesforce",
    "title": "Partner & Agentforce Contact Center, Solution Consulting Director",
    "jobId": "JR354950",
    "url": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site/job/Washington---Remote/Partner---Agentforce-Contact-Center--Solution-Consulting-Director_JR354950",
    "location": "Washington - Remote",
    "locations": ["Washington - Remote", "Washington - Seattle Metro - Remote", "California - San Francisco Metro - Remote"],
    "country": "United States of America",
    "countryCode": "US",
    "workplaceType": "remote",
    "remoteType": "Remote Customer-Based",
    "timeType": "Full time",
    "postedDate": "2026-10-09",
    "postedAgo": "Today",
    "closingDate": null,
    "salaryMin": 171200,
    "salaryMax": 273000,
    "salaryCurrency": "USD",
    "salaryPeriod": "year",
    "salaryText": "The typical base salary range for this position is $171,200 - $273,000 annually.",
    "hiringEntity": "100 Salesforce, Inc.",
    "descriptionText": "To get the best candidate experience, please consider applying for a maximum of 3 roles…",
    "careersSite": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site",
    "boardTotalJobs": 531,
    "scrapedAt": "2026-10-09T14:51:22.367Z"
}
```

| Field | Meaning |
|---|---|
| `postedDate` | Exact date the job was posted (`postedAgo` is the site's own wording) |
| `closingDate` | Last day to apply, when the site shows one |
| `workplaceType` | `remote`, `hybrid` or `onsite` — from the site's remote type, or all locations being remote; `null` when the site doesn't say |
| `salaryMin` / `salaryMax` | Published pay range; several levels in one sentence are merged into one range; `null` when no range is published |
| `salaryPeriod` | `hour`, `month` or `year` |
| `salaryText` | The sentence the salary comes from — e.g. "For Poland: …" when a multi-country job publishes the range of one country |
| `boardTotalJobs` | Jobs on the careers site for your search and location (the real number, also above 2,000) |
| `hiringEntity` | The legal entity as Workday names it (often an internal code) |

#### How much does it cost?

**Pay per event** — no monthly rental, no start fee, no proxy or compute surcharge:

- **Job** — each job returned with its details: **$0.50 per 1,000**.

Examples: NVIDIA's 2,685 jobs ≈ $1.34; 100 new jobs a day from 10 companies ≈ $1.50 a month. Set **Max cost per run** for a hard cap on spending.

#### Automate & integrate

Schedule a daily run with **Only new jobs** on, trigger webhooks, or send results to Google Sheets, Slack, Make, Zapier or n8n. Call it from any language through the Apify API.

#### Use with AI assistants (MCP)

Add this Actor as a tool to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server (`https://mcp.apify.com`). Your assistant can then search company job openings on demand.

#### Agent-ready: autonomous payments (x402 & Skyfire)

AI agents can discover, run and pay for this Actor on their own — no Apify account or API key needed — using x402 (USDC on Base) or Skyfire.

#### FAQ

**Which companies can I scrape?**
Any company whose careers site runs on Workday (the link contains `myworkdayjobs.com` or `myworkdaysite.com`). 2,200+ companies can also be found by name; if a name isn't found, paste the careers site link.

**How do you get past the 2,000-job limit?**
Workday shows at most 2,000 results per search. When a search hits that limit, the Actor repeats it once per job category (each under 2,000) and merges the results without duplicates. On NVIDIA it returned all 2,685 jobs.

**How accurate is the data?**
We compared 20 jobs from NVIDIA, Salesforce, CVS Health and Adobe with their pages in a browser (October 2026): title, locations, posting date, job ID, time type, workplace type, closing date and salary were identical on all 20. The **Posted in the last N days** and **Locations** filters were checked against a full independent count (Adobe, US, last 7 days: 26 of 26).

**Why does the workplace filter return nothing for some companies?**
Some careers sites (Adobe, for example) don't state whether a job is remote, hybrid or on-site. We don't guess from the description, so `workplaceType` is `null` there and **Workplace type** leaves those jobs out. Leave the filter empty for such companies.

**Why is the salary empty on some jobs?**
Only some postings publish a range — several US states (e.g. California, New York, Washington, Colorado) and some Canadian provinces require it, many countries don't. We never estimate: no range in the posting, no salary. If a posting has a typo like "$164,000 - $161,500", it is left empty rather than guessed.

**How fast is it?**
About 300 jobs with full details in 40 seconds; a 2,685-job board in a few minutes.

**Is it legal to scrape Workday careers sites?**
The Actor only reads public job postings, the same data the careers site shows to every visitor, without logging in. Check the site's terms and your local laws for your use case.

**Something is broken — what now?**
Open an issue on the **Issues** tab with the run link. We usually fix problems within 24–48 hours.

#### More tools from us

- [Kleinanzeigen Scraper & API](https://apify.com/surefeed/kleinanzeigen-scraper) — every listing for any search on Kleinanzeigen.de, past the 1,250 limit, with price drops and only-new monitoring.
- [Google Hotels Scraper & API](https://apify.com/surefeed/google-hotels-scraper) — hotel prices with taxes, every booking site's offer, and hotels near any address.
- [Google Flights Scraper & API](https://apify.com/surefeed/google-flights-scraper) — fares, stops, layovers and CO2 emissions for any route, flexible dates.
- [Google Trends Scraper & API](https://apify.com/surefeed/google-trends-scraper) — interest over time, by region, related queries and trending searches.
- [Google Play Scraper & API](https://apify.com/surefeed/google-play-scraper) — Android app data, star histograms and reviews.
- [App Store Scraper & API](https://apify.com/surefeed/app-store-scraper) — iPhone app data, star histograms, top charts and reviews in 150+ countries.
- [Eventbrite Scraper & API](https://apify.com/surefeed/eventbrite-scraper) — every event in any city or online, with ticket prices, sold out and organizer details.

#### Legal

**Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Workday, Inc. or any employer whose jobs it reads. It only collects publicly available job postings. All trademarks belong to their respective owners.

# Actor input Schema

## `startUrls` (type: `array`):

One Workday careers site per line, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Any page of the site works, also a link with filters already set on the site (they are kept).

## `companies` (type: `array`):

Optional: company names (e.g. Salesforce, Adobe) looked up in our directory of thousands of Workday careers sites. If a name is not found, paste its careers site link instead.

## `searchText` (type: `string`):

Optional: searched by the careers site itself, like its search box (e.g. data engineer). Leave empty for all jobs, newest first.

## `titleKeywords` (type: `array`):

Keep only jobs whose title contains one of these words (e.g. engineer, analyst). Stricter than the site's search, which also matches descriptions.

## `locations` (type: `array`):

Countries, states or cities, e.g. United States, Germany, California, London. Applied as the site's own location filter when it has one, otherwise matched on each job's locations. A job matches when any of its locations is there.

## `workplaceTypes` (type: `array`):

Keep only remote, hybrid or on-site jobs (from the site's remote-type field, or locations that are all remote). Jobs whose type the site does not state are left out when this is set.

## `postedWithinDays` (type: `integer`):

Only jobs posted in the last N days (exact posting date). 0 = any date.

## `maxJobsPerSite` (type: `integer`):

Stop after this many jobs per careers site. 0 = every job, also past Workday's 2,000-results limit.

## `includeDescription` (type: `boolean`):

The full job description as plain text. Turn off for a lighter dataset; salary and dates are still extracted.

## `includeDescriptionHtml` (type: `boolean`):

Also the description with its original formatting (HTML).

## `onlyNewJobs` (type: `boolean`):

Return only jobs not returned by your previous runs with the same sites and search. Ideal for a daily schedule: you pay only for new jobs.

## `proxyConfiguration` (type: `object`):

Not needed: Workday careers sites answer directly. Use it only if a site blocks your runs.

## Actor input object example

```json
{
  "startUrls": [
    "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
  ],
  "postedWithinDays": 0,
  "maxJobsPerSite": 100,
  "includeDescription": true,
  "includeDescriptionHtml": false,
  "onlyNewJobs": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Items produced by the run.

## `runSummary` (type: `string`):

Duration, charged events and whether the spending limit was reached.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("surefeed/workday-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"] }

# Run the Actor and wait for it to finish
run = client.actor("surefeed/workday-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
  ]
}' |
apify call surefeed/workday-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,surefeed/workday-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3IOqI8nKpYfMdWH6P/builds/GORAFAuRuurAglfeo/openapi.json
