# Arbeitnow Jobs Scraper (`parsebird/arbeitnow-jobs-scraper`) Actor

Scrape job listings from Arbeitnow.com — titles, companies, locations, remote status, tags, and apply links. Filter by keyword, location, and remote. Export as JSON, CSV, or Excel.

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

## Pricing

from $0.69 / 1,000 job scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Arbeitnow Jobs Scraper

Extract structured job listing data from [Arbeitnow.com](https://www.arbeitnow.com), a job board focused on tech and professional roles in Germany and across the EU.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Filter by keyword, location, and remote eligibility, then get clean, structured job data — title, company, location, job type, tags, description, and apply link — ready for analysis, monitoring, or integration.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Use the Apify actor "parsebird/arbeitnow-jobs-scraper" via the ApifyClient SDK to scrape job listings from Arbeitnow.com. Example call: client.actor("parsebird/arbeitnow-jobs-scraper").call(run_input={"keywords": "backend engineer", "visaSponsorship": False, "remote": True, "location": "Berlin", "maxJobs": 50, "maxPages": 3}). Inputs: keywords (string, default ""), visaSponsorship (boolean, default false, best-effort keyword signal), remote (boolean, default false), location (string, default ""), maxJobs (integer, default 50, max 500), maxPages (integer, default 3, max 10, ~100 jobs/page). Output fields per job: jobId, title, company, location, remote, visaSponsorship, jobTypes, tags, description, postedAt, applyUrl, url. API docs: https://apify.com/parsebird/arbeitnow-jobs-scraper/api. Get an API token at https://console.apify.com/settings/integrations.
```

### What does Arbeitnow Jobs Scraper do?

**Arbeitnow Jobs Scraper** pulls live job postings straight from Arbeitnow's public job board API and returns clean, structured records — no HTML parsing or manual copy-pasting required. It works as a lightweight **Arbeitnow API alternative** for anyone who wants job data without building their own integration.

- 🔍 Filter by job title keyword, location substring, and remote eligibility
- 🌍 Covers tech, engineering, and professional roles from companies hiring across Germany and the EU
- 🏷️ Returns skill/category tags and employment type per job
- 🛂 Includes a best-effort visa-sponsorship signal derived from job title, tags, and description text
- ⚡ No proxy, login, or browser rendering needed — the actor talks directly to Arbeitnow's job board API
- 📅 Schedule recurring runs, trigger via API, or connect to [Zapier](https://apify.com/integrations), [Make](https://apify.com/integrations), and other [Apify integrations](https://docs.apify.com/platform/integrations)
- 📤 Export results as JSON, CSV, Excel, HTML, or XML directly from the Apify Console

### What data can you extract from Arbeitnow?

| Field | Description |
|-------|-------------|
| `jobId` | Unique slug identifying the job listing |
| `title` | Job title |
| `company` | Hiring company name |
| `location` | City/region and country as listed on Arbeitnow |
| `remote` | Whether Arbeitnow marks the job as remote-eligible |
| `visaSponsorship` | Best-effort signal from title/tags/description keywords (see FAQ) |
| `jobTypes` | Employment type(s), e.g. Full-time, Internship, Contract |
| `tags` | Skill and category tags |
| `description` | Plain-text job description (HTML stripped) |
| `postedAt` | ISO 8601 timestamp the job was created on Arbeitnow |
| `applyUrl` / `url` | Link to the job listing on arbeitnow.com |

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| keywords | string | No | — | Only keep jobs whose title contains this text (case-insensitive) |
| visaSponsorship | boolean | No | false | Keep only jobs with a visa-sponsorship keyword signal |
| remote | boolean | No | false | Keep only remote-eligible jobs |
| location | string | No | — | Only keep jobs whose location contains this text (case-insensitive) |
| maxJobs | integer | No | 50 | Maximum number of jobs to return, capped at 500 |
| maxPages | integer | No | 3 | Maximum number of Arbeitnow API pages to fetch (~100 jobs/page) |

### Output example

```json
{
  "jobId": "senior-backend-engineer-acme-berlin",
  "title": "Senior Backend Engineer",
  "company": "Acme GmbH",
  "location": "Berlin, Germany",
  "remote": true,
  "visaSponsorship": true,
  "jobTypes": ["Full-time"],
  "tags": ["go", "postgres", "kubernetes"],
  "description": "We're looking for a senior backend engineer to...",
  "postedAt": "2026-04-20T10:00:00.000Z",
  "applyUrl": "https://www.arbeitnow.com/jobs/companies/acme/senior-backend-engineer-berlin",
  "url": "https://www.arbeitnow.com/jobs/companies/acme/senior-backend-engineer-berlin"
}
```

Download results as **JSON, CSV, Excel, HTML, or XML** from the Run's Dataset tab, or pull them programmatically via the [Apify API](https://docs.apify.com/api/v2) or [Dataset API](https://docs.apify.com/api/v2#/reference/datasets).

### Use cases

- Building a job board or newsletter aggregating German/EU tech roles
- Monitoring specific companies or keywords for new openings
- Lead generation for recruiters sourcing candidates by tech stack tag
- Market research on remote-work and visa-sponsorship availability in the German job market
- Feeding job listing data into an internal ATS, CRM, or BI dashboard via API or scheduled export

### How to scrape Arbeitnow jobs

1. Open **Arbeitnow Jobs Scraper** in the [Apify Console](https://console.apify.com) and click **Try for free**.
2. Set optional filters — `keywords`, `location`, `remote`, `visaSponsorship` — or leave them blank to fetch the newest listings.
3. Set `maxJobs` and `maxPages` to control how much data the run collects.
4. Click **Start** and wait for the run to finish — most runs complete in under a minute.
5. Open the **Dataset** tab to preview, filter, and export results as JSON, CSV, or Excel.
6. For recurring monitoring, add a [Schedule](https://docs.apify.com/platform/schedules) or call the actor via the [Apify API](https://docs.apify.com/api/v2) or [webhooks](https://docs.apify.com/platform/integrations/webhooks).

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run_input = {
    "keywords": "backend engineer",
    "visaSponsorship": False,
    "remote": True,
    "location": "Berlin",
    "maxJobs": 50,
    "maxPages": 3,
}

run = client.actor("parsebird/arbeitnow-jobs-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], "-", item["company"])
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const input = {
    keywords: 'backend engineer',
    visaSponsorship: false,
    remote: true,
    location: 'Berlin',
    maxJobs: 50,
    maxPages: 3,
};

const run = await client.actor('parsebird/arbeitnow-jobs-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(items);
```

### How much does it cost to scrape Arbeitnow jobs?

Arbeitnow Jobs Scraper uses **pay-per-event (PPE)** pricing — you're charged only for jobs actually returned, not for compute time.

| Plan | Price per event | Price per 1,000 jobs |
|------|-----------------|-----------------------|
| Free | $0.00099 | $0.99 |
| Bronze | $0.00089 | $0.89 |
| Silver | $0.00079 | $0.79 |
| Gold | $0.00069 | $0.69 |

One `job-scraped` event fires per job pushed to the dataset. Scraping 500 jobs on the Free plan costs about **$0.50**. Every new Apify account gets [free platform credits](https://apify.com/pricing) to try the actor before paying anything.

### Is it legal to scrape Arbeitnow.com?

Yes. Arbeitnow Jobs Scraper reads only Arbeitnow's own **public job board API**, which the site publishes for third-party use. It does not access private, authenticated, or paywalled data. Scraping publicly available data is generally legal, but you're responsible for using the collected data in compliance with Arbeitnow's terms of service and applicable data protection laws (e.g. GDPR) in your jurisdiction. See Apify's [guide to the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) for more detail.

### Other job scraper Actors

- [Hiring.cafe Jobs Scraper](https://apify.com/parsebird/hiring-cafe-scraper) — 2.8M+ aggregated job postings across 46 ATS platforms
- [RemoteOK Jobs Scraper](https://apify.com/parsebird/remoteok-jobs-scraper) — remote job listings with salary and skill tags
- [Himalayas Remote Jobs Scraper](https://apify.com/parsebird/himalayas-remote-jobs-scraper) — remote-first job board scraper
- [Wellfound Jobs Scraper](https://apify.com/parsebird/wellfound-jobs-scraper) — startup job listings from Wellfound (AngelList Talent)

### FAQ

**How fresh is the Arbeitnow job data?**
Arbeitnow updates its job board roughly every hour, and this actor always fetches live data at run time — there's no cached or stale dataset.

**Is `visaSponsorship` an official Arbeitnow field?**
No. Arbeitnow's public API does not expose a dedicated visa-sponsorship field, and its documented `visa_sponsorship` query parameter does not actually filter results. This actor derives `visaSponsorship` as a best-effort signal by matching visa- and sponsorship-related phrases in the job title, tags, and description. Treat it as a helpful heuristic, not a guarantee — always confirm sponsorship directly with the employer.

**Can I schedule recurring runs?**
Yes. Use Apify's [Schedules](https://docs.apify.com/platform/schedules) feature to run this actor daily, hourly, or on any interval, and pair it with a webhook or integration to get notified of new listings.

**Does this actor use proxies or require login?**
No. It queries Arbeitnow's public job board API directly, so no proxy configuration or authentication is needed.

**What happens if my filters match no jobs?**
The run finishes successfully with an empty dataset — no error is raised. Try loosening `keywords` or `location`, or increasing `maxPages`.

**Can I access this via API?**
Yes. Every Apify actor exposes a full [REST API](https://docs.apify.com/api/v2), so you can start runs, poll status, and fetch results programmatically from any language or platform. See the Python and JavaScript examples above.

**Something not working?**
Open an issue on the actor's **Issues** tab in Apify Console — feedback and bug reports are reviewed regularly.

# Actor input Schema

## `keywords` (type: `string`):

Only keep jobs whose title contains this text. Case-insensitive. Example: "backend engineer". Leave empty to fetch all jobs.

## `visaSponsorship` (type: `boolean`):

Keep only jobs whose title, tags, or description mention visa sponsorship. Arbeitnow does not expose a dedicated visa-sponsorship field in its API, so this is a best-effort keyword match, not an official flag.

## `remote` (type: `boolean`):

Keep only jobs Arbeitnow marks as remote-eligible.

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

Only keep jobs whose location contains this text. Case-insensitive. Example: "Berlin" or "Germany". Leave empty for all locations.

## `maxJobs` (type: `integer`):

Maximum number of jobs to return. Capped at 500 per run. Start low for a quick, cheap test run.

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

Maximum number of Arbeitnow API pages to fetch (roughly 100 jobs per page). The run also stops early once Max Jobs is reached.

## Actor input object example

```json
{
  "keywords": "",
  "visaSponsorship": false,
  "remote": false,
  "location": "",
  "maxJobs": 20,
  "maxPages": 2
}
```

# Actor output Schema

## `dataset` (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 = {
    "keywords": "",
    "visaSponsorship": false,
    "remote": false,
    "location": "",
    "maxJobs": 20,
    "maxPages": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/arbeitnow-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": "",
    "visaSponsorship": False,
    "remote": False,
    "location": "",
    "maxJobs": 20,
    "maxPages": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/arbeitnow-jobs-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 '{
  "keywords": "",
  "visaSponsorship": false,
  "remote": false,
  "location": "",
  "maxJobs": 20,
  "maxPages": 2
}' |
apify call parsebird/arbeitnow-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/arbeitnow-jobs-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/CZQG7aSB9dTmrBVcd/builds/ZgmxmUcll6kpB8Y6U/openapi.json
