Arbeitsagentur Jobs Scraper - German Job Listings API
Pricing
from $0.72 / 1,000 job listings
Arbeitsagentur Jobs Scraper - German Job Listings API
Scrape job listings from the Bundesagentur für Arbeit Jobbörse (arbeitsagentur.de), Germany's largest job board: full descriptions, employer, location, salary when posted and external apply links. Filter by keyword, city, radius and date. New-jobs-only mode for alerts.
Pricing
from $0.72 / 1,000 job listings
Rating
0.0
(0)
Developer
Kamer Ozkan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Export job listings from the Bundesagentur für Arbeit Jobbörse (arbeitsagentur.de), Germany's largest job board, as clean JSON, CSV or Excel. Search by keyword, city or postal code, radius, publication date, offer type and working time, and get full job descriptions, employers, locations, salaries when posted and external apply links.
What does Arbeitsagentur Jobs Scraper do?
It reads the public Jobbörse search of the German Federal Employment Agency, the same data you see on arbeitsagentur.de/jobsuche, and returns one structured row per job. It needs no login, no account, no API key of your own and no proxy setup. A new-jobs-only mode remembers what earlier runs returned, so scheduled runs deliver only fresh listings.
Who is it for?
- Recruiters and staffing agencies: find companies that are hiring for a role in a region and build call lists from employer names.
- Job boards and aggregators: feed German jobs with full descriptions and stable reference numbers into your own site.
- HR and labour market analysts: track demand per occupation, city and working-time model over time.
- Sales teams selling to employers: use hiring activity as a buying signal for HR software, training or relocation services.
What data can you get?
| Field | Example |
|---|---|
referenceNumber | 20263-2343065-S (stable job ID) |
title | Data Analyst Digital Health (m/w/d) |
occupation | Data-Analyst/in |
employer | MEDIAN Unternehmensgruppe B.V. & Co. KG |
offerType | job, apprenticeship, internship or self-employment |
city, postalCode, region, country | Berlin, 10587, BERLIN, DEUTSCHLAND |
latitude, longitude, distanceKm | 52.5177, 13.3251, 7 |
workTime | full-time, part-time, shift-night-weekend, mini-job |
contract | permanent or fixed-term (when stated) |
homeOffice, homeOfficeType | true, NACH_VEREINBARUNG |
salaryType, annualSalaryEur | JAHRESGEHALT, 66727.63 (when the employer publishes it) |
startDate, firstPublishedAt, publishedFrom, modifiedAt | 2026-10-08, 2026-09-24 |
temporaryAgency, privateRecruiter, careerChangerFriendly | false, false, false |
description | full job description text |
url | link to the job on arbeitsagentur.de |
externalUrl | the employer's or partner board's own job page, when listed |
How much does it cost?
You pay only for results: $0.90 per 1,000 jobs on the Free plan, with lower prices on paid Apify plans. The full description is included at the same price.
Worked examples on the Free plan:
- One search with 1,000 jobs costs about $0.90.
- A daily job alert with new-jobs-only mode that finds 50 new jobs a day delivers about 1,500 jobs a month, about $1.35 a month.
Set "Max jobs" or a maximum cost per run to cap spending.
How to use it
- Click Try for free.
- Enter one or more search terms (for example "Data Analyst" or "Pflegefachkraft") and a city or postal code. Leave the location empty to search all of Germany.
- Optionally set the radius, "Published within (days)", offer type, working time or an employer name.
- Click Start and download results as JSON, CSV or Excel, or read them via the API.
- For job alerts, turn on Only new jobs, save the input as a task and add an Apify Schedule (daily or weekly). Each run then returns only jobs that earlier runs did not deliver.
Input example
{"searchTerms": ["Data Analyst"],"location": "Berlin","radiusKm": 25,"publishedWithinDays": 7,"offerType": "job","workTime": ["vz"],"includeDescription": true,"onlyNewJobs": false,"maxItems": 100}
Output example
A real row from a test run (description shortened):
{"referenceNumber": "20263-2343065-S","title": "Data Analyst Digital Health (m/w/d)","occupation": "Data-Analyst/in","employer": "MEDIAN Unternehmensgruppe B.V. & Co. KG","offerType": "job","url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/20263-2343065-S","externalUrl": null,"city": "Berlin","postalCode": "10587","region": "BERLIN","country": "DEUTSCHLAND","latitude": 52.517745,"longitude": 13.3250985,"locationsCount": 1,"distanceKm": 7,"homeOffice": false,"homeOfficeType": null,"workTime": ["full-time"],"contract": "permanent","startDate": "2026-10-08","firstPublishedAt": "2026-09-24","publishedFrom": "2026-09-24","modifiedAt": "2026-10-08T13:06:34.296","salaryType": null,"annualSalaryEur": null,"careerChangerFriendly": false,"temporaryAgency": false,"privateRecruiter": false,"description": "MEDIAN Deutschland ist Teil der MEDIAN Group, einem der führenden europäischen Anbieter auf dem Gebiet der medizinischen Rehabilitation ...","searchTerm": "Data Analyst","searchLocation": "Berlin","scrapedAt": "2026-10-09T11:13:07Z"}
Integrations and API
Run it from your code with the Apify API or the apify-client package, schedule it in Apify, or connect it to Make, n8n, Zapier, Google Sheets or a webhook.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("kamerozkan/arbeitsagentur-jobs-scraper").call(run_input={"searchTerms": ["Data Analyst"], "location": "Berlin", "maxItems": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["employer"], item["city"])
FAQ
Do I need an Arbeitsagentur account or API key? No. The Actor uses the public Jobbörse search that arbeitsagentur.de itself uses. You only need an Apify account.
How many jobs can one search return? The Jobbörse returns at most 10,000 jobs per search. For larger exports split the search by city, search term or publication date. "Max jobs" also caps each run.
How does "Only new jobs" work?
The Actor stores the reference numbers it delivered in a key-value store in your Apify account (arbeitsagentur-jobs-history). The next run with the same search skips them, so you pay only for new listings. Use "History key" to share one history between several tasks.
Why is the salary empty for most jobs?
Most employers on the Jobbörse do not publish a salary. When they do, salaryType and annualSalaryEur are filled.
Are private persons included? No. Listings posted by private households under a person's name are skipped, and private webmail addresses inside descriptions are replaced with "[email removed]". Company application addresses stay as published.
Is it legal to collect this data? It collects publicly available job listings only. You are responsible for how you use them, including privacy laws like GDPR.
Something is not working? Open an issue on the Issues tab with your run link and we will fix it fast.
Support and feedback
- Found a bug or missing a field? Open an issue on the Issues tab of this Actor. We reply within 48 hours and ship most fixes within a few days.
- Have an idea for a feature? Issues are the fastest way to get it built.
- If the Actor saves you time, a short review on this page helps other users find it.
This Actor is independent and is not affiliated with or endorsed by the Bundesagentur für Arbeit.