Bundesagentur für Arbeit Job Scraper
Pricing
from $0.85 / 1,000 job listings
Bundesagentur für Arbeit Job Scraper
Scrape structured job listings from Germany’s Bundesagentur für Arbeit / Arbeitsagentur job portal. Extract jobs, apprenticeships, internships, student positions, locations, salaries, contracts, remote-work info, and more.
Pricing
from $0.85 / 1,000 job listings
Rating
0.0
(0)
Developer
Frederic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
🏢 Bundesagentur für Arbeit Job Scraper
Extract structured job listing data from Germany's Bundesagentur für Arbeit / Arbeitsagentur - the largest public job portal in the DACH region, with over 700,000 active listings across all industries and job types.
Supports work positions, apprenticeships (Ausbildung), dual-study programs, internships, student jobs, and self-employment listings. Built for reliable bulk extraction with clean normalization, deduplication, and support for broad labor-market analysis.
Great for:
- 📊 Labor market research - analyze hiring trends, job demand, regions, contract types, and salary signals across Germany
- 🤖 HR & recruiting tooling - feed structured job data into matching engines, ATS systems, or recommendation pipelines
- 🎓 Apprenticeship & training search - collect Ausbildung, dual-study, internship, and trainee listings for education platforms
- 📈 Competitive intelligence - monitor job postings by company, region, profession, or keyword
- 🗺️ Geographic workforce analysis - compare hiring patterns by city, region, and radius
🔍 What data do you get?
| Data type | Description |
|---|---|
| Identity | Job title, company name, reference number, and external application URL where available |
| Location | City, ZIP code, region, country, street address, district, and GPS coordinates where available |
| Work conditions | Contract type, working-time arrangement, contract duration, and salary (fixed or range, hourly or annual) |
| Remote work | Whether remote work is possible, including partial vs. full and percentage where specified |
| Professions | Canonical profession labels as classified by the Bundesagentur |
| Dates | First published date, last modified date, and earliest available start date |
| Apprenticeship details | Study form, course name, and yearly training compensation for up to 4 years where available |
| Provenance | Source identifier and scrape timestamp |
🔋 Why use this scraper?
-
🇩🇪 Germany's most comprehensive job source
The Bundesagentur für Arbeit is the central public job board in Germany. Many employers are required to post here, making it uniquely complete compared to commercial platforms. -
⚡ No proxies required
The actor does not require browser automation or proxy-heavy crawling, making it cheaper, faster, and more stable for large extraction jobs. -
🧹 Clean, normalized output
Raw listing fields such as salary variants, working-time flags, remote-work information, and apprenticeship data are mapped into a consistent and enforced schema. -
🔁 Built-in deduplication
Results are deduplicated by reference number before being emitted. You are never charged twice for the same listing. -
📦 Easy export
Download as JSON, CSV, Excel, or XML, or connect directly to your backend via the Apify API.
✏️ Input fields
| Field | Description |
|---|---|
jobType | Required. Type of listing: Work, Apprenticeship, Internship & Student Jobs, or Self-employment |
query | Free-text search by job title or keyword, e.g. Informatik, Bäcker, Softwareentwickler |
location | Filter by city or region, e.g. Berlin, München, Hamburg |
radius | Search radius in km around the specified location. Only applies if location is set |
maxResults | Stop after collecting this many unique listings |
enableExperimentalPartitioning | Split broad searches into sub-queries to extract beyond the default search cap. See below |
📤 Output format
Each job listing is emitted as one normalized record:
{"source": "bundesagentur","scrapedAt": "2026-05-14T10:00:00.000Z","id": "10001-1002413994-S","url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1002413994-S","title": "Firmware-Entwickler (m/w/d)","company": "Tintschl Technik GmbH","type": "ARBEIT","locations": [{"city": "Berlin","zip": "13629","region": "BERLIN","country": "DEUTSCHLAND","street": null,"houseNumber": null,"district": null,"lat": 52.544565,"lng": 13.267390}],"remote": null,"remoteType": null,"remotePercentage": null,"workTime": ["VOLLZEIT"],"contract": "UNBEFRISTET","contractDurationMonths": null,"salary": {"type": "JAHRESGEHALT","kind": "GEHALTSSPANNE","from": 48000,"to": 78000},"professions": ["Ingenieurinformatiker/in","Informatiker/in","Softwareentwickler/in"],"firstPublished": "2026-05-10","lastModified": "2026-05-10T08:05:01.735Z","availableFrom": "2026-07-01","dualStudy": null}
⚗️ Experimental partitioning
The Bundesagentur job search caps results at 10,000 per query. For very broad searches - scraping an entire job category without keyword or location filters - this limit is hit quickly.
Experimental partitioning works around this by automatically splitting the search space into smaller sub-queries using available filter dimensions such as location, industry, contract type, and working-time arrangement. Results are merged and deduplicated by reference number across all partitions.
What to expect:
- ✅ Output is always deduplicated - you are never charged twice for the same listing
- ⚠️ Partitions with a highly skewed data distribution may still hit the result cap - the actor extracts as much as possible and logs a warning
- 🐢 Runtime increases significantly for large unfiltered queries - a full Work category export covers ~700,000 listings
- 🔬 The partitioning logic is heuristic-based and may miss a small number of listings in edge cases
Partitioning is most useful for full-category exports and market analysis. For targeted searches with a keyword or location filter, results rarely exceed the cap and partitioning is unnecessary.
❓ FAQ
Q: Is this only for regular job listings?
No. The actor supports work listings, apprenticeships (Ausbildung), dual-study programs, internships, student jobs (Werkstudent), trainee positions, and self-employment listings.
Q: Do I need proxies?
No. The actor is designed to run entirely without proxies.
Q: Can I scrape more than 10,000 results?
Yes - enable experimental partitioning. This splits broad searches into sub-queries and deduplicates the output, allowing full-category exports well beyond the default cap.
Q: Will I be charged twice for duplicate listings?
No. Listings are deduplicated by reference number before being emitted. You only pay for unique results.
Q: Is scraping Arbeitsagentur data legal?
This actor extracts publicly available job listing data from a government portal. As always, ensure your use case complies with applicable laws, platform terms, and data protection requirements.
💬 Support
Questions, issues, or edge cases?
Drop us a message - this actor is actively maintained.