# Arbeitsagentur Jobs Scraper — BA Jobsuche Germany (`crawloop/arbeitsagentur-jobs-scraper`) Actor

Scrape Arbeitsagentur / Bundesagentur für Arbeit job listings (Germany Jobsuche). Search by keyword, location, filters, or start URLs. Export title, employer, location, contract type, salary notes, full description, and application links. Fast HTTP API — no browser.

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

## Pricing

from $0.90 / 1,000 job listings

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Arbeitsagentur Jobs Scraper — Bundesagentur für Arbeit / Germany Jobsuche

> **Disclaimer:** Unofficial tool for publicly accessible Arbeitsagentur (Bundesagentur für Arbeit) job listings. **Bundesagentur für Arbeit**, **Arbeitsagentur**, **Jobbörse**, and related names are trademarks of their respective owners. Not affiliated with, sponsored by, or endorsed by the Bundesagentur für Arbeit. For informational, research, aggregation, and recruiting-intelligence use only. Respect applicable terms of use and law.

Scrape **German job listings** from the official **Arbeitsagentur / Bundesagentur für Arbeit Jobsuche** portal. Search by **keyword (was)**, **location (wo)**, **advanced filters**, or **portal search start URLs**. Export structured JSON with **title**, **employer**, **occupation**, **address**, **contract type**, **salary notes**, **full description**, **home-office flags**, and **external application URLs** — fast **HTTP Jobsuche API** scraping, **no headless browser**.

Ideal for **Germany job board aggregation**, **labor-market research**, **recruiting intelligence**, **employer lead generation**, and **BA Jobbörse data pipelines**.

### Key Features

- **Arbeitsagentur / BA Jobsuche API** — search + job-detail endpoints over HTTP (`curl_cffi`); no Playwright/Puppeteer
- **Germany-wide search** — keywords, city/region, radius (km), employer name, occupational field (Berufsfeld)
- **Advanced filters** — offer type (Arbeit / Ausbildung / Praktikum / Selbständigkeit), fixed-term vs permanent, working time (Vollzeit, Teilzeit, Homeoffice, Minijob, shift)
- **Start URL parsing** — paste a Jobsuche search URL; query parameters are mapped to API filters automatically
- **Full job details** — optional detail fetch for complete Stellenbeschreibung and richer metadata
- **Deduplicated `refnr`** — unique reference numbers across multi-URL / multi-filter runs
- **Low memory** — designed for 256–512 MB runs
- **Clean camelCase schema** — ready for job boards, BI tools, ATS enrichment, and recruiting CRM pipelines
- **Apify Proxy ready** — DE residential recommended on the Apify platform

### Use Cases

| Use case | What you get |
| :--- | :--- |
| **Job aggregation** | Fresh BA / Arbeitsagentur openings into a job board or search index |
| **Labor-market research** | Hiring volume by keyword, city, occupation, and contract type in Germany |
| **Recruiting intelligence** | Competitor and employer vacancy monitoring by region |
| **Lead generation** | Employers actively hiring in a target segment |
| **Salary / contract signals** | Salary notes and befristet / unbefristet flags where published |
| **Ausbildung & Praktikum tracking** | Filter by offer type for apprenticeships and internships |

### When to use this Actor

- You need **Arbeitsagentur.de / Jobbörse** listings as structured data
- You want **keyword + location + filter** search without a browser
- You need **full job descriptions** and application links for downstream processing
- You run **recurring Germany jobs** pulls for dashboards or alerts

### When not to use this Actor

- **Non-German job portals** — this Actor covers Arbeitsagentur / Bundesagentur für Arbeit only
- **Guaranteed email or phone** — many listings omit direct contacts; use `externalApplicationUrl` when present
- **Historical archives** — only currently published Jobsuche results
- **Private / authenticated BA services** — public Jobsuche listings only

### Quick Start

**Keyword + city:**

