# Arbeitnow Jobs Scraper - Europe Job Board API (`ninhothedev/arbeitnow-scraper`) Actor

$0.5/1K 🔥 Fast Arbeitnow jobs scraper 🇪🇺! Roles — title, company, location, tags & remote flag. Clean JSON. JSON, CSV, Excel or API in seconds. Pull thousands of European jobs for boards & recruiting ⚡

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

## Pricing

from $0.50 / 1,000 results

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

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

## Arbeitnow Jobs Scraper 🧳

**Scrape thousands of Europe & Germany job postings from [Arbeitnow](https://www.arbeitnow.com) in seconds — no login, no API key, no browser.** Get clean, structured JSON for every job: title, company, location, remote flag, tags, job types, full description and the direct apply URL.

Perfect for **job boards, recruiting tools, ATS integrations, job aggregators and EU labor-market research**.

***

### ✨ What it does

The Arbeitnow Jobs Scraper hits the official Arbeitnow job-board API and paginates through it for you, returning normalized, ready-to-use records. Jobs on Arbeitnow are updated hourly and ordered by creation date, so you always get fresh European listings — heavily weighted toward the German market.

- ⚡ **Fast & cheap** — pure JSON API, datacenter-proxy friendly, no headless browser.
- 🔑 **No API key, no account** — works out of the box.
- 🔎 **Keyword filter** — narrow results by title, company, location or tag (matched client-side).
- 🧹 **Clean output** — HTML stripped from descriptions, epoch timestamps converted to ISO-8601.
- 🌍 **Europe-focused** — thousands of live roles, mostly Germany + remote EU.

***

### 📥 Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | select | `jobs` | What to scrape. Currently `jobs` (paginated job board). |
| `keyword` | string | `""` | Optional case-insensitive filter matched against title, company, location & tags. E.g. `python`, `remote`, `marketing`. Leave empty for everything. |
| `maxItems` | integer | `100` | Max jobs to return across all pages. Hard cap `1000`. |

#### Example input

```json
{
  "mode": "jobs",
  "keyword": "python",
  "maxItems": 200
}
```

***

### 📤 Output

Each dataset item is one job:

```json
{
  "slug": "senior-python-developer-berlin-206896",
  "title": "Senior Python Developer (m/f/d)",
  "company": "Acme GmbH",
  "location": "Berlin",
  "remote": true,
  "tags": ["Backend", "Python"],
  "job_types": ["full-time"],
  "description": "We are looking for a backend engineer...",
  "url": "https://www.arbeitnow.com/jobs/companies/acme-senior-python-developer",
  "created_at": "2026-07-16T06:30:35+00:00",
  "scraped_at": "2026-07-16T09:12:00+00:00"
}
```

Every field is nullable, so downstream code never breaks on a missing value.

***

### 💰 Pricing

This actor is billed **pay-per-result at roughly ~$1 per 1,000 jobs** (both input and output are simple JSON, so runs are cheap and fast). A typical 100-job run costs a few cents and finishes in seconds. You only pay for what you scrape.

***

### 🎯 Use cases

- **Job boards** — fill a niche or regional board with fresh European listings.
- **Recruiting & sourcing** — monitor new roles by keyword, company or location.
- **Job aggregators** — merge Arbeitnow into a multi-source feed.
- **EU market research** — track hiring trends, remote share, and in-demand tags across Germany and Europe.
- **ATS / CRM enrichment** — pull structured job data into your pipeline.

***

### 🆚 Why this actor

| | Arbeitnow Jobs Scraper | Manual scraping | Generic HTML scrapers |
|---|---|---|---|
| No API key | ✅ | ✅ | ✅ |
| Structured JSON | ✅ | ❌ | ⚠️ fragile |
| HTML stripped + ISO dates | ✅ | ❌ | ❌ |
| Keyword filter | ✅ | ❌ | ❌ |
| Datacenter-proxy friendly | ✅ | ⚠️ | ❌ |

***

### 🔗 Related actors

- [RemoteOK Scraper](https://apify.com/ninhothedev/remoteok-scraper)
- [The Muse Jobs Scraper](https://apify.com/ninhothedev/themuse-jobs-scraper)
- [ATS Jobs Scraper](https://apify.com/ninhothedev/ats-jobs-scraper)
- [Remote Jobs Scraper](https://apify.com/ninhothedev/remote-jobs-scraper)

***

### 🛟 Support

Questions, feature requests or a field you need added? Open an issue or contact us through the actor's **Support** tab on Apify — we usually reply within a day.

***

### 🔍 Keywords

arbeitnow scraper, germany jobs api, europe jobs scraper, job board scraper, remote jobs scraper, recruiting data, job aggregator, hiring data, deutschland stellenanzeigen, jobs api no key

# Actor input Schema

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

What to scrape. Currently only 'jobs' is supported: it paginates the Arbeitnow job-board API and returns job postings.

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

Optional. Case-insensitive keyword matched client-side against the job title, company name, location and tags. Leave empty to return all jobs. Example: 'python', 'remote', 'marketing'.

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

Maximum number of jobs to scrape across all pages. Default 100, hard cap 1000.

## Actor input object example

```json
{
  "mode": "jobs",
  "maxItems": 100
}
```

# Actor output Schema

## `jobs` (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 = {
    "keyword": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/arbeitnow-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 = { "keyword": "" }

# Run the Actor and wait for it to finish
run = client.actor("ninhothedev/arbeitnow-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": ""
}' |
apify call ninhothedev/arbeitnow-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ninhothedev/arbeitnow-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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