# Adecco Jobs Search Scraper (`alexist/adecco-jobs-search-scraper`) Actor

Scrape comprehensive job listings from Adecco.com's global job search platform. Collect job titles, salary data, employment types, experience levels, locations, and 70+ detailed fields per listing — perfect for recruiters, workforce analytics, and labor market research.

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

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Adecco Jobs Search Scraper: Extract Global Job Data with Ease

***

### What Is Adecco.com?

Adecco is one of the world's largest staffing and recruitment platforms, connecting millions of job seekers with employers across 60+ countries. Its job search engine hosts diverse roles spanning healthcare, IT, finance, manufacturing, and administrative functions. Manually extracting job market data from Adecco is inefficient — the **Adecco Jobs Search Scraper** automates large-scale data collection, delivering structured intelligence from search result pages in minutes.

***

### Overview

The **Adecco Jobs Search Scraper** extracts job listings from Adecco.com search results pages, converting HTML listings into clean, structured records with 70+ fields per job. It is designed for:

- **Recruiters & staffing agencies** monitoring market supply and competitor postings
- **Workforce analysts** tracking hiring trends across regions and industries
- **Data scientists** building labor market datasets for forecasting models
- **Job aggregators** feeding diverse job sources into unified platforms

Key strengths include handling multiple search result pages, configurable item limits, robust error handling, and comprehensive output spanning salary, location, experience, employment type, and company details.

***

### Input Format

The scraper accepts a JSON configuration object with three main parameters:

