# Jobrapido Jobs Scraper - 57 Countries, Export CSV/JSON (`parseforge/jobrapido-scraper`) Actor

Scrape aggregated job listings from Jobrapido across 57 country sites. Export jobs with title, company, location, source board, work mode, posting date, and apply URL to CSV, Excel, JSON, or XML.

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

## Pricing

Pay per event

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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🌍 Jobrapido Global Jobs Scraper

> 🚀 **Pull aggregated global job listings in seconds.** Filter by keyword, location, and country. No API key, no registration, no manual CSV wrangling.

> 🕒 **Last updated:** 2026-05-21 · **📊 24 fields** per record · **57 country sites** · **Source-board attribution** · **9-language date normalization**

Jobrapido is one of the largest job meta-aggregators on the web. It pulls postings from thousands of partner boards (StepStone, Indeed, Xing, jobware, Monster, regional career sites, recruiter feeds, employer ATS portals) and republishes them under a single, structured search interface. This Actor walks Jobrapido's public country sites across **57 ISO country codes**, paginates the result set for any keyword and location combination, and returns one clean record per job with title, hiring company, location array, source job board, work mode (remote / hybrid / onsite), posting date, and a redirect URL that takes you straight to the employer's own apply page.

Because Jobrapido's search results pages embed the full advert payload directly in HTML attributes, the Actor never has to follow a per-job detail page. That makes it fast, reliable, and gentle on the source. Every record is timestamped, every advert ID is captured for deduplication, and the posting date text (in the local language of each country site) is parsed into ISO 8601 across **9 languages** (English, German, Italian, French, Spanish, Portuguese, Dutch, Polish, Czech). Apify residential proxy routing follows whichever country code you pick, so US, UK, IE, AU, NZ, and CA traffic passes the geo-fence that blocks plain datacenter IPs.

| 🎯 Target Audience | 🛠 Primary Use Cases |
|---|---|
| Recruiters and global talent sourcers | Cross-border recruiting across 57 countries |
| HR professionals and compensation analysts | International job market analysis and demand mapping |
| Job seekers tracking opportunities abroad | Country-by-country hiring intelligence |
| Labour market researchers | Hiring volume by region, source board, and posting age |
| Career sites and ATS vendors | Backfilling multi-country listings from aggregated feeds |

---

### 📋 What the Jobrapido Global Jobs Scraper does

- 🔍 **Multi-keyword search.** Provide one or many keywords. Each query becomes its own Jobrapido search and the Actor aggregates unique adverts across all of them.
- 🌍 **57 country sites.** Pick any ISO country code from Argentina to Vietnam. Each one has its own Jobrapido subdomain with localised inventory.
- 🏷️ **Source-board attribution.** Every record carries the original job board (e.g. `stepstone.de`, `xing.de`, `indeed.it`) and Jobrapido's quality classification (`JOBBOARD`, `RECRUITER`, `UNQUALIFIED`).
- 🗓️ **Multilingual date normalization.** Posting dates are captured in the country's language ("12 Mai", "5 giu", "27 sty") and converted to ISO 8601 (`2026-05-12`).
- 🏠 **Remote and hybrid flags.** Work-mode tags from the source board are parsed into clean `isRemote`, `isHybrid`, and `workMode` fields.
- 🔗 **Custom URL mode.** Already have a Jobrapido search URL? Drop it into `startUrls` and the Actor will replay it, inferring country from the subdomain automatically.

Each record carries the job title, hiring company, primary location, all listed locations as an array, remote and hybrid booleans, work-mode tag, posting date (raw text plus ISO 8601), new-marker flag, sponsored flag, source job board domain, source board category, the outbound redirect URL to the employer, Jobrapido's advert ID, a URL-friendly title slug, cost-per-click value, country code, search context (query, location, URL), and a scrape timestamp.

> 💡 **Why it matters:** LinkedIn dominates English-speaking white-collar postings, but it misses the thousands of regional and trade-specific job boards that Jobrapido aggregates. Pair LinkedIn with this Actor to fill the geographic and vertical gaps that single-source feeds leave behind.

---

### 🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing keyword setup, country routing, source-board filtering, and downstream cross-border recruiting use cases.

---

### ⚙️ Input

