# Jobrapido Scraper - Multi-Country Job Aggregator (`santamaria-automations/jobrapido-scraper`) Actor

Scrape job listings from Jobrapido.com — a multi-country job aggregator covering Germany, Austria, Switzerland, and 50+ other countries. Extract titles, companies, locations, salaries, and full descriptions. One actor for global recruitment intelligence.

- **URL**: https://apify.com/santamaria-automations/jobrapido-scraper.md
- **Developed by:** [Alessandro Santamaria](https://apify.com/santamaria-automations) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 job listing scrapeds

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

## Jobrapido Scraper - One Actor, 50+ Countries, Billions of Jobs

Scrape job listings from [Jobrapido.com](https://www.jobrapido.com), one of the world's largest multi-country job aggregators. Jobrapido indexes postings from thousands of sources across **Germany, Austria, Switzerland and 50+ other countries** — a single endpoint for global hiring intelligence.

This scraper gives you structured JSON access to every listing: title, company, location, salary, posted date, snippet, and the resolved **original source URL** (the external site where the job was posted, e.g. xing.com, monster.de, indeed.com).

Pairs perfectly with our **StepStone**, **Indeed**, **LinkedIn Jobs**, **Stellenmarkt.de**, **Jobs.ch**, **Karriere.at** and **Pracuj.pl** scrapers for complete multi-source coverage.

### What you get

- **Single actor for 50+ countries** — pick a country subdomain and go
- **DACH first-class support** — Germany (de), Austria (at), Switzerland (ch)
- **Title, company, and logo-ready URL for every listing**
- **Clean location, city and region** extracted from the card metadata
- **Salary** — raw text plus parsed min, max, currency and period when published
- **Original source URL resolved** — follow the Jobrapido redirect to the real apply link (xing.com, monster.de, indeed.com, stepstone.de, and hundreds more)
- **Posted date** normalized to ISO-8601
- **Description snippet** extracted from each card
- **Multi-keyword search** with automatic cross-query deduplication
- **Respectful pagination** — stops at the site's real max page count

### Example output

```json
{
  "id": "3491970939652931584",
  "title": "Software-Entwickler/Kunden- & Produktsupport (m/w/d)",
  "url": "https://www.xing.com/jobs/berlin-software-entwickler-kunden-produktsupport-152985563",
  "company": "Epostbox epb GmbH",
  "company_url": "https://www.xing.de",
  "location": "Berlin",
  "city": "Berlin",
  "region": null,
  "country": "DE",
  "description_snippet": "Zur Verstärkung unseres Teams in Berlin suchen wir einen Software-Entwickler...",
  "salary_min": null,
  "salary_max": null,
  "salary_currency": null,
  "salary_text": null,
  "employment_type": null,
  "posted_at": "2026-04-08T00:00:00Z",
  "apply_url": "https://open.app.jobrapido.com/de/3491970939652931584/?w=software+engineer&l=berlin&oc=sponsored",
  "search_query": "Software Engineer",
  "source_url": "https://open.app.jobrapido.com/de/3491970939652931584/?w=software+engineer&l=berlin&oc=sponsored",
  "source_platform": "jobrapido.com",
  "scraped_at": "2026-04-10T09:12:00Z"
}
````

### How to use

Pick a `country` (de / at / ch / us / uk / fr / it / es / nl / be / pl / pt / se / global), set one or more keywords in `searchQueries`, optionally filter by `location`, and let the scraper walk through the SERP pages.

#### Input

| Parameter | Description | Example |
|-----------|-------------|---------|
| `searchQueries` | Keywords to search (deduplicated across queries) | `["Software Engineer", "Data Engineer"]` |
| `country` | Target country subdomain | `"de"`, `"at"`, `"ch"`, `"global"` |
| `location` | City or region, leave empty for all-country | `"Berlin"`, `"Wien"`, `"Zurich"` |
| `radius` | Search radius in km around location | `30` |
| `category` | Industry category filter (free text) | `"IT"`, `"Sales"` |
| `maxResultsPerQuery` | Max results per keyword | `100` |
| `maxResults` | Total cap across all queries (0 = unlimited) | `500` |
| `includeJobDetails` | Resolve the external source URL for each listing | `true` |
| `proxyConfiguration` | Apify Proxy settings | `{"useApifyProxy": true}` |

**Example input**

```json
{
  "searchQueries": ["Software Engineer", "Data Engineer", "DevOps"],
  "country": "de",
  "location": "Berlin",
  "maxResultsPerQuery": 200,
  "includeJobDetails": true,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Use cases

- **Cross-border recruitment** — run one actor to track hiring in Germany, Austria, Switzerland and 50+ other countries simultaneously. Perfect for international staffing firms and global mobility teams.
- **Talent intelligence & market mapping** — aggregate hiring signals across DACH and the wider EU labour market; quantify where roles are opening first and how volume shifts week over week.
- **Salary benchmarking by country** — build role × country × employer salary benchmarks in EUR / CHF / GBP / USD and spot compensation gaps across borders.
- **Competitor hiring tracking** — monitor a multi-country employer's presence across every market they hire in, all from one unified feed with original source URLs.
- **Labour-market research** — power reports on DACH hiring velocity, remote-work adoption, or regional talent hotspots across Europe.
- **Job board aggregation** — ingest normalised listings from one of the world's largest metasearch indexes into your own job board or recruitment product.

### Pricing

| Event | Price |
|-------|-------|
| Actor start | $0.001 |
| Search-only result (`includeJobDetails: false`) | $0.003 / result |
| With resolved source URL (`includeJobDetails: true`) | $0.005 / result |

**Example**: 1,000 jobs with resolved source URLs = **$5.00** · 10,000 jobs = **$50.00**

Compare to manual data entry at EUR 0.50-1.00 per record, or commercial multi-country job-data feeds at EUR 1,000-5,000 / month.

### Issues & Feedback

Facing an issue or need a new filter or field? [Open an issue on the Issues tab](https://console.apify.com/actors/kUDOYGbYAFW9iRML0/issues) — we respond within 24 hours and welcome feature requests.

### Related Actors

Complete your global job-board coverage with our full suite:

- [Indeed Scraper](https://apify.com/santamaria-automations/indeed-scraper) — Global #1 job aggregator
- [LinkedIn Jobs Scraper](https://apify.com/santamaria-automations/linkedin-scraper) — Professional network jobs
- [StepStone.de Scraper](https://apify.com/santamaria-automations/stepstone-de-scraper) — Germany's #1 job board
- [Stellenmarkt.de Scraper](https://apify.com/santamaria-automations/stellenmarkt-de-scraper) — German national job board
- [Jobs.ch Scraper](https://apify.com/santamaria-automations/jobs-ch-scraper) — Switzerland's #1 job site
- [Karriere.at Scraper](https://apify.com/santamaria-automations/karriere-at-scraper) — Austria's leading job board
- [Pracuj.pl Scraper](https://apify.com/santamaria-automations/pracuj-pl-scraper) — Poland's top job site

Or browse all [santamaria-automations actors](https://apify.com/santamaria-automations) for the full scraping suite.

# Actor input Schema

## `searchQueries` (type: `array`):

One or more search keywords (e.g. 'Software Engineer', 'Sales Manager'). Each keyword runs as a separate search. Results are deduplicated across queries.

## `searchQuery` (type: `string`):

Single search keyword (backward compatible). Use 'searchQueries' for multiple keywords.

## `country` (type: `string`):

Jobrapido country subdomain to target. Use 'global' for www.jobrapido.com.

## `location` (type: `string`):

City or region name (e.g. 'Berlin', 'Wien', 'Zurich'). Leave empty to search the whole country.

## `radius` (type: `integer`):

Search radius in kilometres around the given location. Ignored when no location is set or when the country does not support radius.

## `category` (type: `string`):

Optional industry category filter (free text, e.g. 'IT', 'Sales', 'Healthcare').

## `maxResultsPerQuery` (type: `integer`):

Maximum results per search keyword. Each query gets up to this many results (deduplicated).

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

Total cap across all queries. Set to 0 for unlimited (each query limited by maxResultsPerQuery).

## `includeJobDetails` (type: `boolean`):

When enabled, fetches each job's redirect page to resolve the original source URL (the external site where the job was posted, e.g. xing.com, monster.de). When disabled, only the Jobrapido redirect URL is returned (faster, cheaper).

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

Apify proxy settings for avoiding rate limits

## Actor input object example

```json
{
  "searchQueries": [
    "Software Engineer"
  ],
  "searchQuery": "Software Engineer",
  "country": "de",
  "location": "Berlin",
  "radius": 0,
  "maxResultsPerQuery": 50,
  "maxResults": 0,
  "includeJobDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `jobListings` (type: `string`):

Dataset containing scraped job listings

# 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 = {
    "searchQueries": [
        "Software Engineer"
    ],
    "location": "Berlin",
    "maxResultsPerQuery": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("santamaria-automations/jobrapido-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 = {
    "searchQueries": ["Software Engineer"],
    "location": "Berlin",
    "maxResultsPerQuery": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("santamaria-automations/jobrapido-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 '{
  "searchQueries": [
    "Software Engineer"
  ],
  "location": "Berlin",
  "maxResultsPerQuery": 50
}' |
apify call santamaria-automations/jobrapido-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jobrapido Scraper - Multi-Country Job Aggregator",
        "description": "Scrape job listings from Jobrapido.com — a multi-country job aggregator covering Germany, Austria, Switzerland, and 50+ other countries. Extract titles, companies, locations, salaries, and full descriptions. One actor for global recruitment intelligence.",
        "version": "1.0",
        "x-build-id": "PZxUMbGSSICSxL4gu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/santamaria-automations~jobrapido-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-santamaria-automations-jobrapido-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/santamaria-automations~jobrapido-scraper/runs": {
            "post": {
                "operationId": "runs-sync-santamaria-automations-jobrapido-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/santamaria-automations~jobrapido-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-santamaria-automations-jobrapido-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": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "One or more search keywords (e.g. 'Software Engineer', 'Sales Manager'). Each keyword runs as a separate search. Results are deduplicated across queries.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search Keyword (single, legacy)",
                        "type": "string",
                        "description": "Single search keyword (backward compatible). Use 'searchQueries' for multiple keywords."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "de",
                            "at",
                            "ch",
                            "us",
                            "uk",
                            "fr",
                            "it",
                            "es",
                            "nl",
                            "be",
                            "pl",
                            "pt",
                            "se",
                            "global"
                        ],
                        "type": "string",
                        "description": "Jobrapido country subdomain to target. Use 'global' for www.jobrapido.com.",
                        "default": "de"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City or region name (e.g. 'Berlin', 'Wien', 'Zurich'). Leave empty to search the whole country."
                    },
                    "radius": {
                        "title": "Search Radius (km)",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Search radius in kilometres around the given location. Ignored when no location is set or when the country does not support radius.",
                        "default": 0
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Optional industry category filter (free text, e.g. 'IT', 'Sales', 'Healthcare')."
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results per Query",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum results per search keyword. Each query gets up to this many results (deduplicated).",
                        "default": 100
                    },
                    "maxResults": {
                        "title": "Max Total Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Total cap across all queries. Set to 0 for unlimited (each query limited by maxResultsPerQuery).",
                        "default": 0
                    },
                    "includeJobDetails": {
                        "title": "Resolve Original Source URL",
                        "type": "boolean",
                        "description": "When enabled, fetches each job's redirect page to resolve the original source URL (the external site where the job was posted, e.g. xing.com, monster.de). When disabled, only the Jobrapido redirect URL is returned (faster, cheaper).",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy settings for avoiding rate limits",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
