# Arbeitnow Jobs Scraper: Germany & EU, Visa, Salary (`deepmine/arbeitnow-jobs-scraper`) Actor

Arbeitnow jobs scraper for its whole board, on-site and remote: title, company, real posted date, salary, visa sponsorship, city and country, job types, tags, apply link and full description. Filter by keyword, location, remote, visa, tags, job type and date.

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

## Pricing

from $0.39 / 1,000 jobs

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: Germany & EU, Visa, Salary

Arbeitnow scraper: get the latest Arbeitnow jobs, or the ones for your keywords, from its German, Swiss, French, Dutch and UK sites, with visa sponsorship, country, job types, tags, apply link and the full description, in under 2 seconds for 50 jobs. Turn on Accurate posted date for each job's real posted date, salary, city and expiry date.

| 💼 Title | 🏢 Company | 📍 Location | 💰 Salary | 🕒 Job Type | 📅 Posted |
|---|---|---|---|---|---|
| Legal Business Developer (Legal AI Scaleup) | Silvernova GmbH | Munich, Germany | EUR 70,000 - 100,000 per year | Full-time | 2026-10-23 |
| Blockchain Engineer | Blockvora | Zug, Switzerland | USD 80 - 120 per hour | Full-time | 2026-10-23 |
| Responsable Commercial(e) – Showroom & Management des équipes (H/F) | Mia Couture | Arcueil, France | EUR 2,700 - 3,600 per month | Temporary | 2026-10-23 |