<table>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td><code>startUrls</code></td><td>array of URLs</td><td>No</td><td>Direct Jobrapido search or SEO landing URLs. When set, overrides the keyword and location fields. Country is inferred from the subdomain.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td>No</td><td>Cap on jobs returned. Free plan caps at 10. Paid plans up to 1,000,000. Defaults to 10.</td></tr>
<tr><td><code>searchQueries</code></td><td>array of strings</td><td>No</td><td>One or many keywords. Each becomes its own Jobrapido search.</td></tr>
<tr><td><code>where</code></td><td>string</td><td>No</td><td>Free-text location: city, region, or postal code. Leave empty to search the whole country.</td></tr>
<tr><td><code>country</code></td><td>enum</td><td>No</td><td>57 country codes. Defaults to <code>de</code>.</td></tr>
<tr><td><code>proxyConfiguration</code></td><td>object</td><td>No</td><td>Apify proxy. Residential is the default and required for US, UK, IE, AU, NZ, CA.</td></tr>
</table>

Example: Berlin software engineer roles in Germany.

```json
{
  "maxItems": 50,
  "searchQueries": ["software engineer"],
  "where": "berlin",
  "country": "de"
}
````

Example: cross-border recruiting research across multiple keywords in Italy.

```json
{
  "maxItems": 200,
  "searchQueries": ["data scientist", "ingegnere", "developer"],
  "country": "it",
  "where": "milano"
}
```

> ⚠️ **Good to Know:** Jobrapido embeds the full advert payload inside the search-results HTML, so this Actor does not fetch per-job detail pages. That makes runs fast and resilient, but also means salary text and long-form descriptions are unavailable: Jobrapido does not surface either on its own pages. Pair this Actor with a downstream scraper for the source board (StepStone, Xing, Indeed) when you need full job descriptions.

***

### 📊 Output

Every record is one job advert, one row. Free plan returns 10. Paid plans up to 1,000,000.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 📌 `title` | string | `Expert*in Java- und OpenShift Softwareentwicklung` |
| 🏢 `company` | string | `Deutsche Rentenversicherung Bund` |
| 📍 `location` | string | `Berlin` |
| 🗺️ `locations` | array | `["Berlin"]` |
| 🏠 `isRemote` | boolean | `false` |
| 🏗️ `isHybrid` | boolean | `true` |
| 🎯 `workMode` | string | `hybrid` (or `remote`, or `null` for onsite) |
| 🗓️ `datePostedText` | string | `12 Mai` |
| 📅 `datePosted` | string | `2026-05-12` (ISO 8601 date) |
| 🆕 `isNew` | boolean | `false` |
| 📣 `isSponsored` | boolean | `true` |
| 🏷️ `sourceBoard` | string | `stepstone-3.de` |
| 📁 `sourceBoardCategory` | string | `JOBBOARD` |
| 🔗 `applyUrl` | string | `https://open.app.jobrapido.com/de/631141688198299648/?...` |
| 🆔 `advertId` | string | `631141688198299648` |
| 🔤 `titleSlug` | string | `expert-in-java-und-openshift-softwareentwicklung` |
| 💷 `cpcInEur` | number | `0` |
| 🌍 `country` | string | `DE` |
| 🌐 `countrySubdomain` | string | `de` |
| 🔍 `searchQuery` | string | `software engineer` |
| 📍 `searchLocation` | string | `berlin` |
| 🔎 `searchUrl` | string | `https://de.jobrapido.com/?w=software+engineer&l=berlin` |
| ⏱️ `scrapedAt` | string | `2026-05-20T12:56:28.189Z` |
| ⚠️ `error` | string | only present on failed records |

#### 📦 Sample records

<details>
<summary>Typical record (Berlin software engineer, JOBBOARD source, onsite)</summary>

```json
{
  "title": "Expert*in Java- und OpenShift Softwareentwicklung",
  "company": "Deutsche Rentenversicherung Bund",
  "location": "Berlin",
  "locations": ["Berlin"],
  "isRemote": false,
  "isHybrid": false,
  "workMode": null,
  "datePostedText": "12 Mai",
  "datePosted": "2026-05-12",
  "isNew": false,
  "isSponsored": true,
  "sourceBoard": "stepstone-3.de",
  "sourceBoardCategory": "JOBBOARD",
  "applyUrl": "https://open.app.jobrapido.com/de/631141688198299648/?w=software%20engineer&l=berlin&oc=sponsored&k=web.1.1.0&uuid=deF0019e457579352dce&page_item_id=1181161403",
  "advertId": "631141688198299648",
  "titleSlug": "expert-in-java-und-openshift-softwareentwicklung",
  "cpcInEur": 0,
  "country": "DE",
  "countrySubdomain": "de",
  "searchQuery": "software engineer",
  "searchLocation": "berlin",
  "searchUrl": "https://de.jobrapido.com/?w=software+engineer&l=berlin",
  "scrapedAt": "2026-05-20T12:56:28.189Z"
}
```

