Arbeitsagentur Jobs Scraper avatar

Arbeitsagentur Jobs Scraper

Pricing

$3.00 / 1,000 results

Go to Apify Store
Arbeitsagentur Jobs Scraper

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

Zilicon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

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

FieldDescription
idStable id, source-prefixed - e.g. arbeitsagentur:13644-310253-S
boardAlways arbeitsagentur
titleJob title as advertised
companyHiring employer
locationCity, region, country, with consecutive repeats collapsed - e.g. Berlin, DEUTSCHLAND
postalCodeGerman postcode of the workplace
categoryMain occupation (Hauptberuf) - e.g. Anwendungsprogrammierer/in
tagsAll occupations the posting is classified under
offerTypeARBEIT (job), AUSBILDUNG (apprenticeship), and similar
remotetrue when the employer flagged the role as home-office capable
fullTime / partTimeWorking-time model flags
contractDurationPermanent, fixed-term, or not stated
startDateEarliest start date, when the employer gave one
distanceKmDistance from your search location, when you set one
salaryMin, salaryMaxReserved - the agency's search feed publishes no salary figure
url, applyUrlThe employer's own posting when available, otherwise the Arbeitsagentur detail page
publishedAtISO 8601 date the posting first appeared
teaserReserved - 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.

InputWhat it does
keywordsFree-text job search, e.g. developer, projektmanager, pflegefachkraft. Blank returns everything matching your other filters
maxResultsStop after this many jobs. Your cost control
locationCity or postcode to search around, e.g. Berlin, München, 10178
radiusKmHow far around that location to search - 25 for a city, 200 for a region
occupationFieldOne of the agency's occupational groups, e.g. Softwareentwicklung und Programmierung, Altenpflege
employerOnly this employer, using its full registered name, e.g. Deutsche Bahn AG, Siemens AG
publishedWithinDaysOnly postings from the last N days, 1 to 100
offerTypeJob, apprenticeship / dual study, internship, or self-employment
contractTypePermanent (unbefristet) or fixed-term (befristet)
workingTimeFull-time, part-time, shift/night/weekend, mini-job - pick any combination
remoteOnlyKeep only home-office-capable postings
includeTempAgenciesTurn off to exclude staffing firms and see only direct employers
accessibleJobsOnly postings marked suitable for applicants with a disability
maxPagesHow many 100-job pages to walk. Raise it only if a high maxResults is coming back short
proxyConfigurationStandard 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 Programmierung returns about 5,800 jobs; Altenpflege about 19,700; Elektrotechnik about 19,900. An invented label such as Gesundheit or Logistik returns zero, and so does the wrong case.
  • Employer must be the full registered name. Siemens AG returns about 500 jobs and Deutsche Bahn AG about 3,500, while Siemens and Deutsche Bahn return 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.