
Arbeitsagentur Jobs Scraper
hipersoft/arbeitsagentur-jobs-scraper
Scrape jobs from the Bundesagentur für Arbeit (arbeitsagentur.de): title, employer, occupation, salary range, address with coordinates, work time, contract, home office, dates and full description. Search by keyword, city and radius across 1M+ German jobs.
Total users
2Monthly users
1Total runs
33Per job
$0.002Last rebuilt
Oct 26, 2026Overview
Arbeitsagentur Jobs Scraper extracts job listings from the Bundesagentur für Arbeit Jobsuche (arbeitsagentur.de), Germany's largest job board with more than a million open positions. Each job includes the title, employer, occupation, salary range, full address with GPS coordinates, work-time model, contract type, home-office option, start date, publication dates and, optionally, the full job description. You can search by keyword, city and radius, then export to CSV, Excel or JSON.
What does Arbeitsagentur Jobs Scraper do?
The Bundesagentur für Arbeit (Federal Employment Agency) runs the official German job exchange, where employers, recruiters and staffing agencies post jobs, apprenticeships and internships across every industry. This scraper turns that job board into a clean dataset:
- 🇩🇪 Search all of Germany or any city, postal code or region with a radius.
- 🔎 Any keyword or job title: Softwareentwickler, Pflegefachkraft, Lagerhelfer, Elektriker, Buchhalter…
- 💶 Salary ranges where the employer provides them (annual or hourly).
- 📍 Exact location: street, postal code, city, state and latitude/longitude.
- 🕒 Work time and contract: full-time, part-time, shifts, mini-job, home office, permanent or fixed-term.
- 🎓 Jobs, apprenticeships (Ausbildung), internships and self-employment offers.
- 📝 Full job descriptions and the recruiting partner, if you want them.
- 🚫 Filter out temp agencies (Zeitarbeit) to get direct employers only.
What data can you scrape from arbeitsagentur.de?
| Field | Description |
|---|---|
| Title | Job title (Stellenangebotstitel) |
| Company | Employer name (Firma) |
| Occupation | Main occupation (Hauptberuf) and all related occupations |
| Reference number | Arbeitsagentur reference number (Referenznummer) |
| Job link | Link to the job on arbeitsagentur.de |
| Address | Street, postal code, city, state, country |
| Coordinates | Latitude and longitude |
| Work time | Full-time, part-time, shift/night/weekend, mini-job |
| Home office | Whether home office is possible |
| Contract | Permanent or fixed-term |
| Salary | Salary type and min/max range |
| Start date | Earliest start date |
| Dates | First published, current publication, last updated |
| Career changers | Suitable for career changers (Quereinsteiger) |
| Description | Full job description (optional) |
| Temp agency / recruiter flags | Arbeitnehmerüberlassung, private recruiter (with description) |
| Partner | Recruiting partner name and website (with description) |
Use cases for German job data
- Recruiting and staffing agencies: find companies hiring for the roles you place, by region.
- Sales lead generation: hiring companies are growing companies. Build B2B lead lists by industry and city.
- Labour market research: track demand for occupations such as nurses, truck drivers and IT specialists across German regions.
- Salary benchmarking: collect posted salary ranges by occupation and location.
- Job boards and aggregators: import fresh German jobs into your own site or app.
- Relocation and expat services: find English-friendly or specific jobs in German cities.
How to scrape jobs from the Arbeitsagentur
- Click Try for free to open Arbeitsagentur Jobs Scraper in Apify Console.
- Enter job titles or keywords and a location with a radius.
- Optionally choose the offer type, work time, contract, published within days, or exclude temp agencies.
- Switch on Include full job description if you need the job text.
- Click Start, then download the jobs as CSV, Excel or JSON.
Input
Example input
{
"keywords": ["Softwareentwickler", "Pflegefachkraft"],
"location": "Berlin",
"radiusKm": 25,
"offerType": "job",
"workTime": ["fullTime"],
"contractType": "permanent",
"publishedWithinDays": 7,
"excludeTempAgencies": true,
"includeDescription": true,
"maxItems": 500
}
| Field | Description |
|---|---|
| Job titles or keywords (was) | One search per keyword. Leave empty for all jobs. |
| Location (wo) | City, postal code or region. Leave empty for all of Germany. |
| Radius (km) | Search radius around the location. |
| Offer type | Jobs, apprenticeships, internships, self-employment or any. |
| Work time | Full-time, part-time, shift/night/weekend, home office, mini-job. |
| Contract | Permanent or fixed-term. |
| Published within (days) | Only recent jobs (1–100 days). |
| Exclude temp agencies | Leave out Zeitarbeit / staffing agencies. |
| Include full job description | Adds the description and recruiting partner. |
| Max jobs | Stop after this many jobs (0 = no limit). |
Get new jobs every day
Set Published within (days) to 1 and create an Apify schedule to collect every new matching job each morning.
Output
Job example
{
"referenceNumber": "19069-423893-S",
"title": "Python dev",
"company": "Join Solutions GmbH",
"occupation": "Softwareentwickler/in",
"url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/19069-423893-S",
"city": "Berlin",
"postalCode": "10119",
"street": "Torstraße 1",
"region": "BERLIN",
"latitude": 52.52751,
"longitude": 13.4153145,
"workTime": ["full-time"],
"homeOffice": false,
"contract": "permanent",
"salaryType": "JAHRESGEHALT",
"salaryMin": 50000,
"salaryMax": 65000,
"startDate": "2026-09-30",
"firstPublished": "2026-08-31",
"publishedFrom": "2026-09-28",
"description": "## Building Digital Products for the Cinema Industry …",
"isTempAgency": false,
"partnerName": "Join Solutions GmbH",
"partnerUrl": "https://www.join.com"
}
Output schema
| Field | Type | Description |
|---|---|---|
referenceNumber |
string | Arbeitsagentur reference number. |
title |
string | Job title. |
company |
string | Employer. |
occupation |
string | Main occupation. |
allOccupations |
array | All occupations linked to the job. |
offerType |
string | ARBEIT, AUSBILDUNG, PRAKTIKUM_TRAINEE, SELBSTAENDIGKEIT. |
url |
string (URL) | Job page. |
city, postalCode, street, region, country |
string | Job address. |
latitude, longitude |
number | Coordinates. |
allLocations |
array | All job locations. |
workTime |
array | Working-time models. |
homeOffice |
boolean | Home office possible. |
contract |
string | permanent or fixed-term. |
salaryType |
string | Annual or hourly salary. |
salaryMin, salaryMax |
number | Salary range. |
startDate |
string | Earliest start date. |
suitableForCareerChangers |
boolean | Open to career changers. |
firstPublished, publishedFrom |
string | Publication dates. |
updatedAt |
string | Last update. |
description |
string | Full job description (optional). |
isTempAgency |
boolean | Temporary staffing job (with description). |
isPrivateRecruiter |
boolean | Posted by a private recruiter (with description). |
partnerName, partnerUrl |
string | Recruiting partner (with description). |
searchTerm |
string | Keyword that found the job. |
scrapedAt |
string (ISO date) | When the row was collected. |
How much does it cost to scrape the Arbeitsagentur?
Arbeitsagentur Jobs Scraper uses pay-per-job pricing: a small fixed price per job, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More job data
- StepStone Scraper: jobs from StepStone Germany and Europe.
- Indeed Scraper: jobs from Indeed.
- LinkedIn Jobs Scraper: jobs from LinkedIn.
- Company Jobs Scraper: jobs straight from company career pages.
FAQ
How many jobs are on the Arbeitsagentur job board? Usually well over a million jobs, apprenticeships and internships. Narrow it down with keywords, location and filters.
Can I search in English?
Most listings are in German, so German job titles (e.g. Softwareentwickler, Pflegefachkraft) give the best results. English titles like Python also work.
Are salaries included?
Yes, when the employer provides a salary range. You get salaryMin, salaryMax and whether it's annual or hourly.
Can I exclude temporary staffing agencies? Yes. Switch on Exclude temp agencies (Zeitarbeit).
Can I get apprenticeships (Ausbildungsplätze)? Yes. Set Offer type to Apprenticeships.
How fresh is the data? Every run reads the live job board. Use Published within (days) for only the newest jobs.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate Arbeitsagentur Jobs Scraper with other apps? Arbeitsagentur Jobs Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape the Arbeitsagentur? The scraper only collects publicly listed job offers. You are responsible for using the data in line with the Bundesagentur für Arbeit's terms and the GDPR.
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with the Bundesagentur für Arbeit's terms. Not affiliated with the Bundesagentur für Arbeit.
Input
| Field | Type | Description |
|---|---|---|
keywordsJob titles or keywords (was) | array | What to search for, e.g. Python, Pflegefachkraft, Lagerhelfer, Elektriker. Each keyword is a separate search. Leave empty for all jobs. |
locationLocation (wo) | string | City, postal code or region in Germany, e.g. Berlin, 80331, Bayern. Leave empty for all of Germany. |
radiusKmRadius (km) | integer | Search radius around the location in kilometres. Default: 25 |
offerTypeOffer type | string · job, apprenticeship, internship, selfEmployment, any | Type of listing. Default: "job" |
workTimeWork time | array | Only jobs with these working-time models. Leave empty for all. |
contractTypeContract | string · any, permanent, fixedTerm | Permanent or fixed-term contracts only. Default: "any" |
publishedWithinDaysPublished within (days) | integer | Only jobs published in the last N days (max 100). 0 means any time. Default: 0 |
excludeTempAgenciesExclude temp agencies (Zeitarbeit) | boolean | Leave out jobs from temporary staffing agencies. Default: false |
includeDescriptionInclude full job description | boolean | Open each job to add the full description and the recruiting partner. Slower. Default: false |
maxItemsMax jobs | integer | Stop after this many jobs. 0 means no limit. Default: 200 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~arbeitsagentur-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": [
"Softwareentwickler"
],
"location": "Berlin",
"maxItems": 100
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/arbeitsagentur-jobs-scraper").call(run_input={
"keywords": [
"Softwareentwickler"
],
"location": "Berlin",
"maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/arbeitsagentur-jobs-scraper').call({
"keywords": [
"Softwareentwickler"
],
"location": "Berlin",
"maxItems": 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Job One German job listing in the dataset. | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.