# SmartRecruiters Jobs Scraper: Hiring Alerts (`getascraper/smartrecruiters-jobs-monitor`) Actor

Monitor public SmartRecruiters company boards for new, updated, reappeared, and closed jobs. Export source-linked postings, application URLs, and job-ad details to Apify schedules, webhooks, and talent-intelligence workflows.

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

## Pricing

from $0.59 / 1,000 job postings

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

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed">
<tr>
<td style="padding:24px 28px;background:#EFF6FF;border:1px solid #BFDBFE;border-top:4px solid #1D4ED8;border-radius:12px">
<span style="display:block;font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">🔎 Turn public SmartRecruiters boards into hiring signals.</span>
<span style="display:block;margin-top:10px;font-size:15px;color:#57534E;line-height:1.6">Collect current public listings, keep each row tied to its source, and make the next hiring decision with a clean, repeatable feed. Work only from pages that anyone can normally view.</span>

</td>
</tr>
</table>

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed">
<tr>
<td style="padding:16px 14px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-top:3px solid #1D4ED8;border-radius:10px 0 0 10px;vertical-align:top"><span style="display:block;font-size:15px;font-weight:800;color:#1E3A8A;line-height:1.3">🧭 Focused sources</span><span style="display:block;margin-top:8px;font-size:12px;color:#57534E;line-height:1.5">Use ordinary public company and careers pages.</span></td>
<td style="padding:16px 14px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-top:3px solid #1D4ED8;border-left:none;vertical-align:top"><span style="display:block;font-size:15px;font-weight:800;color:#1E3A8A;line-height:1.3">🔔 Meaningful changes</span><span style="display:block;margin-top:8px;font-size:12px;color:#57534E;line-height:1.5">Separate new, updated, returning, and closed roles.</span></td>
<td style="padding:16px 14px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-top:3px solid #1D4ED8;border-left:none;vertical-align:top"><span style="display:block;font-size:15px;font-weight:800;color:#1E3A8A;line-height:1.3">🔗 Source context</span><span style="display:block;margin-top:8px;font-size:12px;color:#57534E;line-height:1.5">Keep the original job link beside every record.</span></td>
<td style="padding:16px 14px;width:25%;background:#FFFFFF;border:1px solid #BFDBFE;border-top:3px solid #1D4ED8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="display:block;font-size:15px;font-weight:800;color:#1E3A8A;line-height:1.3">📅 Ready to repeat</span><span style="display:block;margin-top:8px;font-size:12px;color:#57534E;line-height:1.5">Run once for research or on a schedule for monitoring.</span></td>
</tr>
</table>

### 🎯 Turn public hiring activity into a useful signal

Monitor public SmartRecruiters company boards for new, updated, returning, and confirmed closed postings, with optional detail collection for application and role context. Each record stays connected to the public listing so a recruiter, analyst, or operations team can verify the context before acting.

#### Who gets value

- **I am a competitive intelligence manager** looking to compare hiring activity across a selected company list with a trustworthy source link.
- **I am a recruiting operations lead** looking to keep a clean, current feed of roles without checking company sites by hand.
- **I am a research analyst** looking to compare hiring signals across a defined company list.

### ⚡ Get results in three steps

Start with a small public source to confirm the output fits your workflow. Repeat the same setup on an Apify schedule when you need ongoing visibility.

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed">
<tr>
<td style="padding:16px 14px;width:33.333%;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:10px 0 0 10px;vertical-align:top"><span style="display:block;font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><span style="display:block;margin-top:6px;font-size:14px;font-weight:700;color:#1C1917;line-height:1.35">Add sources</span><span style="display:block;margin-top:6px;font-size:12px;color:#57534E;line-height:1.5">Paste SmartRecruiters company names or supported public company links or select your filters.</span></td>
<td style="padding:16px 14px;width:33.333%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;vertical-align:top"><span style="display:block;font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><span style="display:block;margin-top:6px;font-size:14px;font-weight:700;color:#1C1917;line-height:1.35">Choose the view</span><span style="display:block;margin-top:6px;font-size:12px;color:#57534E;line-height:1.5">Collect a current snapshot or focus on changes.</span></td>
<td style="padding:16px 14px;width:33.333%;background:#EFF6FF;border:1px solid #BFDBFE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="display:block;font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><span style="display:block;margin-top:6px;font-size:14px;font-weight:700;color:#1C1917;line-height:1.35">Use the feed</span><span style="display:block;margin-top:6px;font-size:12px;color:#57534E;line-height:1.5">Send source-linked records into your existing process.</span></td>
</tr>
</table>

