Arbeitsagentur Jobs Monitor – New German Job Listings
Pricing
from $0.99 / 1,000 job returneds
Arbeitsagentur Jobs Monitor – New German Job Listings
Search the job board of the German Federal Employment Agency (Bundesagentur für Arbeit) by keyword, place, radius, offer type, working time and contract. One row per job: title, employer, location, salary, dates, links. Monitoring mode returns only new jobs.
Pricing
from $0.99 / 1,000 job returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Search the job board of the German Federal Employment Agency (Bundesagentur für Arbeit, "Jobsuche") and get one row per job: title, employer, occupation, place with coordinates, working time, contract, salary when the listing gives one, publication dates, the job page and the external apply link.
Turn on monitoring mode, put the run on a schedule, and each run returns only the jobs that were not there before. You do not download the same thousand listings every hour and compare them yourself.
- No login, no browser, no proxy needed. The Actor reads the same public search interface that the agency's own job search page uses.
- Search terms are German, exactly as on the job board:
Pflegefachkraft,Softwareentwickler,Lagerhelfer,Erzieher,Elektroniker,Kaufmann für Büromanagement. - A run that returns nothing always says why, in a row that is not charged.
What you can search by
| Input | Meaning | Example |
|---|---|---|
what | Job title, occupation or keyword (the board's "was") | Pflegefachkraft |
where | City or five-digit postal code (the board's "wo") | Berlin, München, 10115 |
radiusKm | Distance around the place, 0 to 200 km | 25 |
offerType | job, apprenticeship, internship-trainee, self-employment | apprenticeship |
workingTime | full-time, part-time, shift-night-weekend, mini-job | part-time |
contract | permanent or fixed-term | permanent |
publishedWithinDays | Only jobs published in the last N days: 0, 1, 7, 14 or 28 | 7 |
maxJobs | Stop after this many rows (default 100, up to 10000) | 500 |
monitoringMode | Return only new jobs since the previous run of the same search | true |
Every filter is applied by the job board itself. Each one was checked against the returned rows on 2026-10-05 (for example: offerType: apprenticeship returned 50 of 50 rows of type AUSBILDUNG; contract: fixed-term returned 50 of 50 rows marked BEFRISTET).
Example: nursing jobs within 25 km of Berlin
{"what": "Pflegefachkraft","where": "Berlin","radiusKm": 25,"maxJobs": 100}
Example: watch for new software developer jobs around Munich
{"what": "Softwareentwickler","where": "München","radiusKm": 50,"monitoringMode": true}
Schedule this run (for example every hour). The first run only remembers what is listed. Every later run returns the new jobs.
What a row looks like
{"status": "ok","refnr": "12618-177311-S","title": "Pflegefachkraft in der stationären Pflege","employer": "AWO Pflege Schleswig-Holstein gGmbH","occupation": "Pflegefachmann/-frau (Ausbildung)","allOccupations": ["Pflegefachmann/-frau (Ausbildung)"],"offerTypeCode": "ARBEIT","city": "Lübeck","postalCode": "23562","region": "SCHLESWIG_HOLSTEIN","country": "DEUTSCHLAND","latitude": 53.8306119,"longitude": 10.7169372,"locationsCount": 1,"locations": [{ "city": "Lübeck", "postalCode": "23562", "region": "SCHLESWIG_HOLSTEIN", "country": "DEUTSCHLAND", "latitude": 53.8306119, "longitude": 10.7169372 }],"fullTime": false,"partTime": true,"shiftNightWeekend": true,"miniJob": false,"homeOfficePossible": false,"careerChangersWelcome": false,"contract": "permanent","contractCode": "UNBEFRISTET","fixedTermMonths": null,"fixedTermUntil": null,"salaryMin": 40000,"salaryMax": 50000,"salaryPeriod": "year","salaryCode": "JAHRESGEHALT","startDate": "2026-10-04","firstPublishedDate": "2026-10-04","publishedFrom": "2026-10-04","modifiedAtLocal": "2026-10-04T16:45:40.618","jobUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/12618-177311-S","externalUrl": "https://www.awo-jobs.de/index.php?id=114&uid=177311","searchedWhat": "Pflege","searchedWhere": null,"resolvedPlace": null,"scrapedAt": "2026-10-05T09:00:00.000Z"}
Notes on the columns:
- A value the listing does not give is
null. Nothing is filled with 0,falseor an empty string.fullTime,partTime,homeOfficePossibleand the other yes/no columns arenullwhen the listing does not say. - Salary is what the employer entered: a range (
salaryMintosalaryMax) or one fixed amount (then both are the same).salaryPeriodisyearorhour; other ways of stating pay keep the board's own code insalaryCodeand leavesalaryPeriodempty. The board does not send a currency. Most listings give no salary: in 500 listings for "Pflege" read on 2026-10-05, 134 carried a figure. offerTypeCode,contractCode,salaryCode,region,countryare the board's own German codes, unchanged (ARBEIT,AUSBILDUNG,PRAKTIKUM_TRAINEE,SELBSTAENDIGKEIT;UNBEFRISTET,BEFRISTET,KEINE_ANGABE).jobUrlis the job's page on arbeitsagentur.de.externalUrlis the employer's or partner board's page when the listing has one (183 of the same 500).modifiedAtLocalis the board's timestamp as sent, without a time zone (German local time).resolvedPlaceis how the board understoodwhere.locationslists every workplace of a job with several (the first one fillscity,postalCodeand the coordinates).- In monitoring mode each row also has
change: "new-job"andpreviousCheckedAt.
Not in the rows, on purpose: street addresses, contact persons, phone numbers, e-mail addresses and the full description text. They are not part of the search result list, and the Actor does not open the detail and contact pages (some of them sit behind a CAPTCHA, which this Actor never tries to pass).
Monitoring mode
- First run of a search: the jobs published today and yesterday are remembered. No job row is returned, nothing is charged. The dataset holds one
baseline-savedrow that says so. - Every later run of the same search: the Actor asks the board only for recently published jobs (the last 1, 7, 14 or 28 days, whichever covers the time since the previous completed run), compares them with what it remembers and returns the ones it has not seen. Each is charged as one
job-returned. - A run that finds nothing new returns one
no-new-jobsrow and is charged onesearch-checkedevent.
Details that matter:
- The memory is kept per search (
what,where,radiusKm,offerType,workingTime,contract). A different search has its own memory.maxJobsandpublishedWithinDaysare not used in monitoring mode; a monitoring run returns every new job. - "New" means: published on or after the day before the first monitoring run, and not seen at an earlier run. Older listings are never reported as new. A job that an employer takes down and publishes again under a new reference number is a new job.
- If the maximum total charge of a run is too small for all new jobs, the rest are not remembered and come back at the next run.
- If the board cannot be read, nothing is charged and nothing is remembered; the next run looks at the same days again.
- Do not schedule two runs of the same search at the same moment: the memory is a key-value store without locking, and one run could overwrite the other's record.
resetMonitoringState: trueforgets the memory of this one search.
Rows that are not jobs (never charged)
status | When |
|---|---|
no-jobs | The board says the search holds 0 jobs |
no-new-jobs | Monitoring: nothing new since the previous run |
baseline-saved | Monitoring: first run of this search |
no-such-location | The board does not know the place in where |
invalid-input | An input value could not be used; nothing was read |
source-unreadable / source-blocked | The board did not answer, answered in an unknown format, or refused (HTTP 403/429) |
partly-read | A later page could not be read; the jobs read before it are returned |
limit-reached | The search holds more than the 10,000 jobs the board lets anyone page through |
budget-reached / not-read | The maximum total charge of the run was reached |
Limits you should know
publishedWithinDaystakes only 0, 1, 7, 14 or 28. Measured on 2026-10-05: the board silently ignores any other number (2, 3, 5, 10, 30, 60 and 100 all returned the full unfiltered result), so the Actor rejects other values instead of returning rows you did not ask for.- 10,000 jobs per search. The board refuses to page beyond that (HTTP 400). Narrow the search by place, radius, offer type or days to reach everything.
- The board's order is by relevance, not by date, and it can shift a little between pages. The Actor removes a job that shows up on two pages; a job that slips between two pages can be missing from a large one-off run. Monitoring runs look at overlapping days, so such a job is picked up at the next run.
- Search terms are matched by the board. The Actor does not re-filter the results; what the agency's own search returns for your words is what you get.
- The Actor sends one request at a time with a pause between requests, and does not retry a refusal.
Pricing
job-returned: one per job row.search-checked: monitoring mode only, one per run that read the search completely and found no new job.- No start fee. Rows that explain an empty or partial result are free. The first monitoring run of a search is free.
Data source
Public job search of the Bundesagentur für Arbeit (arbeitsagentur.de). This Actor is not affiliated with the agency.
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.