Most people don't know this: the Bundesagentur für Arbeit (Germany's Federal Employment Agency) runs a free public API — Jobsuche — covering basically every registered job posting in the country. No auth needed, no rate-limit games, official data source.

I wrapped it in an Apify Actor and it turned out more useful than expected. Quick writeup of what's interesting:

The API nobody talks about

The Arbeitsagentur search endpoint (arbeitnow-style, but official) returns structured JSON: job title, employer, salary ranges, exact locations with coordinates, remote-work flags (homeofficemoeglich), contract type, posting dates. It's the same data behind arbeitsagentur.de/jobsuche — Germany's biggest job board.

Gotcha I hit while building: the boolean filters work exclusively, not inclusively. zeitarbeit=true doesn't mean "include temp-agency jobs" — it means "ONLY temp-agency jobs". Combine two and you get the intersection = 0 results. Took a real API call to catch.

The part I actually think is useful

Raw job listings are a commodity. The interesting question for recruiters/lead-gen is different: who is hiring right now, and how much?

So the actor also emits a second dataset — aggregated company summaries. Feed it "vertrieb, München" and out comes a prospect list: which companies have open sales roles in Munich, how many, where. That's a list a recruiter would pay for, and it's a free byproduct of the same API calls.

Try it

The actor is public on Apify Store (pay-per-event, ~$0.75/1k results):

I also built the same thing for German company registry data (northdata — legal names, HRB, executive officers): https://apify.com/dach_data_tools/northdata-scraper

Happy to answer questions about the API quirks — the docs undersell how much data is in there.

webdev #api #scraping #germany