Arbeitsagentur Jobs Scraper - German Job Listings API avatar

Arbeitsagentur Jobs Scraper - German Job Listings API

Pricing

from $0.72 / 1,000 job listings

Go to Apify Store
Arbeitsagentur Jobs Scraper - German Job Listings API

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

Kamer Ozkan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

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?

FieldExample
referenceNumber20263-2343065-S (stable job ID)
titleData Analyst Digital Health (m/w/d)
occupationData-Analyst/in
employerMEDIAN Unternehmensgruppe B.V. & Co. KG
offerTypejob, apprenticeship, internship or self-employment
city, postalCode, region, countryBerlin, 10587, BERLIN, DEUTSCHLAND
latitude, longitude, distanceKm52.5177, 13.3251, 7
workTimefull-time, part-time, shift-night-weekend, mini-job
contractpermanent or fixed-term (when stated)
homeOffice, homeOfficeTypetrue, NACH_VEREINBARUNG
salaryType, annualSalaryEurJAHRESGEHALT, 66727.63 (when the employer publishes it)
startDate, firstPublishedAt, publishedFrom, modifiedAt2026-10-08, 2026-09-24
temporaryAgency, privateRecruiter, careerChangerFriendlyfalse, false, false
descriptionfull job description text
urllink to the job on arbeitsagentur.de
externalUrlthe 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

  1. Click Try for free.
  2. 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.
  3. Optionally set the radius, "Published within (days)", offer type, working time or an employer name.
  4. Click Start and download results as JSON, CSV or Excel, or read them via the API.
  5. 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 ApifyClient
client = 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.