### 🧩 Configure your run

The first setting identifies the public sources you want to follow. The remaining settings let you balance detail, scope, and the amount of history returned.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `companyIdentifiers` | List of text | No | Public company names or supported company links to check. |
| `query` | Text | No | Optional role or skill search term. |
| `includeDetails` | Yes or no | No | Include bounded public role details and application links. |
| `maxItems` | Number | No | Maximum records returned across all companies. |
| `outputMode` | Choice | No | Return all current postings or only changed postings. |
| `stateName` | Text | No | Name the saved comparison history for this watchlist. |
| `maxPages` | Number | No | Safety limit for listing pages checked per company. |
| `pageSize` | Number | No | Postings requested in each result page. |
| `maxConcurrency` | Number | No | Number of detailed role pages collected at once. |
| `requestTimeoutMs` | Number | No | Maximum wait for one public source response. |
| `maxRetries` | Number | No | Retries for temporary availability problems. |

### 📦 Use the data immediately

Every result is a structured record with the original public source retained for review. Choose a full view for a current snapshot or a change-focused view for downstream actions.

| Field | Type | Description |
| --- | --- | --- |
| `event` | Text | New, updated, reappeared, or closed status when a change is found. |
| `title` | Text | Public role title. |
| `companyName` | Text | Listed company name. |
| `department` | Text or null | Public department label. |
| `fullLocation` | Text or null | Public location label. |
| `typeOfEmployment` | Text or null | Listed employment type. |
| `remote` | Yes or no or null | Remote-work indicator when published. |
| `experienceLevel` | Text or null | Listed experience level. |
| `jobAdId` | Text | Source job-ad identifier. |
| `applyUrl` | Link or null | Original application link. |
| `postingUrl` | Link | Original public posting page. |
| `releasedDate` | Date and time or null | Public release time when available. |
| `observedAt` | Date and time | Time this Actor observed the posting. |
| `scanComplete` | Yes or no | Whether the source check was complete enough for lifecycle comparison. |
| `source` | Text | Public source family used for the record. |

### 💳 Understand your run cost

Review the current pricing shown in the Apify Store before you scale a scheduled workflow. Begin with a small public source so you can confirm the records match your criteria.

### ⭐ Enjoying SmartRecruiters jobs scraper?

After a successful run, rate the Actor based on the usefulness and clarity of the records. Your feedback helps improve the next release for teams with the same workflow.

<table width="100%" style="display:table;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed">
<tr>
<td style="padding:20px 24px 14px;background:#EFF6FF;border:1px solid #BFDBFE;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0">
<span style="display:block;font-size:20px;letter-spacing:4px;color:#F59E0B">⭐ ⭐ ⭐ ⭐ ⭐</span>
<span style="display:block;margin-top:8px;font-size:17px;font-weight:800;color:#1C1917;line-height:1.35">Rate this Actor if it helped you compare hiring activity with less manual work.</span>
<span style="display:block;margin-top:8px;font-size:14px;color:#57534E;line-height:1.5">Your feedback helps research teams find a dependable public jobs workflow.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1D4ED8;border:1px solid #BFDBFE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/smartrecruiters-jobs-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ Frequently asked questions

These answers cover the safest way to get a reliable first result. Use a separate saved state for each independent watchlist or client workflow.

#### Can I start with a normal public source link?

Yes. Paste the public source described in the input form, then use the available filters to narrow the collection.

#### Can I use this for recurring monitoring?

Yes. Run it on an Apify schedule and choose the change-focused output when you only need records that have meaningfully changed.