<sub>Collected 2026-10-23, with Accurate posted date on (salary and city come from each job's own page).</sub>

**$0.49 per 1,000 jobs** on the Starter plan ($0.58 Free, $0.44 Scale, $0.39 Business). The prefilled run (up to 50 jobs: the latest Arbeitnow jobs, on-site and remote) costs about $0.02.

It reads Arbeitnow's whole board, page by page as far as your search needs (about 5,500 jobs on 2026-10-23, most of them on-site). By default each job comes straight from Arbeitnow's feed, the fastest way there is: on the Apify platform on October 24, 2026, the prefilled run had all 50 jobs in its dataset 1.3 to 1.8 seconds after its container started (5 runs), where the most-used other Arbeitnow scraper took 3.5 seconds in our side-by-side run.

Turn on **Accurate posted date** (`accuratePostedDate`) and it also opens every job's own page before the job goes out. That page gives the job's real posted date: Arbeitnow's feed only says when it last refreshed a listing, which other Arbeitnow scrapers sell as the posted date (on 2026-10-23 some refreshed listings were 60 to 70 days older than that). The page also gives the published salary, the listing's end date, the address, the logo and the benefits. Same price; 50 jobs took 4.1 to 4.4 seconds (2 runs). No login, no browser, no cookies.

Want remote jobs from more boards in one list? [Remote Jobs Aggregator](https://apify.com/deepmine/remote-jobs-aggregator) searches Arbeitnow's remote jobs together with Remote OK, Himalayas, We Work Remotely, Jobicy, Relomote and Working Nomads.

### What you can do with it

- **Hire or job-hunt in Germany and Europe**: filter by city or country (`location`: Berlin, München, Zürich, France), job type (`Werkstudent`, `Praktikum`, `Full-time`) and date, on-site and remote.
- **Find visa-sponsored jobs**: `visaSponsorship` keeps the German jobs Arbeitnow lists with visa sponsorship. Every German row says `true` or `false`.
- **Benchmark pay**: with Accurate posted date on, open the **💰 With Salary** list, which holds every delivered job with a published salary, with numbers you can sort and average (EUR, CHF, GBP).
- **Feed a job board, newsletter or Slack channel**: schedule a daily run with `postedWithinDays` set to 2. With Accurate posted date on, it filters on the real posted date, so refreshed old listings don't come back as new. Send the rows on with `webhookUrl` or an Apify integration.

### Input

```json
{
  "keywords": ["python", "werkstudent"],
  "location": "Berlin",
  "remoteOnly": false,
  "postedWithinDays": 7,
  "maxJobsPerKeyword": 50
}
```

| Field | What it does |
|---|---|
| `keywords` | Words to search for, one per line: python, marketing, werkstudent, data analyst. Each is its own search, matched on the job's title, tags and description (role words like design or sales on the title and tags only). Leave empty for the latest jobs of every kind. You pay per job delivered. |
| `location` | Optional. A city or country the job's location must contain: Berlin, München, Zürich, Germany, Switzerland, France, Netherlands, United Kingdom. Leave empty for every place. |
| `remoteOnly` | Off: every job, on-site and remote (most Arbeitnow jobs are on-site in Germany and Europe). On: only the jobs Arbeitnow lists as remote. |
| `visaSponsorship` | Only jobs Arbeitnow lists with visa sponsorship. Arbeitnow marks this on its German site only, so these are jobs in Germany (75 on 2026-10-23). |
| `postedWithinDays` | Keep only jobs posted in the last N days; older ones cost nothing. By Arbeitnow's listing date, or by the job page's own posted date with Accurate posted date on (Advanced). 0 means any date. Handy for a daily or weekly scheduled run. |
| `maxJobsPerKeyword` | The jobs to keep per keyword (or in all, with no keyword): the best matches (title matches first), newest first. You pay per job, so this caps the cost per keyword. 0 means every job. Default 100. |
| `tags` | More filters. Optional. Keep only jobs that carry at least one of these Arbeitnow tags: Software Development, Marketing, IT, Finance, Sales. Leave empty for every tag. |
| `jobTypes` | More filters. Optional. Keep only jobs whose own Arbeitnow job-type labels contain one of these words: werkstudent, praktikum, internship, freelance, part time, befristet. Leave empty for every job. |
| `employmentTypes` | More filters. Optional. Keep only these job types, read from Arbeitnow's own labels in German, English and French (Unbefristeter arbeitsvertrag = Full-time, Werkstudent = Part-time, Praktikum = Internship). Leave empty for every type. |
| `seniority` | More filters. Optional. Keep only these levels, read from Arbeitnow's labels (berufserfahren, berufseinstieg, teamleitung...) or a clear title word (Senior, Junior, Director); jobs with none are left out. Leave empty for every level. |
| `categories` | More filters. Optional. Keep only jobs in these categories (the boards' own categories, in common words). Leave empty for every category. |
| `country` | More filters. Hidden in the form: 📍 Location does this. A country name: keeps the jobs in that country. |
| `minSalary` | More filters. Hidden in the form: Arbeitnow's salaries are mostly in euros, and this filter reads US dollars a year. |
| `timezone` | More filters. Hidden in the form. Optional UTC offset you work in, e.g. UTC-5, UTC+1, UTC+5:30. Keeps Himalayas jobs that accept it (the only board that lists time zones) and, from the other boards, only jobs open worldwide. |
| `maxResults` | Advanced. Stop after this many jobs in total. You pay per job, so this caps the run's cost. |
| `accuratePostedDate` | Advanced. Read each job's own page for its real posting date (arbeitnow refreshes listings, so the feed date can be weeks late). Slightly slower. Also adds what only the job page has: salary, city, region, postal code, expiry, logo, company page and benefits. |
| `includeDescription` | Advanced. The full job description as plain text. Same price either way; turn it off for smaller rows. |
| `includeDescriptionHtml` | Advanced. Also the board's description as HTML (links and lists kept), in descriptionHtml. Same price; rows get about twice as big. |
| `findContactEmails` | Advanced. For jobs whose description gives no email, look for one on the company's own website (confirmed from the company's name). Charged per job that gets an email this way ($); emails a description gives are always free. Slower. |
| `webhookUrl` | Advanced. Optional. At the end of the run, every job row is POSTed to this URL as JSON, 50 rows a request ({"runId", "batch", "batches", "items": \[...]}). A receiver that fails is reported in the run summary; the jobs stay in the dataset. |
| `webhookSecret` | Advanced. Optional. Sent with each webhook request in the X-Scraper-Secret header. |
| `proxyConfiguration` | Advanced. Apify Proxy (datacenter) by default; the boards' feeds are public, so it only spreads the requests over several IPs. Residential and SERP proxies are replaced with datacenter. Turn it off to connect directly. |
| `boards` | Advanced. Fixed to `arbeitnow` (hidden in the form). |

### Output

One row per job, newest first. A job that several keywords find comes once, under the first keyword that found it.

Two datasets, both with the same rows:

- **💼 All Jobs** (default dataset). Views: **🇪🇺 Arbeitnow Jobs** (🖼️ Logo, 💼 Title, 🏢 Company, 📍 Location, 🌍 Country, 🏠 Remote, 🛂 Visa, 💰 Salary, 🕒 Job Type, 📅 Posted, ⏳ Expires, 📝 Apply, 🔗 Job Page), then **📊 Overview**, **📝 Details** and **📇 Contacts (opt-in)**.
- **💰 With Salary**: the delivered jobs that publish a salary, at no extra charge (with Accurate posted date on: salaries are on the job pages).

#### Output fields

In row order. Fields marked (page) come from each job's own page: filled with `accuratePostedDate` on, empty otherwise.

- `companyLogo`: the company's logo from its Arbeitnow page (page).
- `title`: job title, as the employer wrote it.
- `company`: company name.
- `location`: where the job is, as Arbeitnow prints it: `Berlin`, `Paris`, `Germany`, `Remote job`.
- `city`: the job's city, from its page's address (page).
- `region`: its state, canton or region (`Bavaria`, `Canton of Zug`) (page).
- `postalCode`: its postal code, when the page gives one (page).
- `country`: the job's country: the page's address (with `accuratePostedDate`), else the Arbeitnow site that lists it (arbeitnow.com Germany, .ch Switzerland, .fr France, .nl Netherlands, .co.uk United Kingdom).
- `countryCode`: the country's two-letter code (`DE`, `CH`, `FR`, `NL`, `GB`).
- `isWorldwide`: `true` only when the location says anyone anywhere can apply.
- `isRemote`: `true` when Arbeitnow lists the job as remote.
- `visaSponsorship`: `true` when Arbeitnow lists the job with visa sponsorship, `false` when it doesn't. Arbeitnow marks this on its German site only, so jobs on its UK, Swiss, French and Dutch sites have it empty.
- `employmentType`: `Full-time`, `Part-time`, `Contract`, `Temporary` or `Internship`, read from Arbeitnow's own labels (`Unbefristeter arbeitsvertrag`, `Werkstudent`, `Praktikum`, `CDI`...).
- `seniority`: `Entry-level`, `Mid-level`, `Senior`, `Manager` or `Executive`, from Arbeitnow's labels (`berufserfahren`, `berufseinstieg`, `teamleitung`) or a clear title word; empty when neither says.
- `category`: the job's category in common words (Software Development, Marketing, Finance & Legal...), from its tags.
- `salary`: the pay the employer published, e.g. `EUR 60,000 - 100,000 per year`. Empty when the job lists none (page, as are the next four).
- `salaryMin`: the lowest pay in the range, as a number.
- `salaryMax`: the highest pay in the range, as a number.
- `salaryCurrency`: ISO currency code, e.g. `EUR`, `CHF`, `GBP`.
- `salaryPeriod`: `year`, `month`, `week`, `day` or `hour`.
- `postedAt`: when the job was posted, in UTC (`2026-10-23T16:42:06Z`). By default Arbeitnow's feed time, the same as `listedAt` (what other Arbeitnow scrapers give). With `accuratePostedDate`, from the job's own page, and empty when the page doesn't say or didn't answer: never the refresh time.
- `listedAt`: when Arbeitnow last listed or refreshed the job (its API's `created_at`), in UTC. Other Arbeitnow scrapers show this as the posted date; a refreshed listing can be weeks newer than the job.
- `expiresAt`: when the job's listing ends (its page's `validThrough`), in UTC (page).
- `jobUrl`: the job's page on Arbeitnow.
- `applyUrl`: where to apply: the employer's own link when the description gives one, else the Arbeitnow page.
- `contactEmail`: a contact email the description gives (or, with `findContactEmails`, the company's website).
- `contactEmailSource`: the page the email was found on.
- `companyWebsite`: the company's own website, when its Arbeitnow page links one (page), or `findContactEmails` finds it.
- `companyUrl`: the company's page on Arbeitnow (page).
- `locations`: the job's location and country.
- `timezones`: empty: Arbeitnow lists no time zones.
- `tags`: the tags Arbeitnow gives the job (Software Development, Marketing, IT...).
- `jobTypes`: Arbeitnow's own job-type labels, as it prints them (`Full Time`, `berufserfahren`, `CDI`...).
- `boardCategory`: the same tags, as one line.
- `benefits`: the benefits the job's page lists, when it lists any (page).
- `description`: the full job description as plain text (on by default).
- `descriptionHtml`: the description as HTML. Only with `includeDescriptionHtml`.
- `sources`: `Arbeitnow`.
- `sourceUrls`: the job's page on Arbeitnow.
- `jobId`: Arbeitnow's job slug.
- `keywords`: your keywords that found the job. Empty for a run without any.
- `scrapedAt`: when this run read the job (UTC).

Example row (description shortened):

```json
{
  "companyLogo": "https://www.arbeitnow.com/storage/company_logo/6c758955e82de9d4924df2c6eed72439.png",
  "title": "Legal Business Developer (Legal AI Scaleup)",
  "company": "Silvernova GmbH",
  "location": "Munich",
  "city": "Munich",
  "region": "Bavaria",
  "postalCode": "80992",
  "country": "Germany",
  "countryCode": "DE",
  "isWorldwide": false,
  "isRemote": false,
  "visaSponsorship": false,
  "employmentType": "Full-time",
  "seniority": "Mid-level",
  "category": "Sales",
  "salary": "EUR 70,000 - 100,000 per year",
  "salaryMin": 70000,
  "salaryMax": 100000,
  "salaryCurrency": "EUR",
  "salaryPeriod": "year",
  "postedAt": "2026-10-23T14:06:06Z",
  "listedAt": "2026-10-23T19:00:47Z",
  "expiresAt": "2026-12-04T20:00:47Z",
  "jobUrl": "https://www.arbeitnow.com/jobs/companies/silvernova-gmbh/legal-business-developer-legal-ai-scaleup-munich-359978",
  "applyUrl": "https://www.arbeitnow.com/jobs/companies/silvernova-gmbh/legal-business-developer-legal-ai-scaleup-munich-359978",
  "contactEmail": null,
  "contactEmailSource": null,
  "companyWebsite": null,
  "companyUrl": "https://www.arbeitnow.com/jobs/companies/silvernova-gmbh",
  "locations": [
    "Munich",
    "Germany"
  ],
  "timezones": null,
  "tags": [
    "Business Development"
  ],
  "jobTypes": [
    "Unbefristeter arbeitsvertrag",
    "berufserfahren"
  ],
  "boardCategory": "Business Development",
  "benefits": null,
  "description": "Als Legal Engineer / Legal Business Developer arbeitest du an der Schnittstelle von Recht, KI-Produktentwicklung und Kundenerfolg. Du bringst deine juristisc...",
  "descriptionHtml": null,
  "sources": [
    "Arbeitnow"
  ],
  "sourceUrls": [
    "https://www.arbeitnow.com/jobs/companies/silvernova-gmbh/legal-business-developer-legal-ai-scaleup-munich-359978"
  ],
  "jobId": "legal-business-developer-legal-ai-scaleup-munich-359978",
  "keywords": null,
  "scrapedAt": "2026-10-23T20:33:32Z"
}
```

The run's **🧾 Run summary** (the OUTPUT record in the key-value store) shows how much of Arbeitnow's board the run read (`arbeitnowBoard`: pages, jobs listed, whether it read the board to its end), how many job pages answered, jobs that were taken down, the jobs matched per keyword, and any error.

### Credit the boards

Arbeitnow's API terms ask you to link back to the site: keep each job's `sourceUrls` (a link to the original posting) and name the board from `sources` when you show its jobs. Don't submit its jobs to third-party job sites such as Google Jobs, LinkedIn Jobs or Jooble as your own.

### When something goes wrong

- If Arbeitnow's feed doesn't answer, or answers in a format we can't read, the run ends as **failed** with the reason in the status message and the run summary, so you notice. If a later page fails, the jobs read so far go out and the run summary says the board wasn't read to its end.
- With `accuratePostedDate` on, a job whose own page doesn't answer still goes out, without its posted date, salary and address. If one of Arbeitnow's sites stops answering job pages, the run summary names it (`sitesWithoutJobPages`).
- With `accuratePostedDate` on, a job Arbeitnow has taken down (its page answers 404 or 410) is left out, and isn't charged.
- With `postedWithinDays` and `accuratePostedDate`, a job whose page gives no date is left out, since its age can't be checked.
- A keyword with no Arbeitnow job gives a clean empty result: the run reads the whole board, and the run summary shows it did (`readToTheEnd`).
- When `maxResults` or your spending limit is reached, the run stops after delivering every job the limit pays for; you pay only for the jobs delivered.

### Pricing

You pay per job delivered: $0.49 per 1,000 jobs on the Starter plan ($0.58 Free, $0.44 Scale, $0.39 Business). Accurate posted dates, salaries, addresses, descriptions and webhook delivery are included at the same price. No start fee. With `findContactEmails` on, a job that gets its contact email from the company's website adds $0.98 per 1,000 such jobs. Requests, retries, jobs left out by your filters, jobs taken down and the 💰 With Salary list cost nothing.

Examples: the prefilled run (up to 50 jobs) about $0.02; 1,000 jobs $0.49; 5,000 jobs $2.45.

### FAQ

**How many jobs does it reach?** All of Arbeitnow's board: about 5,500 jobs on 2026-10-23, from its German site (about 2,100), UK (1,200), Swiss (900), French (900) and Dutch (400) sites. Most are on-site; turn on `remoteOnly` for the remote ones (about 8%).

**Why is the posted date sometimes older than on other Arbeitnow scrapers?** With `accuratePostedDate` on, this Actor reads the date from the job's own page and keeps the refresh time as `listedAt`. Other Arbeitnow scrapers show the time Arbeitnow last refreshed the listing.

**Why is Accurate posted date off by default?** Speed. Off, every job comes from Arbeitnow's feed and 50 jobs are in your dataset in under 2 seconds. On, the run also opens each job's page (a few seconds more for 50 jobs, about 3 minutes for 1,000) for the real posted date, salary, address, expiry and logo, at the same price.

**Why do only German jobs say whether they sponsor a visa?** Arbeitnow's visa sponsorship filter covers its German site only. Asked for visa jobs, it returns all of its other sites' jobs unfiltered. This Actor doesn't call those visa-sponsored.

**Does it collect personal data?** Rows hold jobs and companies, no recruiter profiles.

### Feedback

Missing a field or a filter? Open an issue on the Issues tab and we'll look at it. If the data helped you, a short review on this page helps other people find it.

# Actor input Schema

## `keywords` (type: `array`):

Words to search for, one per line: python, marketing, werkstudent, data analyst. Each is its own search, matched on the job's title, tags and description (role words like design or sales on the title and tags only). Leave empty for the latest jobs of every kind. You pay per job delivered.

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

Optional. A city or country the job's location must contain: Berlin, München, Zürich, Germany, Switzerland, France, Netherlands, United Kingdom. Leave empty for every place.

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

Off: every job, on-site and remote (most Arbeitnow jobs are on-site in Germany and Europe). On: only the jobs Arbeitnow lists as remote.

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

Only jobs Arbeitnow lists with visa sponsorship. Arbeitnow marks this on its German site only, so these are jobs in Germany (75 on 2026-10-23).

## `postedWithinDays` (type: `integer`):

Keep only jobs posted in the last N days; older ones cost nothing. By Arbeitnow's listing date, or by the job page's own posted date with Accurate posted date on (Advanced). 0 means any date. Handy for a daily or weekly scheduled run.

## `maxJobsPerKeyword` (type: `integer`):

The jobs to keep per keyword (or in all, with no keyword): the best matches (title matches first), newest first. You pay per job, so this caps the cost per keyword. 0 means every job. Default 100.

## `tags` (type: `array`):

Optional. Keep only jobs that carry at least one of these Arbeitnow tags: Software Development, Marketing, IT, Finance, Sales. Leave empty for every tag.

## `jobTypes` (type: `array`):

Optional. Keep only jobs whose own Arbeitnow job-type labels contain one of these words: werkstudent, praktikum, internship, freelance, part time, befristet. Leave empty for every job.

## `employmentTypes` (type: `array`):

Optional. Keep only these job types, read from Arbeitnow's own labels in German, English and French (Unbefristeter arbeitsvertrag = Full-time, Werkstudent = Part-time, Praktikum = Internship). Leave empty for every type.

## `seniority` (type: `array`):

Optional. Keep only these levels, read from Arbeitnow's labels (berufserfahren, berufseinstieg, teamleitung...) or a clear title word (Senior, Junior, Director); jobs with none are left out. Leave empty for every level.

## `categories` (type: `array`):

Optional. Keep only jobs in these categories (the boards' own categories, in common words). Leave empty for every category.

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

Hidden in the form: 📍 Location does this. A country name: keeps the jobs in that country.

## `minSalary` (type: `integer`):

Hidden in the form: Arbeitnow's salaries are mostly in euros, and this filter reads US dollars a year.

## `timezone` (type: `string`):

Optional UTC offset you work in, e.g. UTC-5, UTC+1, UTC+5:30. Keeps Himalayas jobs that accept it (the only board that lists time zones) and, from the other boards, only jobs open worldwide.

## `maxResults` (type: `integer`):

Stop after this many jobs in total. You pay per job, so this caps the run's cost.

## `accuratePostedDate` (type: `boolean`):

Read each job's own page for its real posting date (arbeitnow refreshes listings, so the feed date can be weeks late). Slightly slower. Also adds what only the job page has: salary, city, region, postal code, expiry, logo, company page and benefits.

## `includeDescription` (type: `boolean`):

The full job description as plain text. Same price either way; turn it off for smaller rows.

## `includeDescriptionHtml` (type: `boolean`):

Also the board's description as HTML (links and lists kept), in descriptionHtml. Same price; rows get about twice as big.

## `findContactEmails` (type: `boolean`):

For jobs whose description gives no email, look for one on the company's own website (confirmed from the company's name). Charged per job that gets an email this way ($); emails a description gives are always free. Slower.

## `webhookUrl` (type: `string`):

Optional. At the end of the run, every job row is POSTed to this URL as JSON, 50 rows a request ({"runId", "batch", "batches", "items": \[...]}). A receiver that fails is reported in the run summary; the jobs stay in the dataset.

## `webhookSecret` (type: `string`):

Optional. Sent with each webhook request in the X-Scraper-Secret header.

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

Apify Proxy (datacenter) by default; the boards' feeds are public, so it only spreads the requests over several IPs. Residential and SERP proxies are replaced with datacenter. Turn it off to connect directly.

## `boards` (type: `array`):

Fixed to Arbeitnow in this Actor. To search seven remote job boards at once, use Remote Jobs Aggregator.

## Actor input object example

```json
{
  "keywords": [],
  "remoteOnly": false,
  "visaSponsorship": false,
  "postedWithinDays": 0,
  "maxJobsPerKeyword": 50,
  "minSalary": 0,
  "maxResults": 1000,
  "accuratePostedDate": false,
  "includeDescription": true,
  "includeDescriptionHtml": false,
  "findContactEmails": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "boards": [
    "arbeitnow"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `withSalaryUrl` (type: `string`):

No description

## `summary` (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": [],
    "maxJobsPerKeyword": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/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": [],
    "maxJobsPerKeyword": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/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": [],
  "maxJobsPerKeyword": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call deepmine/arbeitnow-jobs-scraper --silent --output-dataset

```

## MCP server setup

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