# 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
- **Features:** Limited permissions
- **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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Arbeitnow Jobs Scraper 🇪🇺🇩🇪 — EU & DACH Job Listings, Visa & Remote

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/haketa/arbeitnow-scraper)
[![Maintenance](https://img.shields.io/badge/Maintained-Active-brightgreen?style=flat-square)](https://apify.com/haketa/arbeitnow-scraper)
[![Data Format](https://img.shields.io/badge/Data-JSON%20%7C%20CSV%20%7C%20Excel-blue?style=flat-square)](https://apify.com/haketa/arbeitnow-scraper)
[![Pagination](https://img.shields.io/badge/Pagination-1000%2B%20Items-blueviolet?style=flat-square)](https://apify.com/haketa/arbeitnow-scraper)
[![Proxy](https://img.shields.io/badge/Proxy-Datacenter%20Optimized-success?style=flat-square)](https://apify.com/haketa/arbeitnow-scraper)

Extract European and DACH (Germany, Austria, Switzerland) job postings from [Arbeitnow](https://www.arbeitnow.com/), the premier platform for English-speaking, remote-friendly, and visa-sponsorship roles across Europe. Collect structured real-time employment data including job titles, hiring company names, office locations, remote eligibility flags, employment contract types, skill tags, complete job descriptions (in both HTML and clean plain text), and publication timestamps.

***

### ⚡ At a glance

| Feature | Specification |
|---|---|
| **Target Website** | [Arbeitnow](https://www.arbeitnow.com/) |
| **Geographic Scope** | Germany, Austria, Switzerland, Netherlands, France, United Kingdom, and remote EU positions |
| **Specialization** | English-speaking tech positions, international talent relocation, visa sponsorship |
| **Key Attributes** | Job Title, Company, Location, Remote Flag, Contract Types, Skills/Tags, HTML & Text Description, Posted Date |
| **Output Formats** | JSON, CSV, XML, Excel (XLSX), HTML Table, RSS, Apify API |
| **Pagination Limit** | Unlimited / 1,000+ jobs per execution (`maxPages: 0` = automatic multi-page crawl) |
| **Proxy Requirement** | Apify Datacenter Proxy (ultra-low operating cost, zero residential bandwidth) |
| **Execution Velocity** | 250–300 jobs per page in under 3 seconds; whole board in seconds |
| **Deduplication** | In-memory deduplication indexed by unique job slug |
| **Integrations** | Google Sheets, Airtable, Make, Zapier, Webhooks, BigQuery, Snowflake, Slack |
| **Use Cases** | Relocation talent sourcing, recruitment intelligence, tech salary benchmarking, automated job boards |

***

### 🔎 Why scrape Arbeitnow?

[Arbeitnow](https://www.arbeitnow.com/) is widely recognized by international professionals as the go-to portal for finding careers in Germany and Europe without requiring native-level German fluency. It curates high-growth opportunities across Berlin, Munich, Hamburg, Frankfurt, Amsterdam, Zurich, and remote-first European companies.

Key data signals that make Arbeitnow invaluable:

- **Verified Visa Sponsorship Opportunities**: Filter directly for employers willing to sponsor work permits, EU Blue Cards, and relocation packages.
- **English-First Corporate Cultures**: Avoid scouring generalist local boards where 90% of postings require fluent local language skills.
- **Dual Description Extraction**: Delivers both structured HTML formatting (for job board republishing) and sanitized plain text (for NLP parsing, keyword extraction, and LLM embedding).
- **Hourly Cadence Updates**: Listings are posted in real-time, allowing recruiters and job search engines to capture fresh vacancies before competitors.

Browsing vacancies manually is tedious and impossible to automate for analytics. This **Arbeitnow scraper** automates end-to-end extraction, converting thousands of European opportunities into clean, analysis-ready spreadsheets and API feeds.

***

### 🏆 Comparison: Arbeitnow Scraper vs. Alternatives

| Feature | Manual Job Search | Traditional Web Crawlers | Arbeitnow Scraper (This Actor) |
|---|---|---|---|
| **Speed** | 10–20 jobs / hour | 50–100 jobs / min | **1,500–3,000 jobs / min** |
| **Pagination Depth** | Click next page manually | Breaks on JavaScript | **1,000+ jobs / complete catalogue coverage** |
| **Visa Filter Accuracy** | Manual scanning of text | Often misses visa status | **Native API-level visa sponsorship filtering** |
| **Description Formatting** | Copy-pasting fragments | Raw unparsed markup | **Dual-format: Clean HTML + Sanitized Plain Text** |
| **Timestamp Precision** | Vague "3 days ago" | Inconsistent string formats | **Dual ISO 8601 string + Unix Epoch timestamps** |
| **Deduplication** | Manual cross-checking | Duplicate job titles | **Deterministic slug-based deduplication** |
| **Operating Cost** | High labor hours | Heavy browser overhead | **Pure HTTP architecture ($0.005 / 1,000 jobs)** |

***

### ✨ Key features

- 🇪🇺 **Full EU & DACH Board Coverage**: Extract vacancies across Germany, Austria, Switzerland, and remote-first European organizations.
- 🛂 **Dedicated Visa Sponsorship Filtering**: Toggle `visaSponsorship: true` to exclusively retrieve roles offering relocation assistance and visa sponsorships.
- 🏡 **Remote Eligibility Filtering**: Toggle `remoteOnly: true` to isolate distributed and home-office opportunities.
- 🔍 **Targeted Keyword & Tag Queries**: Query specific job titles (`"Software Engineer"`, `"Product Manager"`) or skill categories (`"Python"`, `"React"`, `"Fintech"`).
- 🔄 **Unlocked 1,000+ Deep Pagination**: Configure `maxItems` to 1,000, 2,500, or more. Setting `maxPages: 0` allows unconstrained paging across the entire catalogue.
- 📝 **Dual Description Parsing**: Every job includes `description` (original rich HTML with lists and styling) and `descriptionText` (plain ASCII text stripped of markup).
- 📅 **Standardized Temporal Fields**: Provides `createdAt` formatted as ISO 8601 alongside numeric `createdAtTimestamp` for date-math filtering.
- 🛡️ **Zero Duplicate Guarantees**: Global deduplication index keyed on permanent `slug` identifiers prevents duplicate storage.
- ⚡ **Lightweight Pure HTTP Pipeline**: Runs entirely without headless browsers, delivering exceptional throughput and minimal RAM usage.

***

### 💼 Business & analytical use cases

#### 1. International Talent Recruitment & Candidate Matching

Headhunters and technical staffing agencies can systematically monitor companies actively hiring English-speaking developers, data scientists, and engineers with visa support.

#### 2. Automated Job Board Aggregation & Content Curation

Job portal founders can populate niche job boards (e.g. "Remote Tech in Germany", "Relocate to Europe") on an automated hourly cron schedule.

#### 3. Competitor Hiring Velocity Intelligence

Analyze hiring spikes across European tech scale-ups and established multinationals to gauge product expansion initiatives and engineering resource allocation.

#### 4. Labor Market & Tech Stack Demand Studies

Conduct empirical research on the demand for specific programming languages, cloud providers (AWS vs. GCP vs. Azure), and tech frameworks across EU commercial hubs.

#### 5. Candidate Job-Alert Automations

Job seekers can configure automated scraper runs connected to Slack, Discord, or email webhooks to receive real-time alerts the instant a relevant role is published.

***

### 📥 Input parameters

The scraper accepts JSON input via the Apify API or directly within the Apify Console.

```json
{
  "searchQuery": "developer",
  "tag": "IT",
  "visaSponsorship": true,
  "remoteOnly": false,
  "maxItems": 100,
  "maxPages": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Input fields description

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchQuery` | `string` | `""` | Optional text query to filter job titles and descriptions (e.g. `"golang"`, `"marketing"`). |
| `tag` | `string` | `""` | Optional category or skill tag filter (e.g. `"IT"`, `"Germany"`, `"DevOps"`). |
| `visaSponsorship` | `boolean` | `false` | When `true`, filters strictly for employers that offer work visa sponsorships. |
| `remoteOnly` | `boolean` | `false` | When `true`, filters strictly for positions tagged as fully remote. |
| `maxItems` | `integer` | `100` (prefill) | Maximum total jobs to extract. Set `0` for unconstrained extraction. |
| `maxPages` | `integer` | `0` | Maximum API pages to fetch (250–300 jobs/page). `0` = auto/unlimited governed by `maxItems`. |
| `proxyConfiguration` | `object` | `{ "useApifyProxy": true }` | Standard Datacenter proxies are fully supported. |

***

### 📊 Output data structure

The scraper streams normalized job vacancy records directly into the default Apify Dataset.

#### 🏷️ Job vacancy fields

| Field | Type | Coverage | Description |
|---|---|---|---|
| `slug` | `string` | 🟢 High (100%) | Unique URL slug identifier for the vacancy. |
| `title` | `string` | 🟢 High (100%) | Official job title of the open position. |
| `company` | `string` | 🟢 High (100%) | Name of the hiring company or organization. |
| `location` | `string` | 🟢 High (95%+) | City, country, or regional work location. |
| `remote` | `boolean` | 🟢 High (100%) | Boolean flag indicating remote work eligibility. |
| `jobTypes` | `array` | 🟢 High (80%+) | Array of employment types (e.g. `["Full Time"]`). |
| `tags` | `array` | 🟢 High (95%+) | Array of associated skill and industry tags. |
| `url` | `string` | 🟢 High (100%) | Direct canonical application link to the vacancy. |
| `description` | `string` | 🟢 High (100%) | Original formatted HTML body of the job description. |
| `descriptionText` | `string` | 🟢 High (100%) | Plain text version stripped of HTML markup and extra whitespace. |
| `createdAt` | `string` | 🟢 High (100%) | ISO 8601 UTC timestamp of job publication. |
| `createdAtTimestamp` | `number` | 🟢 High (100%) | Numeric Unix epoch timestamp (seconds) of posting. |
| `scrapedAt` | `string` | 🟢 High (100%) | ISO 8601 UTC timestamp of data extraction. |

***

### 📦 Sample JSON record

```json
{
  "slug": "senior-backend-engineer-berlin-10492",
  "title": "Senior Backend Engineer (Go / Kubernetes)",
  "company": "FinTech Scaleup GmbH",
  "location": "Berlin, Germany",
  "remote": true,
  "jobTypes": [
    "Full Time"
  ],
  "tags": [
    "IT",
    "Golang",
    "Kubernetes",
    "Germany",
    "Fintech"
  ],
  "url": "https://www.arbeitnow.com/jobs/companies/fintech-scaleup-gmbh/senior-backend-engineer-berlin-10492",
  "description": "<p>We are seeking an experienced <strong>Senior Backend Engineer</strong> to design high-throughput distributed payment pipelines.</p><ul><li>5+ years backend engineering</li><li>Strong proficiency in Go</li></ul>",
  "descriptionText": "We are seeking an experienced Senior Backend Engineer to design high-throughput distributed payment pipelines. 5+ years backend engineering Strong proficiency in Go",
  "createdAt": "2026-11-10T10:15:00.000Z",
  "createdAtTimestamp": 1794305700,
  "scrapedAt": "2026-11-10T13:42:00.000Z"
}
```

***

### 🚀 Step-by-step developer tutorial

#### Running via Apify Python Client

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "searchQuery": "python",
    "visaSponsorship": True,
    "maxItems": 250,
    "maxPages": 0
}

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

## Fetch results from dataset
items = client.dataset(run["defaultDatasetId"]).list_items().items
for job in items:
    print(f"[{job['company']}] {job['title']} in {job['location']} (Remote: {job['remote']})")
```

#### Running via Apify JavaScript / Node.js Client

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

const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

const run = await client.actor('haketa/arbeitnow-scraper').call({
    tag: 'IT',
    remoteOnly: true,
    maxItems: 100,
    maxPages: 0,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully scraped ${items.length} remote tech jobs from Arbeitnow`);
```

***

### 🏙️ Major European tech hubs covered

Arbeitnow indexes vacancies from leading European startup clusters and established corporate centers:

| City / Hub | Country | Primary Roles & Industries | English-Language Prevalence |
|---|---|---|---|
| **Berlin** | Germany | FinTech, E-Commerce, SaaS, AI Startups | 🟢 Extremely High (English-first) |
| **Munich** | Germany | Automotive Tech, B2B SaaS, Cloud Infrastructure | 🟢 High |
| **Amsterdam** | Netherlands | FinTech, AdTech, Logistics, TravelTech | 🟢 Extremely High (English-first) |
| **Frankfurt** | Germany | Banking Tech, Cybersecurity, FinTech | 🟡 High / Bilingual |
| **Hamburg** | Germany | MediaTech, Games Industry, Logistics | 🟡 High / Bilingual |
| **Zurich** | Switzerland | Enterprise Software, DeepTech, Cryptography | 🟢 High |
| **Remote EU** | Pan-European | Distributed engineering, Customer Support, DevOps | 🟢 100% English |

***

### 🔍 Recommended search & filter strategies

| Target Profile | `searchQuery` | `tag` | `visaSponsorship` | `remoteOnly` |
|---|---|---|---|---|
| **Relocation Software Engineer** | `"engineer"` | `"IT"` | `true` | `false` |
| **Fully Remote European Dev** | `"developer"` | `""` | `false` | `true` |
| **Data & Machine Learning** | `"data scientist"` | `"Python"` | `false` | `false` |
| **DevOps & Cloud Architect** | `"devops"` | `"AWS"` | `true` | `false` |
| **English Product Manager** | `"product manager"` | `"Marketing"` | `false` | `false` |

***

### 🏗️ Architecture & data processing flow

The actor implements an ultra-lightweight, resilient network workflow:

1. **Parameter Resolution**: Formats search terms, category tags, and visa sponsorship flags into query parameters.
2. **Page Pagination**: Iterates through paginated pages using cursor offset pointers, dynamically evaluating the `links.next` attribute.
3. **Dual Normalization**: Extracts raw job payloads, sanitizes HTML descriptions with Cheerio, and converts unix timestamps to ISO dates.
4. **Deduplication Engine**: Filters incoming postings through an in-memory `slug` cache to prevent redundant writes across runs.
5. **Direct Dataset Ingestion**: Pushes batch arrays immediately into the dataset, guaranteeing data safety.

```
[Filter Parameters: searchQuery, tag, visaSponsorship]
                         │
                         ▼
                ┌──────────────────┐
                │ Query Formatter  │
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │ Request Dispatch │  ◄── Offset pagination (?page=1, 2, 3...)
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │ Dual Description │  ◄── HTML + Text normalization
                │ Normalizer Engine│
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │ Slug Deduplicator│  ◄── In-memory ID cache (0 duplicates)
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │  Apify Dataset   │  ──► JSON / CSV / Excel / API Export
                └──────────────────┘
```

***

### 🔔 Webhook notification configuration

Trigger downstream webhooks whenever a job extraction task finishes:

```json
{
  "event": "ACTOR.RUN.SUCCEEDED",
  "actorId": "0fhPqxnxHr0kaW1pC",
  "actorRunId": "{{runId}}",
  "datasetId": "{{defaultDatasetId}}",
  "itemCount": 500,
  "downloadCsvUrl": "https://api.apify.com/v2/datasets/{{defaultDatasetId}}/items?format=csv",
  "downloadJsonUrl": "https://api.apify.com/v2/datasets/{{defaultDatasetId}}/items?format=json"
}
```

***

### 💡 Practical scraping tips

- **Extracting entire job catalogs**: To extract all currently open positions, leave `searchQuery` and `tag` empty, set `maxPages: 0`, and set `maxItems` to `10000`. The scraper will collect thousands of listings in seconds.
- **Filtering for visa relocation**: Combine `visaSponsorship: true` with specific tech keywords to discover companies that actively sponsor international candidate relocations to Germany and the EU.
- **Using plain-text for LLM processing**: In downstream AI workflows, use `descriptionText` rather than `description` to save token costs and prevent HTML formatting noise during vector embeddings.
- **Scheduling frequent syncs**: Arbeitnow updates listings hourly. Setting an Apify schedule to run every 2–4 hours keeps your job boards fresh with new listings.

***

### 🔄 Integrations & automated workflows

- **Google Sheets & Notion Databases**: Automatically append newly posted English-speaking vacancies to a collaborative candidate spreadsheet.
- **Slack & Discord Alerts**: Send real-time notifications to recruitment channels when new positions match target skill tags.
- **PostgreSQL / MongoDB Warehousing**: Maintain an up-to-date European job repository for salary benchmarking and market intelligence.

***

### ❓ Frequently asked questions

##### How many jobs can I scrape in a single run?

You can scrape as many jobs as Arbeitnow currently lists across your criteria—hundreds to thousands of jobs. With `maxPages: 0`, pagination continues until all matching pages are retrieved or your `maxItems` threshold is reached.

##### Does Arbeitnow cover remote roles across all of Europe?

Yes! Many companies based in Germany, the Netherlands, and Scandinavia post European-wide remote roles on Arbeitnow. Use `remoteOnly: true` to isolate these positions.

##### What proxy configuration should I select?

Standard **Apify Datacenter Proxies** (`{ "useApifyProxy": true }`) work seamlessly. Residential proxies are unnecessary and will unnecessarily inflate data costs.

##### How frequently are listings published on Arbeitnow?

Jobs are ordered chronologically by `createdAtTimestamp` (newest first) and updated roughly hourly on the platform.

##### Can I republish the job descriptions?

Yes, `description` preserves the raw HTML formatting (bullet points, bold tags, paragraphs), making it ready for display in custom frontend web applications.

##### How does Arbeitnow differ from general platforms like LinkedIn or StepStone?

Arbeitnow is curated specifically for international candidates seeking English-speaking employment in the EU. Unlike StepStone or regional portals where German or French language fluency is often an unstated prerequisite, Arbeitnow listings explicitly emphasize international backgrounds and visa support.

##### Are contract types (Full Time, Part Time, Contract) supported?

Yes, the `jobTypes` array returns standardized strings such as `["Full Time"]`, `["Part Time"]`, or `["Contract"]` whenever published by the employer.

##### Can I export jobs directly to Excel or CSV?

Yes! In the Apify Console Dataset tab, click Export and select **CSV**, **Excel (XLSX)**, or **JSON** for instant download.

***

### 📋 Changelog

#### Version 1.2 (2026-11)

- **Deep Pagination Unlock**: Enabled unconstrained 1,000+ job extraction runs; set `maxPages: 0` as the default for automatic deep crawls.
- **Optimized Prefill Execution**: Fine-tuned default parameters for rapid demonstration runs (<15s) on standard Datacenter proxy pools.
- **Enhanced Description Normalization**: Improved Cheerio plain-text stripping routines and timestamp formatting.
- **Standardized Schema Compliance**: Updated actor schemas to adhere to latest Apify specification standards.

#### Version 1.1

- Added dual-format job description extraction (`description` HTML and `descriptionText` plain text).
- Added support for `visaSponsorship` and `remoteOnly` filtering.

#### Version 1.0

- Initial release with keyword queries, company names, locations, and tag filtering.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/arbeitnow-scraper/changelog.md

# 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 300 jobs). 0 = auto/unlimited governed by Max Items.

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

Datacenter proxy works out of the box.

## Actor input object example

```json
{
  "searchQuery": "",
  "tag": "",
  "visaSponsorship": false,
  "remoteOnly": false,
  "maxItems": 100,
  "maxPages": 0,
  "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": "",
    "visaSponsorship": false,
    "remoteOnly": false,
    "maxItems": 100,
    "maxPages": 0,
    "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": "",
    "visaSponsorship": False,
    "remoteOnly": False,
    "maxItems": 100,
    "maxPages": 0,
    "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": "",
  "visaSponsorship": false,
  "remoteOnly": false,
  "maxItems": 100,
  "maxPages": 0,
  "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/EKFc0r7kat6npUiY4/openapi.json
