# Arbeitnow Jobs Scraper — EU/DACH Jobs (Visa, Remote) (`haketa/arbeitnow-scraper`) Actor

Scrape EU & DACH job listings from Arbeitnow: title, company, location, remote flag, job types, tags, full description and posted date. Filter by keyword, tag, visa sponsorship or remote. English-speaking & visa-friendly jobs in Germany and Europe. No login or API key. Export JSON, CSV, Excel.

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

## Pricing

from $1.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 🇪🇺🇩🇪💼

Extract **EU & DACH job listings from Arbeitnow** — the job board popular for **English-speaking and visa-sponsorship-friendly roles in Germany and Europe** — at scale, without an account or API key. Filter by keyword, tag, visa sponsorship or remote and export clean JSON, CSV or Excel: **title, company, location, remote flag, job types, tags, full description and posted date.**

Perfect for **job seekers targeting Germany/EU, relocation & visa-sponsor research, recruiters sourcing candidates and labor-market datasets.**

***

### 🔑 What this scraper does

- 🇪🇺 **EU / DACH jobs** — roles across Germany, Austria, Switzerland and the wider EU.
- 🛂 **Visa-sponsorship filter** — return only jobs that offer visa sponsorship.
- 🏡 **Remote filter** — return only remote roles.
- 🔎 **Keyword & tag filters** — e.g. `developer`, `marketing`, `IT`, `javascript`.
- 🏢 **Company & location** — employer name and city for every job.
- 🏷️ **Tags & job types** — full-time, part-time, working-student, IT, marketing and more.
- 📝 **Full description** — the complete job description as HTML *and* clean plain text.
- 🕒 **Posted date** — an ISO timestamp of when the job was listed.

No login, no cookies to paste, no API key. Pick your filters, press start, export.

***

### 📋 Example output

```json
{
  "slug": "senior-frontend-engineer-berlin-123456",
  "title": "Senior Frontend Engineer (m/f/d)",
  "company": "Example GmbH",
  "location": "Berlin",
  "remote": true,
  "jobTypes": ["Full-time"],
  "tags": ["Remote", "IT", "Germany"],
  "url": "https://www.arbeitnow.com/jobs/companies/example-gmbh/senior-frontend-engineer-berlin-123456",
  "description": "<div><p>We are looking for a Senior Frontend Engineer...</p></div>",
  "descriptionText": "We are looking for a Senior Frontend Engineer...",
  "createdAt": "2026-09-14T08:00:00.000Z",
  "createdAtTimestamp": 1789394673,
  "scrapedAt": "2026-09-14T10:00:00.000Z"
}
```

***

### 🗂️ Fields you get

| Field | Description |
|---|---|
| `slug` | Unique job slug |
| `title` | Job title |
| `company` | Employer name |
| `location` | City / location |
| `remote` | Whether the job is remote (`true`/`false`) |
| `jobTypes` | Employment types (Full-time, Part-time, Working-student…) |
| `tags` | Tags / categories (IT, Marketing, Remote, country…) |
| `url` | Link to the job posting |
| `description` | Full description (HTML) |
| `descriptionText` | Full description as clean plain text |
| `createdAt` | Posted date (ISO 8601) |
| `createdAtTimestamp` | Posted date (Unix timestamp) |
| `scrapedAt` | Scrape timestamp |

> Every job comes with title, company, location, remote flag, job types, tags, description and posted date. Use the filters to narrow to visa-sponsor, remote or keyword-matched roles.

***

### 🚀 How to use

1. Click **Try for free**.
2. Set any filters: **Search Keyword**, **Tag**, **Visa sponsorship only**, **Remote only**.
3. Set **Max Items** / **Max Pages**, then click **Start**.
4. Export as **JSON, CSV, Excel, HTML, RSS**, or via the **Apify API**.

***

### 📝 Example inputs

#### 1. All recent jobs

```json
{ "maxItems": 500 }
```

#### 2. Visa-sponsorship developer jobs

```json
{ "searchQuery": "developer", "visaSponsorship": true, "maxItems": 300 }
```

#### 3. Remote IT jobs

```json
{ "tag": "IT", "remoteOnly": true, "maxItems": 300 }
```

#### 4. Marketing jobs

```json
{ "searchQuery": "marketing", "maxItems": 250 }
```

***

### 💡 Popular use cases

#### 🛂 Relocation & visa research

Find employers in Germany and the EU that sponsor visas — filter for visa-sponsorship roles and study which companies, cities and skills hire international talent.