#### How are closed roles handled?

A role is only treated as closed after complete checks confirm that it is no longer present. This reduces false closure events caused by incomplete source results.

#### Do I need access to the employer system?

No. This Actor is designed for publicly available listings and does not request employer, applicant, or account access.

### 🛡️ Use public information responsibly

Use the records for legitimate talent research, recruiting operations, and internal market analysis. Respect the source’s terms and intended use, minimize retention, and do not use the data to make sensitive decisions about individuals.

### 🔗 Other actors

These adjacent Actors cover public hiring sources that teams often track alongside this one. Choose the source that matches the company’s careers platform.

- [🌱 Greenhouse jobs scraper](https://apify.com/getascraper/greenhouse-requisition-monitor)
- [🏥 NHS jobs scraper](https://apify.com/getascraper/nhs-trust-vacancy-monitor)
- [🗂️ Workday jobs scraper](https://apify.com/getascraper/workday-tenant-jobs-monitor)
- [🧲 Lever jobs scraper](https://apify.com/getascraper/lever-jobs-monitor)
- [🇨🇦 Job Bank Canada scraper](https://apify.com/getascraper/jobbank-scraper)

# Actor input Schema

## `companyIdentifiers` (type: `array`):

Public SmartRecruiters company identifiers or supported company URLs.

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

Optional public posting search term. Leave blank to monitor the complete company board.

## `includeDetails` (type: `boolean`):

Fetch bounded detail records for apply links and source job-ad sections.

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

Maximum records returned across all companies. Set to 0 only for an explicit uncapped run.

## `outputMode` (type: `string`):

Choose all active records or only records with a change event.

## `stateName` (type: `string`):

Stable name for the saved comparison history. Use a different name for separate monitoring streams.

## `maxPages` (type: `integer`):

Safety cap on paginated listing requests. Set to 0 to remove this explicit cap.

## `pageSize` (type: `integer`):

Number of public postings requested per page, from 1 to 100.

## `maxConcurrency` (type: `integer`):

Maximum simultaneous detail requests. Defaults to 3 to keep source traffic bounded.

## `requestTimeoutMs` (type: `integer`):

Timeout for each public source request in milliseconds.

## `maxRetries` (type: `integer`):

Retries for temporary timeouts, rate limits, and server errors.

## Actor input object example

```json
{
  "companyIdentifiers": [
    "smartrecruiters"
  ],
  "query": "",
  "includeDetails": true,
  "maxItems": 10,
  "outputMode": "full",
  "stateName": "smartrecruiters-default",
  "maxPages": 5,
  "pageSize": 25,
  "maxConcurrency": 3,
  "requestTimeoutMs": 20000,
  "maxRetries": 3
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

No description

## `runSummary` (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 = {
    "companyIdentifiers": [
        "smartrecruiters"
    ],
    "query": "",
    "includeDetails": true,
    "maxItems": 10,
    "outputMode": "full",
    "stateName": "smartrecruiters-default",
    "maxPages": 5,
    "pageSize": 25,
    "maxConcurrency": 3,
    "requestTimeoutMs": 20000,
    "maxRetries": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/smartrecruiters-jobs-monitor").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 = {
    "companyIdentifiers": ["smartrecruiters"],
    "query": "",
    "includeDetails": True,
    "maxItems": 10,
    "outputMode": "full",
    "stateName": "smartrecruiters-default",
    "maxPages": 5,
    "pageSize": 25,
    "maxConcurrency": 3,
    "requestTimeoutMs": 20000,
    "maxRetries": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/smartrecruiters-jobs-monitor").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 '{
  "companyIdentifiers": [
    "smartrecruiters"
  ],
  "query": "",
  "includeDetails": true,
  "maxItems": 10,
  "outputMode": "full",
  "stateName": "smartrecruiters-default",
  "maxPages": 5,
  "pageSize": 25,
  "maxConcurrency": 3,
  "requestTimeoutMs": 20000,
  "maxRetries": 3
}' |
apify call getascraper/smartrecruiters-jobs-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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