# Recruitee Jobs Scraper - ATS Hiring Data (`benthepythondev/recruitee-jobs-scraper`) Actor

Scrape Recruitee-hosted job boards: title, company, department, location, employment type, remote/hybrid flags, careers URL and description.

- **URL**: https://apify.com/benthepythondev/recruitee-jobs-scraper.md
- **Developed by:** [ben](https://apify.com/benthepythondev) (community)
- **Categories:** Jobs, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 💼 Recruitee Jobs Scraper - ATS Hiring Data

Scrape public job listings from **Recruitee-hosted career pages** in one run. Get job titles, company boards, departments, locations, employment type, remote/hybrid/on-site flags, careers URLs, created dates and cleaned descriptions from Recruitee's public offers API. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

### 🔎 What is the Recruitee Jobs Scraper?

Recruitee is an applicant tracking system used by companies to host public career pages at URLs like `https://bunq.recruitee.com`. Those pages expose active job offers through a JSON endpoint, which makes them a strong source for reliable hiring data without browser automation.

This actor turns one or many Recruitee company boards into a structured dataset. It is useful for recruiters, sales teams, job-board builders, talent intelligence teams and researchers who need current open roles from companies using Recruitee.

#### What data does it extract?

- **Job title** - public Recruitee offer title.
- **Company board** - the Recruitee subdomain searched.
- **Department** - hiring department where available.
- **Location fields** - city, state, country, postal code and combined location.
- **Workplace signals** - remote, hybrid and on-site flags.
- **Employment type and experience** - Recruitee employment and experience codes.
- **Job URL** - direct careers page URL for the offer.
- **Created and updated dates** - useful for freshness and alerting.
- **Description** - cleaned text from the public offer summary or description.
- **Stable ID** - Recruitee GUID/slug for deduplication.

### ⬇️ Input

| Field | Type | Description |
| --- | --- | --- |
| `companies` | array | Recruitee subdomains or full Recruitee URLs. |
| `keyword` | string | Optional keyword filter matched against title, department, location and description. |
| `includeDescriptions` | boolean | Include cleaned descriptions in the dataset. |
| `maxResults` | integer | Maximum offers to return across all companies. |

#### Example input

```json
{
  "companies": ["bunq", "personio"],
  "keyword": "data",
  "includeDescriptions": true,
  "maxResults": 100
}
````

You can also paste a full Recruitee URL:

```json
{
  "companies": ["https://bunq.recruitee.com"],
  "maxResults": 25
}
```

### ⬆️ Output

Each dataset item is one public Recruitee offer.

```json
{
  "id": "373pc",
  "title": "Reporting Expert",
  "company": "bunq",
  "department": "Support & Operations",
  "location": "Amsterdam, Noord-Holland, Netherlands",
  "city": "Amsterdam",
  "state": "Noord-Holland",
  "country": "Netherlands",
  "employment_type": "fulltime_fixed_term",
  "experience": "experienced",
  "is_remote": false,
  "is_hybrid": true,
  "is_on_site": false,
  "created_at": "2026-06-16 12:52:23 UTC",
  "job_url": "https://careers.bunq.com/o/reporting-expert",
  "slug": "reporting-expert",
  "description": "At bunq, we don't solve growth by hiring more people...",
  "description_short": "At bunq, we don't solve growth by hiring more people...",
  "source": "recruitee"
}
```

### 💡 Use cases

- **Recruiting lead generation** - discover companies hiring for roles in a target function or market.
- **Sales triggers** - open roles can signal growth, new budgets and operational pain.
- **Job aggregation** - add Recruitee companies to a broader jobs feed.
- **Market mapping** - track hiring by geography, department, seniority and work model.
- **Competitive intelligence** - monitor how quickly target companies expand teams.
- **Automation** - send new roles to Google Sheets, Airtable, HubSpot, Clay, Make, Zapier or n8n.

### 🧭 How to use the data

Start with a focused list of Recruitee companies you care about. Run the actor daily and use `company:id` or `job_url` as your deduplication key. New rows can become alerts for recruiters, SDRs, investors or market researchers.

For broad ATS coverage, pair this actor with Greenhouse, Lever, Workday, Ashby, Workable, SmartRecruiters and HiringCafe scrapers. Recruitee is especially useful in European startup and scaleup markets, where hosted career pages often expose structured offers quickly and reliably.

The default companies are chosen because they return live offers from the public API. If a company slug returns zero jobs or 404, it usually means that employer is no longer using Recruitee or has moved to another careers platform.

### ❓ FAQ

**Does this require a Recruitee account?** No. It reads public Recruitee career-page data only.

**Does it use a browser?** No. The actor calls the public offers JSON endpoint directly for speed and reliability.

**Can I scrape multiple company boards?** Yes. Add several company slugs or URLs in `companies`.

**How do I find the company slug?** In `https://bunq.recruitee.com`, the slug is `bunq`.

**Why do some companies return 404?** Many companies migrate between ATS providers. A 404 means the provided Recruitee subdomain is not active.

**Can I filter by keyword?** Yes. The actor filters title, department, location and description when `keyword` is provided.

**Is this good for lead generation?** Yes. Hiring activity is a strong growth signal, and the output includes company board, role, department and location.

**Does it include full descriptions?** It includes cleaned public descriptions when available. You can disable descriptions to reduce dataset size.

**Is it legal to scrape Recruitee jobs?** The actor collects publicly available job posts. You are responsible for using the output lawfully and respecting employment, privacy, anti-spam and platform rules.

**How do I avoid duplicates?** Use `company` plus `id`, or use `job_url` as a stable key.

### 🔗 You might also like

- [Ashby Jobs Scraper](https://apify.com/benthepythondev/ashby-jobs-scraper)
- [Greenhouse Jobs Scraper](https://apify.com/benthepythondev/greenhouse-jobs-scraper)
- [Lever Jobs Scraper](https://apify.com/benthepythondev/lever-jobs-scraper)
- [Workable Jobs Scraper](https://apify.com/benthepythondev/workable-jobs-scraper)
- [SmartRecruiters Jobs Scraper](https://apify.com/benthepythondev/smartrecruiters-jobs-scraper)
- [HiringCafe Scraper](https://apify.com/benthepythondev/hiring-cafe-scraper)

**Keywords:** Recruitee scraper, Recruitee jobs scraper, Recruitee API, scrape Recruitee jobs, Recruitee job board, ATS jobs scraper, hiring data API, recruitment leads, job postings scraper, European startup jobs, company hiring intelligence, remote jobs data, job board scraper, recruiting automation, Apify jobs scraper.

# Actor input Schema

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

Recruitee subdomains or full Recruitee URLs, for example bunq or https://bunq.recruitee.com.

## `keyword` (type: `string`):

Optional keyword filter matched against title, department, location and description.

## `includeDescriptions` (type: `boolean`):

Include cleaned job descriptions in the output.

## `maxResults` (type: `integer`):

Maximum offers to return across all companies.

## Actor input object example

```json
{
  "companies": [
    "bunq",
    "personio"
  ],
  "keyword": "engineer",
  "includeDescriptions": true,
  "maxResults": 10
}
```

# 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 = {
    "companies": [
        "bunq",
        "personio"
    ],
    "keyword": "engineer",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/recruitee-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 = {
    "companies": [
        "bunq",
        "personio",
    ],
    "keyword": "engineer",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("benthepythondev/recruitee-jobs-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 '{
  "companies": [
    "bunq",
    "personio"
  ],
  "keyword": "engineer",
  "maxResults": 10
}' |
apify call benthepythondev/recruitee-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Recruitee Jobs Scraper - ATS Hiring Data",
        "description": "Scrape Recruitee-hosted job boards: title, company, department, location, employment type, remote/hybrid flags, careers URL and description.",
        "version": "1.0",
        "x-build-id": "oya0FK0Yu4Cr6VEQe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benthepythondev~recruitee-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benthepythondev-recruitee-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/benthepythondev~recruitee-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-benthepythondev-recruitee-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/benthepythondev~recruitee-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-benthepythondev-recruitee-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "companies": {
                        "title": "Recruitee companies",
                        "type": "array",
                        "description": "Recruitee subdomains or full Recruitee URLs, for example bunq or https://bunq.recruitee.com.",
                        "default": [
                            "bunq",
                            "personio"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword filter",
                        "type": "string",
                        "description": "Optional keyword filter matched against title, department, location and description."
                    },
                    "includeDescriptions": {
                        "title": "Include descriptions",
                        "type": "boolean",
                        "description": "Include cleaned job descriptions in the output.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum offers to return across all companies.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