#### 🌍 Job hunting in the DACH region

Build a focused feed of English-speaking, remote or keyword-matched roles across Germany, Austria and Switzerland.

#### 🧲 Recruiting & sourcing

Monitor new postings by tag, company or location to benchmark competitors and spot hiring trends.

#### 📊 Labor-market research

Aggregate roles, job types and tags to analyze demand by skill, city and remote share across the EU/DACH market.

#### 🤖 AI, LLM & data products

Feed clean, structured EU job data into your own models, dashboards or products.

***

### 👥 Who uses this

- **Job seekers & relocators** targeting Germany and the EU.
- **Recruiters & sourcers** tracking EU/DACH postings.
- **Analysts & researchers** studying labor-market and visa-sponsorship trends.
- **Developers & AI builders** who need European job data via API.

***

### 🎛️ Options

- **Search Keyword** — keyword filter.
- **Tag** — tag/category filter.
- **Visa sponsorship only** — visa-sponsor roles only.
- **Remote only** — remote roles only.
- **Max Items / Max Pages** — control volume (`0` = unlimited; up to 250 jobs per page).
- **Proxy** — Apify Proxy is enabled by default and just works.

***

### ❓ FAQ

**Do I need an account or API key?**
No. Set your filters and run — no login, no key.

**Which regions are covered?**
Germany and the DACH region especially, plus jobs across the wider EU. Arbeitnow is well known for English-speaking and visa-sponsorship-friendly roles.

**Can I get only visa-sponsorship jobs?**
Yes — enable **Visa sponsorship only** to return roles that offer sponsorship.

**Do I get the full job description?**
Yes — both the original HTML (`description`) and a clean plain-text version (`descriptionText`).

**How fresh are the jobs?**
Listings are ordered newest-first by posted date, and each record includes an ISO timestamp.

**How many jobs can I get?**
Hundreds of recent jobs, paged 250 at a time. Use `maxItems` / `maxPages` to control volume, or set them to `0` for everything available.

**What export formats are supported?**
JSON, CSV, Excel, HTML table, RSS, and the Apify API. Connect to Make, Zapier, Google Sheets, Slack, webhooks or an MCP server.

**Is the data structured and clean?**
Yes. Each job is a flat, typed JSON object, de-duplicated by slug, with dates normalized to ISO.

***

### 🔌 Integrations

- Export to **JSON, CSV, Excel, HTML, RSS**.
- Pull via the **Apify API** or client libraries (JavaScript, Python).
- Connect to **Make, Zapier, Google Sheets, Slack, webhooks** and more.
- Use from an **MCP server** in your AI agent / LLM workflow.
- Schedule recurring runs with the **Apify Scheduler** to catch new postings.

***

### ⚖️ Legal & responsible use

This scraper collects **publicly available** job listing information only — the same data any visitor can see on Arbeitnow without logging in. It does not access private messages, accounts, or anything behind authentication.

You are responsible for how you use the collected data. Please:

- Respect Arbeitnow's Terms of Service and all applicable laws.
- Use any personal or company data lawfully and only for legitimate purposes.
- Avoid excessive request rates and scrape responsibly.

This tool is provided for lawful purposes such as job searching, recruiting research and business intelligence. It is not affiliated with, endorsed by, or connected to Arbeitnow.

# Actor input Schema

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

Optional keyword to filter jobs, e.g. "developer", "marketing", "data". Leave empty to get all jobs.

## `tag` (type: `string`):

Optional tag/category filter, e.g. "IT", "Marketing", "Germany", "javascript".

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

Only return jobs that offer visa sponsorship.

## `remoteOnly` (type: `boolean`):

Only return remote jobs.

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

Maximum number of jobs to collect. 0 = unlimited.

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

How many API pages to fetch (each page has up to 250 jobs). 0 = all available pages.

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

Datacenter proxy works out of the box.

## Actor input object example

```json
{
  "visaSponsorship": false,
  "remoteOnly": false,
  "maxItems": 250,
  "maxPages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open to view and export all scraped jobs (JSON, CSV, Excel).

# 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 = {
    "searchQuery": "",
    "tag": "",
    "maxItems": 250,
    "maxPages": 3,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/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 = {
    "searchQuery": "",
    "tag": "",
    "maxItems": 250,
    "maxPages": 3,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/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 '{
  "searchQuery": "",
  "tag": "",
  "maxItems": 250,
  "maxPages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/arbeitnow-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/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/0fhPqxnxHr0kaW1pC/builds/gfNpUbXL02QRrFSwk/openapi.json
