# SmartRecruiters Jobs Scraper – ATS Listings & Apply Links (`ninhothedev/smartrecruiters-jobs-scraper`) Actor

$0.5/1K 🔥 Fast SmartRecruiters jobs scraper! Pull ANY company's postings — title, department, location & link. No key. JSON, CSV, Excel or API in seconds. Perfect for recruiting, sourcing & hiring intel ⚡

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

## Pricing

from $0.50 / 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 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

## SmartRecruiters Jobs Scraper

Scrape **any company's SmartRecruiters careers page** into clean, structured JSON — job title, department, function, location, employment type, experience level, apply URL and (optionally) the full job description. Powered by the public SmartRecruiters Posting API, so there is **no API key, no login, and no proxy required**. Datacenter-friendly and cheap.

> Thousands of employers — from global brands to fast-growing scale-ups — run their careers pages on SmartRecruiters. This actor turns any of them into a structured jobs feed you can query, filter, and pipe into a spreadsheet, database, or ATS aggregator.

***

### What you get

One dataset item per job, with these fields:

| Field | Description |
|---|---|
| `company` | Company slug you requested |
| `title` | Job title |
| `department` | Department (e.g. "Software Development/Engineering") |
| `function` | Job function (e.g. "Engineering") |
| `employment_type` | Full-time, Part-time, Contract, … |
| `experience_level` | Entry, Mid-Senior Level, Director, … |
| `city` / `region` / `country` | Location parts |
| `remote` | Boolean remote flag |
| `url` | Public careers page URL for the posting |
| `released_at` | Publish date (ISO-8601 UTC) |
| `description` | Full description as plain text (only when `fetchDescription` is on) |
| `source` | Always `smartrecruiters` |
| `job_id` | SmartRecruiters posting ID |
| `scraped_at` | Run timestamp (ISO-8601 UTC) |

Every field is nullable — missing values come back as `null`, never crash the run.

***

### Input

```json
{
  "mode": "postings",
  "companies": ["Sixt", "BoschGroup", "Wise", "AveryDennison"],
  "fetchDescription": false,
  "maxItems": 200
}
```

| Input | Type | Default | Notes |
|---|---|---|---|
| `mode` | select | `postings` | Lists all public postings for each company |
| `companies` | array | — | **Required.** SmartRecruiters company slugs (case-sensitive) |
| `fetchDescription` | boolean | `false` | Fetch full job text (1 extra request per job — slower/pricier) |
| `maxItems` | integer | `200` | Cap across all companies (max 2000) |

***

### How to find a company's SmartRecruiters slug

1. Open the company's careers/jobs page.
2. If the URL looks like `https://jobs.smartrecruiters.com/<Slug>/...` or `https://careers.smartrecruiters.com/<Slug>`, the `<Slug>` part is exactly what you need.
3. Slugs are **case-sensitive** — `BoschGroup`, `Sixt`, `Wise`, `AveryDennison`.
4. Many tenants exist but have **0 public postings** at any given time — that is normal. Try well-known active employers first.

Confirmed populated examples used to build & test this actor: `BoschGroup`, `Sixt`, `Wise`, `AveryDennison`, `Visa`.

***

### Pricing

Roughly **~$1 per 1,000 jobs** on listing-only runs (no description fetch). Turning on `fetchDescription` adds one request per job, so expect it to run slower and cost a bit more. `maxItems` keeps every run predictable.

***

### Use cases

- **Recruiting & talent sourcing** — build a live board of open roles at target employers.
- **Hiring intelligence** — track which departments a competitor is scaling and where.
- **ATS aggregation** — feed a job board or aggregator with normalized postings from many companies.
- **Sourcing & lead-gen** — spot companies actively hiring for specific functions or locations.

***

### Related actors

- [Ashby Jobs Scraper](https://apify.com/ninhothedev/ashby-jobs-scraper)
- [Workable Jobs Scraper](https://apify.com/ninhothedev/workable-jobs-scraper)
- [BambooHR Jobs Scraper](https://apify.com/ninhothedev/bamboohr-jobs-scraper)
- [The Muse Jobs Scraper](https://apify.com/ninhothedev/muse-jobs-scraper)

***

### FAQ

**Do I need an API key or account?** No. The SmartRecruiters Posting API is public.

**Do I need a proxy?** No — it is datacenter-friendly and works without any proxy.

**Why did my company return 0 jobs?** The slug may be wrong (case-sensitive) or the tenant genuinely has no public openings right now. Try a known-active employer to confirm.

**Keywords:** smartrecruiters scraper, smartrecruiters jobs api, ats scraper, job postings scraper, careers page scraper, recruiting data, hiring intelligence, job board aggregator, talent sourcing, open positions scraper.

# Actor input Schema

## `mode` (type: `string`):

Scraping mode. 'postings' lists all public job postings for each supplied company slug.

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

One or more SmartRecruiters company slugs (the identifier in jobs.smartrecruiters.com/<slug>). Slugs are case-sensitive. Prefilled with employers confirmed to have live postings.

## `fetchDescription` (type: `boolean`):

If enabled, makes one extra API request per job to fetch the full HTML job description (stripped to plain text, capped at 5000 chars). Slower and costs more compute — leave off if you only need listing metadata.

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

Maximum number of jobs to scrape across all companies combined. Keeps runs cheap and predictable.

## Actor input object example

```json
{
  "mode": "postings",
  "companies": [
    "Sixt",
    "BoschGroup",
    "Wise",
    "AveryDennison"
  ],
  "fetchDescription": false,
  "maxItems": 200
}
```

# 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": [
        "Sixt",
        "BoschGroup",
        "Wise",
        "AveryDennison"
    ],
    "maxItems": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/smartrecruiters-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": [
        "Sixt",
        "BoschGroup",
        "Wise",
        "AveryDennison",
    ],
    "maxItems": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("ninhothedev/smartrecruiters-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": [
    "Sixt",
    "BoschGroup",
    "Wise",
    "AveryDennison"
  ],
  "maxItems": 200
}' |
apify call ninhothedev/smartrecruiters-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/MixddzagxhLYbAOt9/builds/M6AbchcOwEnGbG26p/openapi.json