```json
{
  "position": "Softwareentwickler",
  "location": "Berlin",
  "maxItems": 50,
  "fetchDetails": true,
  "offerType": "1",
  "radiusKm": 25,
  "workingTime": ["vz", "ho"],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "DE"
  }
}
````

**Portal search start URL:**

```json
{
  "startUrls": [
    {
      "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Pflegefachkraft&wo=Muenchen&umkreis=50"
    }
  ],
  "maxItems": 100,
  "fetchDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "DE"
  }
}
```

### Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `position` | String | — | Keywords / job title (API `was`) |
| `location` | String | — | City or region (API `wo`) |
| `startUrls` | Array | — | Jobsuche search URLs; query params merge with filters |
| `maxItems` | Integer | `100` | Max jobs (`0` = unlimited, subject to portal caps) |
| `fetchDetails` | Boolean | `true` | Fetch full description via job-details endpoint |
| `offerType` | String | `"1"` | `1` Arbeit, `2` Selbständigkeit, `4` Ausbildung, `34` Praktikum/Trainee, empty = any |
| `contractType` | String | — | `1` befristet, `2` unbefristet, `1;2` both |
| `workingTime` | Array | `[]` | `vz`, `tz`, `snw`, `ho`, `mj` |
| `radiusKm` | Integer | `25` | Radius in km around location |
| `employer` | String | — | Employer name filter |
| `occupationalField` | String | — | Berufsfeld free text |
| `publishedWithinDays` | Integer | — | Only jobs published in the last N days (0–100) |
| `includeTemporaryAgencies` | Boolean | `true` | When `false`, excludes Zeitarbeit (`zeitarbeit=false`) |
| `includePrivatePlacement` | Boolean | `true` | When `false`, excludes PAV (`pav=false`) |
| `disabilityFriendly` | Boolean | `false` | Only disability-friendly listings |
| `pageSize` | Integer | `50` | Search page size (1–100) |
| `concurrency` | Integer | `10` | Parallel detail requests |
| `proxyConfiguration` | Object | DE residential | Apify Proxy (required on platform for reliable results) |

### Output Format

Each dataset item is one Arbeitsagentur job listing.

| Field | Type | Description |
| :--- | :--- | :--- |
| `refnr` | String | Stellen-Referenznummer |
| `url` | String | Public job detail URL |
| `title` | String | Job title |
| `description` | String | Full description (when `fetchDetails` is true) |
| `employer` | String | Employer / company name |
| `occupation` | String | Primary occupation (Hauptberuf) |
| `alternativeOccupations` | Array | Related occupation labels |
| `offerType` | String | e.g. `ARBEIT` |
| `contractType` | String | e.g. `BEFRISTET` / `UNBEFRISTET` |
| `contractMonths` | Integer | Fixed-term length in months (if present) |
| `salaryNote` | String | Portal salary indicator |
| `publishedAt` / `modifiedAt` / `startDate` | String | Portal dates |
| `externalApplicationUrl` | String | External apply link when provided |
| `homeOfficePossible` / `homeOfficeType` | Boolean / String | Remote-work flags |
| `workingTime` | Object | Full-time / part-time / shift flags |
| `location` | Object | Address, coordinates, distance |
| `isTemporaryAgency` / `isPrivatePlacement` / `isMiniJob` | Boolean | Listing flags |
| `searchWas` / `searchWo` | String | Search keywords / location used |
| `scrapedAt` | String | ISO timestamp |

#### Output Example

```json
{
  "refnr": "10001-1003353506-S",
  "url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1003353506-S",
  "title": "Softwareentwickler:in (w/d/m)",
  "employer": "Example Employer GmbH",
  "occupation": "Softwareentwickler/in",
  "offerType": "ARBEIT",
  "contractType": "BEFRISTET",
  "contractMonths": 29,
  "salaryNote": "KEINE_ANGABEN",
  "publishedAt": "2026-07-08",
  "startDate": "2026-07-09",
  "homeOfficePossible": true,
  "homeOfficeType": "NACH_VEREINBARUNG",
  "workingTime": {
    "fullTime": true,
    "partTimeMorning": false,
    "partTimeAfternoon": false,
    "partTimeEvening": false,
    "partTimeFlexible": false,
    "shiftNightWeekend": false
  },
  "location": {
    "street": "Example-Str.",
    "houseNumber": "1",
    "postalCode": "10115",
    "city": "Berlin",
    "region": "BERLIN",
    "country": "DEUTSCHLAND",
    "latitude": 52.52,
    "longitude": 13.40
  },
  "searchWas": "Softwareentwickler",
  "searchWo": "Berlin",
  "scrapedAt": "2026-07-16T10:00:00+00:00"
}
```

### FAQ

**Do I need a browser?**\
No. The Actor uses the public Jobsuche REST search and detail endpoints.

**Why enable Apify Proxy?**\
Platform IPs often receive empty result sets from the Jobsuche API. DE residential proxy is recommended.

**Why are descriptions empty?**\
Keep `fetchDetails` enabled (default). Search cards alone may omit the full text.

**Why did pagination stop near ~250 results?**\
The portal often caps `maxErgebnisse` per query. Narrow keywords, location, or filters for more precise slices.

**Are email and phone always available?**\
No. Many listings only expose an external application URL or on-site apply flow.

**Zeitarbeit / PAV filters**\
Set `includeTemporaryAgencies` or `includePrivatePlacement` to `false` to exclude those sources. Leaving both at `true` uses portal defaults (do not force both API flags to `true` simultaneously).

### Limitations

- Unofficial use of the public Jobsuche API; endpoints may change
- Result volume per query can be capped by the portal
- Salary is often `KEINE_ANGABEN` — not a structured EUR amount
- Contact fields are frequently absent

# Actor input Schema

## `position` (type: `string`):

Job title or free-text keywords (API parameter `was`). Example: Softwareentwickler, Pflegefachkraft.

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

City, region, or place name (API parameter `wo`). Example: Berlin, München, Hamburg.

## `startUrls` (type: `array`):

Optional Arbeitsagentur search page URLs. Query parameters (was, wo, umkreis, angebotsart, …) are parsed and used as search filters. Overrides position/location when present.

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

Maximum number of job listings to collect across all searches. Use 0 for unlimited (subject to portal result caps).

## `fetchDetails` (type: `boolean`):

When true, call the job-details endpoint for each listing to get the full description and richer fields. Slightly slower but much more complete.

## `offerType` (type: `string`):

Angebotsart filter.

## `contractType` (type: `string`):

Befristung filter. Multiple values allowed via semicolon in the API; this select covers the common cases.

## `workingTime` (type: `array`):

Arbeitszeit filters. Multiple values are combined (semicolon-separated in the API).

## `radiusKm` (type: `integer`):

Search radius in kilometres around the location (`umkreis`). Example: 25 or 200.

## `employer` (type: `string`):

Filter by employer name (`arbeitgeber`). Example: Deutsche Bahn AG.

## `occupationalField` (type: `string`):

Berufsfeld free-text filter. Example: Informatik, Pflege.

## `publishedWithinDays` (type: `integer`):

Only jobs published within the last N days (`veroeffentlichtseit`). Range 0–100.

## `includeTemporaryAgencies` (type: `boolean`):

Include jobs from temporary employment agencies (`zeitarbeit`). Default true.

## `includePrivatePlacement` (type: `boolean`):

Include jobs from private placement agencies (`pav`). Leave unset for portal default.

## `disabilityFriendly` (type: `boolean`):

When true, only return jobs marked for applicants with disabilities (`behinderung`).

## `pageSize` (type: `integer`):

Number of search results requested per API page (1–100).

## `concurrency` (type: `integer`):

Max parallel job-detail requests when fetchDetails is enabled.

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

Required on Apify. Arbeitsagentur returns 0 results from platform IPs without a proxy. DE residential recommended.

## Actor input object example

```json
{
  "position": "Softwareentwickler",
  "location": "Berlin",
  "startUrls": [
    {
      "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler&wo=Berlin&umkreis=25"
    }
  ],
  "maxItems": 100,
  "fetchDetails": true,
  "offerType": "1",
  "contractType": "",
  "workingTime": [],
  "radiusKm": 25,
  "includeTemporaryAgencies": true,
  "includePrivatePlacement": true,
  "disabilityFriendly": false,
  "pageSize": 50,
  "concurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

# 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 = {
    "position": "Softwareentwickler",
    "location": "Berlin",
    "startUrls": [
        {
            "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler&wo=Berlin&umkreis=25"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/arbeitsagentur-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 = {
    "position": "Softwareentwickler",
    "location": "Berlin",
    "startUrls": [{ "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler&wo=Berlin&umkreis=25" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DE",
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "position": "Softwareentwickler",
  "location": "Berlin",
  "startUrls": [
    {
      "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler&wo=Berlin&umkreis=25"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}' |
apify call crawloop/arbeitsagentur-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawloop/arbeitsagentur-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Arbeitsagentur Jobs Scraper — BA Jobsuche Germany",
        "description": "Scrape Arbeitsagentur / Bundesagentur für Arbeit job listings (Germany Jobsuche). Search by keyword, location, filters, or start URLs. Export title, employer, location, contract type, salary notes, full description, and application links. Fast HTTP API — no browser.",
        "version": "1.0",
        "x-build-id": "5GUeBohRYtw8yOiws"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawloop~arbeitsagentur-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawloop-arbeitsagentur-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawloop~arbeitsagentur-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawloop-arbeitsagentur-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawloop~arbeitsagentur-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawloop-arbeitsagentur-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "position": {
                        "title": "Position / keywords",
                        "type": "string",
                        "description": "Job title or free-text keywords (API parameter `was`). Example: Softwareentwickler, Pflegefachkraft."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, region, or place name (API parameter `wo`). Example: Berlin, München, Hamburg."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional Arbeitsagentur search page URLs. Query parameters (was, wo, umkreis, angebotsart, …) are parsed and used as search filters. Overrides position/location when present.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of job listings to collect across all searches. Use 0 for unlimited (subject to portal result caps).",
                        "default": 100
                    },
                    "fetchDetails": {
                        "title": "Fetch full job details",
                        "type": "boolean",
                        "description": "When true, call the job-details endpoint for each listing to get the full description and richer fields. Slightly slower but much more complete.",
                        "default": true
                    },
                    "offerType": {
                        "title": "Offer type",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "4",
                            "34"
                        ],
                        "type": "string",
                        "description": "Angebotsart filter.",
                        "default": "1"
                    },
                    "contractType": {
                        "title": "Contract duration",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "1;2"
                        ],
                        "type": "string",
                        "description": "Befristung filter. Multiple values allowed via semicolon in the API; this select covers the common cases.",
                        "default": ""
                    },
                    "workingTime": {
                        "title": "Working time",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Arbeitszeit filters. Multiple values are combined (semicolon-separated in the API).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "vz",
                                "tz",
                                "snw",
                                "ho",
                                "mj"
                            ],
                            "enumTitles": [
                                "Full-time (Vollzeit)",
                                "Part-time (Teilzeit)",
                                "Shift / night / weekend",
                                "Home office / remote",
                                "Mini-job"
                            ]
                        },
                        "default": []
                    },
                    "radiusKm": {
                        "title": "Radius (km)",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Search radius in kilometres around the location (`umkreis`). Example: 25 or 200.",
                        "default": 25
                    },
                    "employer": {
                        "title": "Employer",
                        "type": "string",
                        "description": "Filter by employer name (`arbeitgeber`). Example: Deutsche Bahn AG."
                    },
                    "occupationalField": {
                        "title": "Occupational field",
                        "type": "string",
                        "description": "Berufsfeld free-text filter. Example: Informatik, Pflege."
                    },
                    "publishedWithinDays": {
                        "title": "Published within (days)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Only jobs published within the last N days (`veroeffentlichtseit`). Range 0–100."
                    },
                    "includeTemporaryAgencies": {
                        "title": "Include temporary agencies",
                        "type": "boolean",
                        "description": "Include jobs from temporary employment agencies (`zeitarbeit`). Default true.",
                        "default": true
                    },
                    "includePrivatePlacement": {
                        "title": "Include private placement agencies",
                        "type": "boolean",
                        "description": "Include jobs from private placement agencies (`pav`). Leave unset for portal default.",
                        "default": true
                    },
                    "disabilityFriendly": {
                        "title": "Disability-friendly only",
                        "type": "boolean",
                        "description": "When true, only return jobs marked for applicants with disabilities (`behinderung`).",
                        "default": false
                    },
                    "pageSize": {
                        "title": "Page size",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Number of search results requested per API page (1–100).",
                        "default": 50
                    },
                    "concurrency": {
                        "title": "Detail concurrency",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "Max parallel job-detail requests when fetchDetails is enabled.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Required on Apify. Arbeitsagentur returns 0 results from platform IPs without a proxy. DE residential recommended.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "DE"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
