# Workday Jobs Search Scraper (`jobsapi/workday-jobs-search-scraper`) Actor

Scrape job listings from Workday (via MyWorkdayJobs.com). Extract job titles, companies, locations, employment types, and descriptions from organizations using Workday HCM for recruitment intelligence.

- **URL**: https://apify.com/jobsapi/workday-jobs-search-scraper.md
- **Developed by:** [Jobs API](https://apify.com/jobsapi) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 job details

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Workday Jobs Search Scraper

Extract job listings from Workday - the enterprise human capital management platform. Collect job titles, companies, locations, and descriptions from Workday-powered career sites.

### Features

- **Keyword search** — find jobs by keyword, search term, or role
- **Location filtering** — narrow results to specific cities, regions, or countries

### Use Cases

- **Enterprise hiring pattern analysis** — monitor Workday-hosted job postings to track hiring volumes, role types, and organizational growth across large enterprises
- **Large-company recruitment intelligence** — collect and analyze job data from Fortune 500 companies using the Workday ATS
- **Corporate talent acquisition research** — study hiring demand, required skills, and compensation trends across major corporations
- **Multi-national employer trend tracking** — compare hiring activity across global organizations that use Workday as their HR platform

### Sample Input

```json
{
  "countryName": "United States",
  "targetLocations": ["New York", "San Francisco"],
  "companyName": "",
  "locationName": "New York",
  "includeKeyword": "Software Engineer",
  "pagesToFetch": 1,
  "jobType": "FULLTIME",
  "datePosted": "all",
  "timeRange": "7d",
  "limit": 10,
  "descriptionType": "text",
  "hasSalary": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Sample Output

```json
{
  "jobTitle": "Software Engineer III",
  "companyName": "GlobalTech Corp",
  "location": "San Francisco, CA",
  "postedDate": "2026-06-21",
  "jobUrl": "https://workday.wd5.myworkdayjobs.com/12345",
  "description": "As a Software Engineer III at GlobalTech, you will design and build scalable distributed systems that power our platform.",
  "searchQuery": "Software Engineer",
  "searchLocation": "New York",
  "scrapedAt": "2026-06-24T12:00:00.000Z",
  "id": 98765,
  "title": "Software Engineer III",
  "organization": "GlobalTech Corp",
  "employment_type": "FULL_TIME",
  "url": "https://workday.wd5.myworkdayjobs.com/12345",
  "source_type": "workday",
  "locations_derived": ["San Francisco, California, United States"],
  "ai_work_arrangement": "On-site",
  "ai_experience_level": "2-5",
  "ai_employment_type": ["FULL_TIME"],
  "ai_job_language": "English"
}
```

### Input

| Field | Type | Default | Required | Description |
|-------|------|---------|----------|-------------|
| `query` | string | `developer` |  | Enter your search query (e.g., developer, engineer, etc.). |
| `keywords` | string | — |  | Alternative search keywords (e.g., React, Node.js). |
| `maxItems` | integer | `10` |  | Maximum number of job listings to return. |
| `proxyConfiguration` | object | `{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}` |  | Proxy settings. Apify Residential proxy recommended. |

### Output

| `liOrganizationEmployeesLte` | integer | - |  | Maximum number of employees in the company |
| `liOrganizationEmployeesGte` | integer | - |  | Minimum number of employees in the company |
| `datePostedAfter` | string | - |  | Filter jobs posted on or after a specific date. |
| `liIndustryExclusionFilter` | array | - |  | Exclude jobs from these LinkedIn industries. |
| `liOrganizationSizeFilter` | array | - |  | Filter by LinkedIn company-size bucket. |
| `aiLanguageFilter` | array | - |  | Filter by the AI-detected language of the job description. |
| `hasNoLocation` | boolean | `false` |  | When true, returns only jobs with no normalized location. |
| `includeLinkedIn` | boolean | - |  | Deprecated alias of includeCompanyDetails. |
| `remote only (legacy)` | boolean | - |  | Deprecated in favor of AI Work Arrangement. |
| `aiHasSalary` | boolean | - |  | Deprecated alias of hasSalary. |
| `proxyConfiguration` | object | Apify Residential |  | Proxy settings for the scraper. Apify Residential proxy is recommended for best results. |

### Output

| Field | Description |
|-------|-------------|
| `jobTitle` | Job Title |
| `companyName` | Company Name |
| `location` | Job Location |
| `postedDate` | Posted Date |
| `jobUrl` | Job URL |
| `description` | Job Description |
| `searchQuery` | search Query |
| `searchLocation` | search Location |
| `scrapedAt` | scraped At |
| `id` | ID |
| `date_posted` | Date Posted |
| `date_created` | Date Created |
| `title` | Title |
| `organization` | Organization |
| `organization_url` | Organization URL |
| `date_valid_through` | Valid Through |
| `locations` | Locations |
| `locations_alt` | Alternative Locations |
| `location_type` | Location Type |
| `location_requirements` | Location Requirements |
| `salary` | Salary |
| `employment_type` | Employment Type |
| `url` | URL |
| `source_type` | Source Type |
| `source` | Source |
| `source_domain` | Source Domain |
| `organization_logo` | Organization Logo |
| `org_logo_permalink` | Organization Logo (permalink) |
| `cities_derived` | Cities |
| `regions_derived` | Regions |
| `countries_derived` | Countries |
| `counties_derived` | Counties |
| `locations_derived` | Derived Locations |
| `timezones_derived` | Timezones |
| `lats_derived` | Latitudes |
| `lngs_derived` | Longitudes |
| `domain_derived` | Domain Derived |
| `date_modified` | Date Modified |
| `modified_fields` | Modified Fields |
| `description_text` | Description |
| `description_html` | Description HTML |
| `ai_salary_currency` | AI: Salary Currency |
| `ai_salary_value` | AI: Salary Value |
| `ai_salary_min_value` | AI: Min Salary |
| `ai_salary_max_value` | AI: Max Salary |
| `ai_salary_unit_text` | AI: Salary Unit |
| `ai_benefits` | AI: Benefits |
| `ai_experience_level` | AI: Experience Level |
| `ai_work_arrangement` | AI: Work Arrangement |
| `ai_work_arrangement_office_days` | AI: Office Days |
| `ai_remote_location` | AI: Remote Location |
| `ai_remote_location_derived` | AI: Derived Remote Location |
| `ai_key_skills` | AI: Key Skills |
| `ai_hiring_manager_name` | AI: Hiring Manager |
| `ai_hiring_manager_email_address` | AI: Hiring Manager Email |
| `ai_core_responsibilities` | AI: Core Responsibilities |
| `ai_requirements_summary` | AI: Requirements Summary |
| `ai_working_hours` | AI: Working Hours |
| `ai_employment_type` | AI: Employment Types |
| `ai_job_language` | AI: Job Language |
| `ai_visa_sponsorship` | AI: Visa Sponsorship |
| `ai_keywords` | AI: Keywords |
| `ai_taxonomies_a` | AI: Taxonomies |
| `ai_education` | AI: Education Requirements |
| `org_linkedin_name` | LinkedIn: Organization Name |
| `org_linkedin_headcount` | LinkedIn: Organization Employees |
| `org_linkedin_website` | LinkedIn: Organization URL |
| `org_linkedin_size` | LinkedIn: Organization Size |
| `org_linkedin_slogan` | LinkedIn: Organization Slogan |
| `org_linkedin_industry` | LinkedIn: Organization Industry |
| `org_linkedin_followers` | LinkedIn: Organization Followers |
| `org_linkedin_headquarters` | LinkedIn: Organization Headquarters |
| `org_linkedin_type` | LinkedIn: Organization Type |
| `org_linkedin_founded_date` | LinkedIn: Organization Founded Date |
| `org_linkedin_specialties` | LinkedIn: Organization Specialties |
| `org_linkedin_locations` | LinkedIn: Organization Locations |
| `org_linkedin_description` | LinkedIn: Organization Description |
| `org_linkedin_slug` | LinkedIn: Organization Slug |
| `org_linkedin_recruitment_agency_derived` | LinkedIn: Recruitment Agency |
| `org_crunchbase_categories` | Crunchbase: Categories |
| `org_crunchbase_total_investment` | Crunchbase: Total Investment (USD) |

### Notes

- **Proxy**: Residential proxy is highly recommended — set `proxyConfiguration: { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }`
- **Rate limits**: Keep result limits reasonable per run to avoid IP bans
- **Scheduling**: Use Apify Scheduler to run this actor on a recurring basis for a consistently fresh dataset

# Actor input Schema

## `query` (type: `string`):

Enter your search query (e.g., developer, engineer, etc.)

## `keywords` (type: `string`):

Alternative search keywords

## `maxItems` (type: `integer`):

Maximum number of job listings to return.

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

Optionally, use Apify Proxy or custom HTTP proxy to avoid IP address-based blocking.

## Actor input object example

```json
{
  "query": "developer",
  "keywords": "React, Node.js",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "query": "developer",
    "keywords": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IN"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jobsapi/workday-jobs-search-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 = {
    "query": "developer",
    "keywords": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IN",
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "query": "developer",
  "keywords": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}' |
apify call jobsapi/workday-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jobsapi/workday-jobs-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Nd21YOutH9TzOeqSe/builds/fzhwQxb4gh0IGfuwj/openapi.json
