Arbeitsagentur Jobs Scraper
Pricing
$3.00 / 1,000 results
Arbeitsagentur Jobs Scraper
Scrape German job listings and get title, employer, occupation, location, postcode, contract type, working time, remote flag, start date and apply URL. Filter by city and radius, sector, employer or posting age. No login, no account.
Pricing
$3.00 / 1,000 results
Rating
0.0
(0)
Developer
Zilicon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Scrape the German job market from the Arbeitsagentur job board
Pull structured job listings from the Bundesagentur für Arbeit (Arbeitsagentur) - the German Federal Employment Agency and the country's largest job board, covering the whole German market rather than one city or one sector.
Every run returns clean, flat JSON: job title, employer, occupation, location and postcode, contract type, working-time model, remote flag, start date, first-published date and a link straight to the posting. No login, no account, no cookies.
Get your first results in about 30 seconds: press Start with the prefilled input. It returns 100 developer jobs from across Germany. Then change Search keywords to your own term, set a Location and a Search radius, and run it again.
Your $5 of free Apify credit is worth roughly 1,670 job records on this actor.
What you get per job
| Field | Description |
|---|---|
id | Stable id, source-prefixed - e.g. arbeitsagentur:13644-310253-S |
board | Always arbeitsagentur |
title | Job title as advertised |
company | Hiring employer |
location | City, region, country, with consecutive repeats collapsed - e.g. Berlin, DEUTSCHLAND |
postalCode | German postcode of the workplace |
category | Main occupation (Hauptberuf) - e.g. Anwendungsprogrammierer/in |
tags | All occupations the posting is classified under |
offerType | ARBEIT (job), AUSBILDUNG (apprenticeship), and similar |
remote | true when the employer flagged the role as home-office capable |
fullTime / partTime | Working-time model flags |
contractDuration | Permanent, fixed-term, or not stated |
startDate | Earliest start date, when the employer gave one |
distanceKm | Distance from your search location, when you set one |
salaryMin, salaryMax | Reserved - the agency's search feed publishes no salary figure |
url, applyUrl | The employer's own posting when available, otherwise the Arbeitsagentur detail page |
publishedAt | ISO 8601 date the posting first appeared |
teaser | Reserved - the long description lives on the detail page, not the search feed |
Sample record
{"id": "arbeitsagentur:13644-310253-S","board": "arbeitsagentur","title": "Fullstack Developer (m/w/d)","company": "secunet","location": "Berlin, DEUTSCHLAND","postalCode": "10178","category": "Anwendungsprogrammierer/in","tags": ["Anwendungsprogrammierer/in"],"offerType": "ARBEIT","remote": true,"fullTime": false,"partTime": false,"contractDuration": "KEINE_ANGABE","startDate": "2026-08-01","distanceKm": 2,"salaryMin": null,"salaryMax": null,"url": "https://www.get-in-it.de/jobsuche/p310253?utm_source=arbeitsagentur&utm_medium=organic&utm_campaign=launch-basic","applyUrl": "https://www.get-in-it.de/jobsuche/p310253?utm_source=arbeitsagentur&utm_medium=organic&utm_campaign=launch-basic","publishedAt": "2026-08-01T00:00:00.000Z","teaser": null}
Filters
Everything below is applied by the job board itself, so you pay only for the rows you actually asked for. The one exception is Remote-capable only, which is applied to the results after fetching - see the note under it.
| Input | What it does |
|---|---|
keywords | Free-text job search, e.g. developer, projektmanager, pflegefachkraft. Blank returns everything matching your other filters |
maxResults | Stop after this many jobs. Your cost control |
location | City or postcode to search around, e.g. Berlin, München, 10178 |
radiusKm | How far around that location to search - 25 for a city, 200 for a region |
occupationField | One of the agency's occupational groups, e.g. Softwareentwicklung und Programmierung, Altenpflege |
employer | Only this employer, using its full registered name, e.g. Deutsche Bahn AG, Siemens AG |
publishedWithinDays | Only postings from the last N days, 1 to 100 |
offerType | Job, apprenticeship / dual study, internship, or self-employment |
contractType | Permanent (unbefristet) or fixed-term (befristet) |
workingTime | Full-time, part-time, shift/night/weekend, mini-job - pick any combination |
remoteOnly | Keep only home-office-capable postings |
includeTempAgencies | Turn off to exclude staffing firms and see only direct employers |
accessibleJobs | Only postings marked suitable for applicants with a disability |
maxPages | How many 100-job pages to walk. Raise it only if a high maxResults is coming back short |
proxyConfiguration | Standard Apify proxy input. Datacenter proxies are fine here |
A note on the two fixed-vocabulary filters
occupationField and employer are matched against the agency's own records, not as free text.
- Occupation field must be an exact Berufsfeld label, capitals included.
Softwareentwicklung und Programmierungreturns about 5,800 jobs;Altenpflegeabout 19,700;Elektrotechnikabout 19,900. An invented label such asGesundheitorLogistikreturns zero, and so does the wrong case. - Employer must be the full registered name.
Siemens AGreturns about 500 jobs andDeutsche Bahn AGabout 3,500, whileSiemensandDeutsche Bahnreturn zero.
If a run comes back empty with either of these set, that is almost always why.
A note on writing German place names
Type umlauts as real characters or as plain letters - München and Munchen both work and return the same results. The ue/oe spelling does not: Muenchen returns zero. The same applies to Köln versus Koeln.
A note on the remote filter
The job board's own remote search parameter covers only a narrow legacy teleworking category with a few dozen postings nationwide, so using it would hide almost everything. This actor instead reads the per-posting home-office flag, which is the field employers actually populate - roughly 40% of developer postings carry it. That filter is applied after fetching, so a run with Remote-capable only switched on may walk more pages to fill your result count.
What it costs
Pricing is pay-per-event on Apify's built-in per-result event: you pay per job record returned and nothing at all for a run that finds no matches. There is no per-run start fee, so many small runs cost the same as one big one.
A worked example: every IT job within 50 km of Munich posted in the last seven days is about 220 records as this is written, which costs roughly $0.66. Running that same search every day for a month comes to about $20. Posting volumes move, so treat the record count as an order of magnitude rather than a quote.
Typical uses
- Job aggregators and job boards - keep a German feed current without maintaining a scraper.
- Recruiting and sourcing - watch which employers are hiring for which roles, by city and by sector.
- Labour-market research - track posting volume by occupation, region, contract type or remote share over time.
- Lead generation - a company that is hiring twelve engineers is a company with a budget.
Your feedback
If something is missing, wrong, or you need a field the agency publishes that this actor does not yet return, please open an issue on the Issues tab. Requests get read and acted on, and a short review helps other people find the actor.
Disclaimer
This is an unofficial scraper. It is not affiliated with, endorsed by, or sponsored by the Bundesagentur für Arbeit / Arbeitsagentur. It reads only data that the agency publishes publicly through its own job-search interface, with no login and no access to private accounts.
Personal data in the output
Results may contain personal data (for example a named contact on a job posting). Personal data is protected by regulations such as the GDPR in the EU and the CCPA in California. You should not scrape or process personal data unless you have a legitimate reason to do so; if you are unsure whether your reason is legitimate, consult your lawyers.