```json
{
  "urls": [
    "https://www.adecco.com/en-us/job-search?pg=2"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Field | Description |
|---|---|
| `urls` | Array of Adecco job search result page URLs. Can include pagination parameters (e.g., `?pg=2`). Add multiple URLs to scrape across different searches, locations, or filters. |
| `max_items_per_url` | Maximum number of job listings to extract per URL (e.g., `200`). Limits run cost and duration. |
| `ignore_url_failures` | If `true`, the scraper skips failed URLs and continues processing; if `false`, stops on the first failure. Recommended: `true` for bulk runs. |

> **Tip:** Build your search URL on Adecco.com using filters (job title, location, experience level), then paste the resulting URL into the `urls` array.

***

### Output Format

Each scraped job returns a comprehensive record with 70+ fields organized by category:

#### Core Identification

| Field | Meaning |
|---|---|
| `Job ID` | Unique Adecco identifier for the job posting |
| `CIS Job ID` | Internal system ID for cross-reference |
| `Job Alert ID` | Associated job alert identifier (if created through alerts) |
| `External System Job ID` | ID from the original client or external system |
| `External Reference` | Client-provided reference code |
| `Apply URI` | Direct URL to submit an application |

#### Job Title & Classification

| Field | Meaning |
|---|---|
| `Job Title` | Official job title as displayed on Adecco |
| `Brand Name` | Recruiting brand or subsidiary name under Adecco |
| `Job Category Title` | Primary category (e.g., "IT", "Healthcare") |
| `Job Category ID` | Numeric ID for the category |
| `Job Sub Category Title` | Specific subcategory (e.g., "Software Engineer" under IT) |
| `Job Sub Category ID` | Numeric ID for the subcategory |
| `Industry Type Title` | Industry sector (e.g., "Technology", "Finance") |
| `Industry Type ID` | Numeric ID for the industry |
| `Parent Industry Title` | Broader industry classification |
| `Parent Industry ID` | Numeric ID for parent industry |
| `Practice Title` | Practice area or service line |
| `Practice ID` | Numeric ID for the practice |
| `Business Line` | Business division offering the role |

#### Employment & Contract Details

| Field | Meaning |
|---|---|
| `Job Type` | Role classification (permanent, contract, temporary) |
| `Job Type ID` | Numeric ID for job type |
| `Employment Type Title` | Employment classification (full-time, part-time, etc.) |
| `Employment Type ID` | Numeric ID for employment type |
| `Contract Type Title` | Contract structure (e.g., "Direct Hire", "Temp to Perm") |
| `Contract Type ID` | Numeric ID for contract type |
| `Contract Duration Title` | Expected contract length or availability |
| `Contract Duration ID` | Numeric ID for contract duration |
| `Number Of Positions` | Number of open vacancies |
| `Organization Type` | Type of employing organization |
| `Work Frequency ID` | Work schedule frequency ID |
| `Work Min Hours` | Minimum weekly working hours |
| `Work Max Hours` | Maximum weekly working hours |

#### Compensation

| Field | Meaning |
|---|---|
| `Min Salary` | Minimum offered salary |
| `Max Salary` | Maximum offered salary |
| `Salary Currency` | Currency code (e.g., "USD", "EUR") |
| `Salary Currency Symbol` | Currency symbol (e.g., "$", "€") |
| `Salary Time Scale` | Salary period (hourly, daily, annual) |
| `Salary Time Scale ID` | Numeric ID for time scale |

#### Location & Geography

| Field | Meaning |
|---|---|
| `Job Location` | Full location text as displayed |
| `City Name` | City of the job location |
| `State Name` | State or province |
| `Country ID` | Numeric country identifier |
| `Published Region Code ID` | Region code for publishing purposes |
| `Branch Code` | Office branch code |
| `Work Location` | Type of work environment (on-site, remote, hybrid) |
| `Work Location Title` | Human-readable work location descriptor |
| `Is Remote` | Boolean flag indicating remote eligibility |
| `Accommodation` | Relocation or accommodation support offered |

#### Experience & Requirements

| Field | Meaning |
|---|---|
| `Experience Level` | Required experience (entry, mid, senior, executive) |
| `Experience Duration Title` | Years or duration of experience required |
| `Experience Duration ID` | Numeric ID for experience duration |
| `Education Level Title` | Minimum education required (high school, bachelor, master, etc.) |
| `Language` | Primary language of the listing |

#### Job Dates & Timeline

| Field | Meaning |
|---|---|
| `Job Creation Date` | When the posting was created in Adecco's system |
| `Posted Date` | When the job was published to candidates |
| `First Posted Date` | Original publication date (if reposted) |
| `Job End Date` | When the posting expires or closes |
| `Posting End Date` | Final date to accept applications |
| `Start Date` | Proposed job start date for the candidate |
| `Vacancy Start ASAP` | Boolean flag for immediate start availability |

#### Job Content & Description

| Field | Meaning |
|---|---|
| `Description` | Full job description provided by Adecco |
| `Client Job Description` | Original description from the hiring client |
| `Shift Type IDs` | Identifiers for shift patterns (if applicable) |
| `Shift Titles` | Shift type descriptions (day, night, rotating, etc.) |
| `Is Seasonal` | Boolean indicating if the role is seasonal |
| `Is Event` | Boolean indicating if the role is event-based |

#### User & Client Information

| Field | Meaning |
|---|---|
| `Saved As Favorite` | Boolean indicating user favorited status |
| `Client ID` | Unique identifier for the hiring client/company |
| `Recruiter Name` | Name of the assigned recruiter or hiring manager |
| `Web Site` | Client's website URL |

#### Metadata & System Fields

| Field | Meaning |
|---|---|
| `Process ID` | Internal process tracking identifier |
| `Apply Redirection Key` | Key used for application flow routing |
| `Type Reference` | Type classification reference |
| `Type Ref Exclusivity` | Exclusivity flag for type reference |

***

### How to Use

1. **Build your search** — Go to Adecco.com and use the job search filters (title, location, experience, salary range, job type, industry). Once you have your desired results page, copy the full URL.

2. **Prepare URLs** — Add one or more search URLs to the `urls` array. Example:
   ```
   https://www.adecco.com/en-us/job-search?keywords=Software&pg=1
   https://www.adecco.com/en-us/job-search?keywords=Software&pg=2
   https://www.adecco.com/en-gb/job-search?location=London&pg=1
   ```

3. **Set scraping limits** — Configure `max_items_per_url` (e.g., `200`) to control data volume and runtime.

4. **Handle failures** — Set `ignore_url_failures: true` to skip broken links and continue processing remaining URLs.

5. **Launch the scraper** — Start the actor and monitor logs for progress.

6. **Export & use** — Download results in JSON, CSV, or Excel and integrate into your analysis, database, or BI tools.

**Common tips:**

- Each Adecco search result page typically shows 20–30 listings. Set `max_items_per_url: 200` to capture the full page.
- Pagination URLs use the `pg` parameter (e.g., `pg=1`, `pg=2`). Manually add multiple URLs for multi-page scrapes, or use a single URL with high `max_items_per_url`.
- Salary data may be absent for some roles; use `Min Salary` and `Max Salary` with conditional logic in your analysis.

***

### Use Cases & Business Value

- **Market intelligence:** Track salary trends, hiring demand, and job distribution across sectors and geographies
- **Competitive recruitment:** Monitor which companies are hiring, what positions are open, and employment type preferences
- **Workforce planning:** Identify skills in demand and experience level requirements
- **Labor research:** Build datasets for academic or consulting studies on employment markets
- **Job aggregation:** Feed Adecco data into multi-source job boards or career search platforms

The Adecco Jobs Search Scraper transforms hours of manual browsing and data entry into seconds of automated extraction, providing the scale and consistency required for serious market analysis.

***

### Conclusion

The **Adecco Jobs Search Scraper** is your gateway to structured global employment data. With 70+ fields per listing and support for multi-page searches, it enables rapid market research, competitive intelligence, and workforce analytics. Whether you're a recruiter, analyst, or developer, this scraper delivers the data depth and breadth needed to make informed hiring and business decisions.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.adecco.com/en-us/job-search?pg=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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 = {
    "urls": [
        "https://www.adecco.com/en-us/job-search?pg=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/adecco-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 = {
    "urls": ["https://www.adecco.com/en-us/job-search?pg=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/adecco-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 '{
  "urls": [
    "https://www.adecco.com/en-us/job-search?pg=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/adecco-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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