</details>

<details>
<summary>Edge case: hybrid SAP consulting role with UNQUALIFIED source classification</summary>

```json
{
  "title": "SAP S/4HANA Public Cloud Finance Consultant (m/f/d) [Full-time / part-time] - Tieto Tech Consulting",
  "company": "Tieto Germany GmbH",
  "location": "Berlin",
  "locations": ["Berlin"],
  "isRemote": false,
  "isHybrid": true,
  "workMode": "hybrid",
  "datePostedText": "05 Mai",
  "datePosted": "2026-05-05",
  "isNew": false,
  "isSponsored": true,
  "sourceBoard": "stepstone-2.de",
  "sourceBoardCategory": "UNQUALIFIED",
  "applyUrl": "https://open.app.jobrapido.com/de/169065552893968384/?w=software%20engineer&l=berlin&oc=sponsored&k=web.1.1.2&uuid=deF0019e457579352dce&page_item_id=1090358541",
  "advertId": "169065552893968384",
  "titleSlug": "sap-s-4hana-public-cloud-finance-consultant-m-f-d-full-time-part-time-tieto-tech-consulting",
  "cpcInEur": 0,
  "country": "DE",
  "countrySubdomain": "de",
  "searchQuery": "software engineer",
  "searchLocation": "berlin",
  "searchUrl": "https://de.jobrapido.com/?w=software+engineer&l=berlin",
  "scrapedAt": "2026-05-20T12:56:28.189Z"
}
```

</details>

<details>
<summary>Sparse: remote-tagged business developer from Xing, no city location</summary>

