Arbeitsagentur Scraper - German Jobs, Salaries & Employers
Pricing
from $1.53 / 1,000 job delivereds
Arbeitsagentur Scraper - German Jobs, Salaries & Employers
Scrape jobs, apprenticeships and internships from the German Federal Employment Agency (Bundesagentur für Arbeit) by keyword, city, radius, working time, home office and contract: employer, location with coordinates, salary, start date and full description. Error rows are free.
Pricing
from $1.53 / 1,000 job delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Arbeitsagentur Scraper: German jobs, apprenticeships and internships with salary, employer and location
Arbeitsagentur Scraper collects job offers from the Jobbörse of the German Federal Employment Agency (Bundesagentur für Arbeit), the largest job board in Germany, without an account, cookies or a browser. Each job comes back as one clean row: title, occupation, employer, city, postal code, state and coordinates, working time, home office, contract type, salary when the employer publishes it, start date, publication dates, the partner job board it came from and, by default, the full job description.
It is used to build job market datasets for Germany, to track hiring by region, occupation or employer, to find apprenticeship (Ausbildung) and internship offers, to feed job aggregators and alert bots, and to give recruiting and HR teams a daily list of new openings.
At a glance
| What | Price |
|---|---|
| Job delivered | US$ 1.80 per 1,000 jobs (US$ 0.0018 each) |
| Run start | US$ 0.005 per run |
- 500 jobs with full descriptions = US$ 0.905. The description, the source partner and the employer profile cost nothing extra.
- Error rows, duplicates and jobs skipped by
onlyNeware never charged.maxItemsis a hard cap, and a spending limit set on the run stops it cleanly with everything delivered so far. - Runs are fast: about 100 jobs per second without descriptions and 4 to 5 jobs per second with them.
Quick start
{"queries": ["Softwareentwickler"],"location": "Berlin","radiusKm": 25,"maxItems": 100}
Apprenticeships in Bavaria published in the last 7 days, newest first:
{"queries": ["Mechatroniker", "Elektroniker"],"offerType": "apprenticeship","location": "Bayern","postedWithinDays": 7,"sortBy": "newest","maxItems": 0}
Remote-friendly permanent full-time jobs, at least 50% home office:
{"queries": ["Data Engineer"],"minHomeOfficePercent": 50,"contractType": "permanent","workingTime": ["full-time"],"maxItems": 200}
You can also paste a search link from the site, with every filter you picked there:
{"startUrls": ["https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Pflegefachkraft&wo=Hamburg&umkreis=25&arbeitszeit=tz"]}
Input
| Field | What it does |
|---|---|
queries | Job titles or keywords, one per line (Softwareentwickler, Pflegefachkraft, Data Engineer). Empty = search by location or employer only. |
startUrls | Search links from arbeitsagentur.de/jobsuche (filters in the link are kept), job pages (/jobsuche/jobdetail/...) or bare reference numbers like 10001-1234567890-S. |
location | City, postal code, German state or country (München, 80331, Bayern, Österreich). Empty = all of Germany. |
radiusKm | Distance around the location (site default 25 km; 0 = only the place). |
offerType | job, apprenticeship (Ausbildung and dual study), internship (Praktikum and trainee) or self-employment. |
workingTime | full-time, part-time, shift (night and weekend) and mini job; any of them matches. |
remoteOnly | Only jobs where home office is possible. |
minHomeOfficePercent | Only jobs with at least this share of home office (for example 50). |
contractType | permanent (unbefristet) or temporary (befristet). |
postedWithinDays | 0 (today), 1, 7, 14 or 28; other values are rounded up to the next option. |
employer | Exact employer name as shown on the site (Deutsche Bahn AG). |
excludeTemporaryAgencies | Leave out Zeitarbeit / Arbeitnehmerüberlassung offers. |
excludePrivateRecruiters | Leave out offers from private recruitment agencies. |
sortBy | relevance (default), newest, modified, start date or distance. |
includeDescription | Full text, source partner, required education and contract length (default on). |
includeCompanyProfile | Employer self-description and website, when the employer has a profile (default off, slower). |
onlyNew | For schedules: delivers only jobs not delivered in earlier runs of the same search. |
maxItems | Cap for the whole run (default 50; 0 = no cap). |
proxyConfiguration | Apify datacenter proxy by default. |
searchQuery, keyword, was, wo, city, radius, umkreis, angebotsart, arbeitszeit, maxResults and
urls are accepted too, so inputs written for other Arbeitsagentur tools keep working.
Output
Every job is one row with type: job:
| Field | What it is |
|---|---|
referenceNumber, url | The job's reference number (Referenznummer) and its page on arbeitsagentur.de |
title, occupation, allOccupations | Job title as written by the employer, and the occupations the agency assigned |
offerType | ARBEIT, AUSBILDUNG, PRAKTIKUM_TRAINEE or SELBSTAENDIGKEIT |
companyName, employerId | Employer name and the site's anonymous employer id (same id = same employer) |
city, postalCode, region, country, latitude, longitude | First work location; locations lists all of them |
distanceKm | Distance from the searched location |
workingTime, isFullTime | fullTime, partTimeMorning, partTimeAfternoon, partTimeEvening, partTimeFlexible, shiftNightWeekend, miniJob |
remotePossible, remotePercent, remoteArrangement | Home office flag, share and arrangement (NACH_VEREINBARUNG = by agreement) |
contractDuration, contractMonths | UNBEFRISTET, BEFRISTET or KEINE_ANGABE, and the length of fixed-term contracts |
startDate, publishedAt, firstPublishedAt, modifiedAt | Start date and publication dates |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | Salary when published (hour, year...), in EUR |
salaryInfo, salaryKind | The raw salary type (JAHRESGEHALT, STUNDENLOHN, AUSBILDUNGSVERGUETUNG_NACH_JAHREN...) and fixed or range |
isTemporaryAgency, isPrivateRecruiter | Zeitarbeit and private recruiter flags |
suitableForCareerChangers, disabilityRequired | Quereinstieg flag and the severe-disability offer flag |
requiredEducation, trainingType | School leaving certificate asked for, and AUSBILDUNG or DUALES_STUDIUM |
sourcePartner, sourcePartnerUrl, externalUrl, boxNumber | Partner job board the offer came from, its link, and the box number (Chiffre) of anonymous offers |
description | Full job description (with includeDescription) |
companyDescription, companyWebsite | Employer profile (with includeCompanyProfile) |
sourceQuery, scrapedAt | The keyword or link that found the job, and when |
One real row (description shortened):
{"type": "job","referenceNumber": "10001-1003713573-S","title": "Data Engineer Waffensystemdaten (m/w/d)","occupation": "Data Engineer","allOccupations": ["Data Engineer", "Informatiker/in"],"offerType": "ARBEIT","companyName": "IABG Industrieanlagen Betriebs-GmbH","city": "Ottobrunn","postalCode": "85521","region": "BAYERN","country": "DEUTSCHLAND","latitude": 48.054645,"longitude": 11.6603415,"distanceKm": 12,"workingTime": ["fullTime"],"contractDuration": "UNBEFRISTET","startDate": "2026-10-05","publishedAt": "2026-09-16","salaryMin": 65000.0,"salaryMax": 85000.0,"salaryCurrency": "EUR","salaryPeriod": "year","sourcePartner": "arbeitsagentur.de","url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1003713573-S","description": "### **Beschreibung der Stelle**\n\nSie begeistern sich für Data Engineering und möchten Daten komplexer technischer Systeme nutzbar machen?...","companyWebsite": "http://www.iabg.de","sourceQuery": "Data Engineer"}
Errors you may see
Every error is a row with errorCode and is never charged:
| errorCode | Meaning |
|---|---|
INVALID_INPUT | A field has a wrong value (the message lists the accepted ones), or the site rejected the search |
INVALID_URL | Not an arbeitsagentur.de search link, job link or reference number |
NOT_FOUND | The job link points to an offer that expired or was removed |
NO_RESULTS | The search and filters match no job; try a broader keyword or fewer filters |
BLOCKED | The site refused every attempt for this search; run it again in a few minutes |
Integrations, scheduling and AI agents
- Schedule a daily run with
onlyNewon in Apify schedules to get only the jobs published since the last run, ready for alerts. - Export as JSON, CSV, Excel or XML, or read the dataset from the Apify API.
- Connect it to Make, n8n, Zapier, Slack or Google Sheets through Apify integrations.
- AI agents: call it as a tool through the Apify MCP server in Claude, ChatGPT, Cursor or any MCP client, for example "list the permanent nursing jobs in Hamburg published this week with their salary".
FAQ
Do I need an account or an API key? No. The Actor uses the public job search the website and the official app use, with the public key they publish. Nothing to sign up for.
Does it cover Austria and other countries? The Jobbörse also lists offers abroad (mostly Austria, from the
Austrian public employment service). Set location to Österreich or a city there.
How many jobs can one search return? The site serves at most 10,000 jobs per search. For a bigger slice, split it by location, occupation or offer type; duplicates across searches in the same run are delivered only once.
Why do some jobs have no salary? Most employers in Germany do not publish one. When they do, it comes as a fixed amount or a range per hour, month or year.
Are contact persons included? No. The Actor returns company data only. Emails, phone numbers and the names of
contact persons in the description are replaced by [contact removed].
Is it legal? The Actor reads public job offers only. You are responsible for how you use the data under the laws that apply to you, including the GDPR.
Something broke or a field is missing? Open an issue on the Actor page; issues are answered within a day.
Limitations
- At most 10,000 jobs per search (a limit of the site).
postedWithinDaysfollows the site options (today, 1, 7, 14 and 28 days).employerneeds the exact employer name; a partial name returns nothing.- Descriptions are in the language the employer wrote them, almost always German.
- Contact removal works on patterns; an unusual way of writing a name may slip through. Report it and it is fixed.
Changelog
- 16 Oct 2026: first version. Keyword, location, radius, offer type, working time, home office, contract, date,
employer, agency filters and sorting; search and job links; full description and employer profile;
onlyNewfor schedules.