```json
{
  "title": "Business Developer Prozessoptimierung in der Versicherung (w/m/d)",
  "company": "VHV - Versicherungen",
  "location": "Telearbeit",
  "locations": ["Telearbeit"],
  "isRemote": true,
  "isHybrid": false,
  "workMode": "remote",
  "datePostedText": "12 Mai",
  "datePosted": "2026-05-12",
  "isNew": false,
  "isSponsored": true,
  "sourceBoard": "xing.de",
  "sourceBoardCategory": "JOBBOARD",
  "applyUrl": "https://open.app.jobrapido.com/de/1040423896521637888/?w=software%20engineer&l=telearbeit&oc=sponsored&k=web.1.1.2&uuid=deF0019e45761500331d&page_item_id=-432011136",
  "advertId": "1040423896521637888",
  "titleSlug": "business-developer-prozessoptimierung-in-der-versicherung-w-m-d",
  "cpcInEur": 0,
  "country": "DE",
  "countrySubdomain": "de",
  "searchQuery": "remote software engineer",
  "searchLocation": null,
  "searchUrl": "https://de.jobrapido.com/?w=remote+software+engineer",
  "scrapedAt": "2026-05-20T12:57:09.374Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🌍 | **57 country sites.** From `ae.jobrapido.com` to `za.jobrapido.com`, the widest geographic footprint of any single jobs Actor in the catalogue. |
| 🏷️ | **Source-board attribution per record.** Every advert tells you which underlying job board it came from, so you can deduplicate against your other feeds or filter by source quality. |
| 🗓️ | **Multilingual date normalization.** Raw dates are kept verbatim, but every record also has an ISO 8601 `datePosted` parsed from 9 languages including German, French, Italian, Polish, Czech, Dutch, Spanish, and Portuguese. |
| 🏠 | **Clean remote and hybrid signals.** Work-mode tags from the source board are translated into structured `isRemote`, `isHybrid`, and `workMode` columns. |
| ⚡ | **No detail-page fetch needed.** The full advert payload is embedded in Jobrapido's search HTML, so the Actor runs fast (~24 records per page request) and gently. |
| 🛡️ | **Anti-blocking via residential proxies.** Apify residential network with country-aligned routing for the geo-fenced sites (US, UK, IE, AU, NZ, CA). |
| 📊 | **Predictable schema.** 24 fields, every column populated where the source has it. No empty padding columns. |

> 📊 Jobrapido aggregates from thousands of source boards across **57 country sites**, giving you reach into regional and vertical inventory that single-board scrapers miss.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Jobrapido Global Jobs Scraper** *(this Actor)* | Pay per item | 57 countries, thousands of source boards | Live | Keyword, location, country | Zero config |
| Official aggregator APIs | Per-call rate limits, registration required | Varies, often gated | Live | Limited | API key required |
| Single-source job board scrapers | Free or paid per source | One source per build | Manual or live | Source-specific | Per-source maintenance |
| Manual CSV exports | Free | Single snapshot | One-shot | None | Manual rebuilds |

When you want repeatable, structured global job inventory with source-board provenance, this Actor is the path of least resistance.

***

### 🚀 How to use

1. 🔐 **Sign up.** Create a free [Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (no card required for the free tier).
2. 🔍 **Find the Actor.** Search "Jobrapido Global Jobs Scraper" in the Apify Store, or open it directly from the ParseForge collection.
3. ⚙️ **Set inputs.** Pick a country code, add one or more keywords, optionally narrow to a city, and set `maxItems`.
4. ▶️ **Run.** Click Start. Watch the live log as each search and page is processed.
5. 📥 **Export.** Pull results as JSON, CSV, Excel, RSS, or push directly into Sheets, Slack, BigQuery, or any webhook.

> ⏱️ Total time: under 2 minutes from sign-up to first download.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%">

#### 🧑‍💼 Recruiters and talent sourcers

- Build daily cross-border feeds for hard-to-fill roles
- Detect partner-board postings the big single-source scrapers miss
- Source candidates from regional job boards in emerging markets
- Cross-reference with LinkedIn for direct outreach

</td>
<td width="50%">

#### 📊 HR professionals and compensation analysts

- Map hiring demand by country and metropolitan area
- Track which source boards employers favour in each market
- Build country-by-country comparison dashboards
- Benchmark against your own ATS to see what you are missing

</td>
</tr>
<tr>
<td width="50%">

#### 📈 Labour market researchers

- Quantify hiring volume by country, region, and source board
- Track work-mode shifts (remote, hybrid, onsite) across markets
- Measure the share of recruiter-sourced vs employer-direct postings
- Generate cross-border labour reports from a single feed

</td>
<td width="50%">

#### 🛠 Career sites and ATS vendors

- Backfill multi-country listings for white-label products
- Power remote-job filters with verified, tagged data
- Enrich candidate-facing search with source-board provenance
- Auto-populate "similar jobs" carousels using shared titles

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

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

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

***

### 🔌 Automating Jobrapido Global Jobs Scraper

Run on demand from your own code, or set it on a schedule.

- **[Node.js client](https://docs.apify.com/api/client/js)** for JavaScript and TypeScript callers
- **[Python client](https://docs.apify.com/api/client/python)** for data-science workflows and notebooks
- **[REST API docs](https://docs.apify.com/api/v2)** for any language with HTTP

Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run this Actor every hour, every morning, or once a week. Combine with Webhooks to push new postings into Slack, a database, or your ATS the moment they are scraped.

***

### 🤖 Ask an AI assistant about this scraper

Not sure which inputs to use, or want to explore what you can do with the data? Paste this into any AI assistant:

> "I am using the Jobrapido Global Jobs Scraper on Apify. It returns job listings from 57 country sites including title, company, location, source board, work mode, posting date, and apply URL. Help me \[filter remote roles in Germany / build a recruiting dashboard / analyse labour market trends / find Python developer jobs across Europe]."

The dataset is structured and self-explanatory - an AI assistant can help you filter, transform, or analyse results without any extra setup.

***

### ❓ Frequently Asked Questions

<details>
<summary>📦 <b>Can I use the data commercially?</b></summary>
Yes. The data is scraped from publicly accessible Jobrapido pages. You retain rights to use it in commercial products, dashboards, or reports. Be mindful of Jobrapido's Terms of Service and applicable local data-protection regulations.
</details>

<details>
<summary>💳 <b>Do I need a paid plan?</b></summary>
No. The free Apify tier returns up to 10 jobs per run, which is enough to validate the schema and try the filters. Paid plans unlock up to 1,000,000 items per run.
</details>

<details>
<summary>🚨 <b>What happens if a run fails?</b></summary>
Failed records are pushed to the dataset with an `error` field describing the cause. The Actor never crashes hard; you always get the items it managed to extract before the failure.
</details>

<details>
<summary>⚖️ <b>Is this legal?</b></summary>
We scrape only public, anonymously accessible Jobrapido pages. The Actor is for users to research the public job market. You are responsible for compliance with the Jobrapido ToS and your local laws.
</details>

<details>
<summary>🌍 <b>Which countries are supported?</b></summary>
57 Jobrapido country sites: United Arab Emirates, Angola, Argentina, Austria, Australia, Belgium, Brazil, Canada, Switzerland, Chile, China, Colombia, Czechia, Germany, Denmark, Dominican Republic, Algeria, Ecuador, Spain, France, Guatemala, Hong Kong, Hungary, Indonesia, Ireland, India, Italy, Japan, Kenya, South Korea, Kuwait, Morocco, Mexico, Malaysia, Nigeria, Netherlands, New Zealand, Peru, Philippines, Pakistan, Poland, Portugal, Qatar, Romania, Russia, Saudi Arabia, Sweden, Singapore, Slovakia, Thailand, Turkey, Taiwan, Ukraine, United Kingdom, United States, Uruguay, Venezuela, and South Africa.
</details>

<details>
<summary>💰 <b>Why is there no salary field?</b></summary>
Jobrapido does not surface salary on its search-results pages, even when the underlying source board has one. Pair this Actor with a single-source scraper (StepStone, Indeed, LinkedIn) and join on the `applyUrl` redirect domain to enrich with salary downstream.
</details>

<details>
<summary>📃 <b>Why is there no full job description?</b></summary>
Jobrapido proxies you to the original employer or partner board via the `applyUrl` redirect. The detail content lives on the source site, not on Jobrapido. The Actor returns title, company, location, source board, and the redirect URL so you can either click through or scrape the source separately.
</details>

<details>
<summary>🔄 <b>How fresh is the data?</b></summary>
Live. Jobrapido continuously re-crawls partner sites and the Actor reads their search pages on every run. The `datePosted` field tells you when each underlying employer published the role.
</details>

<details>
<summary>🛡️ <b>Why is residential proxy required?</b></summary>
The US, UK, IE, AU, NZ, and CA Jobrapido subdomains hard-block datacenter IPs with a `403 Forbidden`. Continental European, Latin American, and Asian sites accept datacenter IPs but the Actor still defaults to residential for consistency across all 57 countries. Apify residential proxies route through real ISP pools with country-aligned routing.
</details>

<details>
<summary>🔍 <b>Can I scrape a single Jobrapido search URL I already have?</b></summary>
Yes. Use the `startUrls` input. Paste any fully-formed Jobrapido search URL or SEO landing page (e.g. `https://us.jobrapido.com/Software-Engineer-Jobs-in-New-York`) and the Actor will replay it directly. Country is inferred from the subdomain.
</details>

<details>
<summary>🏷️ <b>What does the `sourceBoardCategory` field tell me?</b></summary>
It is Jobrapido's quality classification of the underlying source. `JOBBOARD` is a recognised partner site (StepStone, Indeed, Xing, etc.), `RECRUITER` is an agency feed, and `UNQUALIFIED` flags lower-confidence sources. Useful when you want to focus on first-party employer postings vs aggregator-of-aggregators chains.
</details>

<details>
<summary>🌐 <b>How are non-Latin scripts handled (Japanese, Chinese, Korean, Arabic)?</b></summary>
The Actor reads the source HTML as UTF-8 and stores titles, companies, and locations in their original script. Search keywords also accept any Unicode input. Date parsing falls back to the raw `datePostedText` field for scripts the localizer does not yet recognise; `datePosted` will be `null` and the verbatim text is preserved.
</details>

***

### 🔌 Integrate with any app

- [**Zapier**](https://apify.com/integrations/zapier) - hundreds of no-code triggers and actions
- [**Make**](https://apify.com/integrations/make) - visual automation builder
- [**n8n**](https://apify.com/integrations/n8n) - self-hosted workflow automation
- [**Slack**](https://apify.com/integrations/slack) - push new jobs into a channel
- [**Google Sheets**](https://apify.com/integrations/google-drive) - auto-append daily runs to a spreadsheet
- [**Airbyte**](https://apify.com/integrations/airbyte) - pipe results into your data warehouse

***

### 🔗 Recommended Actors

- [**💼 LinkedIn Jobs Scraper**](https://apify.com/parseforge/linkedin-jobs-scraper) - postings from LinkedIn's job board with company and salary signals
- [**🟦 Indeed Scraper**](https://apify.com/parseforge/indeed-scraper) - the world's largest job search engine, with full filters
- [**🟪 Monster Scraper**](https://apify.com/parseforge/monster-scraper) - Monster's job board across multiple regions
- [**💼 Adzuna Job Aggregator Scraper**](https://apify.com/parseforge/adzuna-scraper) - Adzuna's 19-country meta-search with real and predicted salaries
- [**🔍 Google Jobs Scraper**](https://apify.com/parseforge/google-jobs-scraper) - Google's job aggregator surface results

> 💡 Pro Tip: browse the complete [ParseForge collection](https://apify.com/parseforge) for more job, salary, and labour-market scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA)

***

> **Disclaimer.** This Actor scrapes only public Jobrapido pages. It does not bypass authentication, paywalls, or technical protection measures. You are responsible for using the resulting data in compliance with Jobrapido's Terms of Service and your local laws (including GDPR, CCPA, and copyright). ParseForge does not affiliate with, endorse, or claim any partnership with Jobrapido.

# Actor input Schema

## `startUrls` (type: `array`):

Optional. Direct Jobrapido search or SEO landing URLs (e.g. https://de.jobrapido.com/?w=software+engineer\&l=berlin or https://us.jobrapido.com/Software-Engineer-Jobs-in-New-York). When provided, these are used instead of the search query / location fields and the country is inferred from each URL's subdomain.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

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

Job title or keyword search terms (one search per query). Example: 'software engineer', 'pflegekraft', 'enseignant'.

## `where` (type: `string`):

City, region, or postal code to scope the search. Leave empty to search the whole country.

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

Country site to search. Each country has its own Jobrapido subdomain with localised jobs (e.g. de = de.jobrapido.com, us = us.jobrapido.com).

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

Apify proxy configuration. Defaults to residential proxy in the target country (required for US, UK, IE, AU, NZ, CA which serve hard 403 to datacenter IPs).

## Actor input object example

```json
{
  "maxItems": 10,
  "searchQueries": [
    "software engineer"
  ],
  "where": "Berlin",
  "country": "de",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (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 = {
    "maxItems": 10,
    "searchQueries": [
        "software engineer"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/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 = {
    "maxItems": 10,
    "searchQueries": ["software engineer"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/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 '{
  "maxItems": 10,
  "searchQueries": [
    "software engineer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parseforge/jobrapido-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jobrapido Jobs Scraper - 57 Countries, Export CSV/JSON",
        "description": "Scrape aggregated job listings from Jobrapido across 57 country sites. Export jobs with title, company, location, source board, work mode, posting date, and apply URL to CSV, Excel, JSON, or XML.",
        "version": "0.1",
        "x-build-id": "FqxLCZohDPTUUxhpj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~jobrapido-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-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/parseforge~jobrapido-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-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/parseforge~jobrapido-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional. Direct Jobrapido search or SEO landing URLs (e.g. https://de.jobrapido.com/?w=software+engineer&l=berlin or https://us.jobrapido.com/Software-Engineer-Jobs-in-New-York). When provided, these are used instead of the search query / location fields and the country is inferred from each URL's subdomain.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Job title or keyword search terms (one search per query). Example: 'software engineer', 'pflegekraft', 'enseignant'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "where": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, region, or postal code to scope the search. Leave empty to search the whole country."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "ae",
                            "ao",
                            "ar",
                            "at",
                            "au",
                            "be",
                            "br",
                            "ca",
                            "ch",
                            "cl",
                            "cn",
                            "co",
                            "cz",
                            "de",
                            "dk",
                            "do",
                            "dz",
                            "ec",
                            "es",
                            "fr",
                            "gt",
                            "hk",
                            "hu",
                            "id",
                            "ie",
                            "in",
                            "it",
                            "jp",
                            "ke",
                            "kr",
                            "kw",
                            "ma",
                            "mx",
                            "my",
                            "ng",
                            "nl",
                            "nz",
                            "pe",
                            "ph",
                            "pk",
                            "pl",
                            "pt",
                            "qa",
                            "ro",
                            "ru",
                            "sa",
                            "se",
                            "sg",
                            "sk",
                            "th",
                            "tr",
                            "tw",
                            "ua",
                            "uk",
                            "us",
                            "uy",
                            "ve",
                            "za"
                        ],
                        "type": "string",
                        "description": "Country site to search. Each country has its own Jobrapido subdomain with localised jobs (e.g. de = de.jobrapido.com, us = us.jobrapido.com).",
                        "default": "de"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Defaults to residential proxy in the target country (required for US, UK, IE, AU, NZ, CA which serve hard 403 to datacenter IPs).",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
