Bundesagentur für Arbeit Job Scraper avatar

Bundesagentur für Arbeit Job Scraper

Pricing

from $0.85 / 1,000 job listings

Go to Apify Store
Bundesagentur für Arbeit Job Scraper

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

Frederic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

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 typeDescription
IdentityJob title, company name, reference number, and external application URL where available
LocationCity, ZIP code, region, country, street address, district, and GPS coordinates where available
Work conditionsContract type, working-time arrangement, contract duration, and salary (fixed or range, hourly or annual)
Remote workWhether remote work is possible, including partial vs. full and percentage where specified
ProfessionsCanonical profession labels as classified by the Bundesagentur
DatesFirst published date, last modified date, and earliest available start date
Apprenticeship detailsStudy form, course name, and yearly training compensation for up to 4 years where available
ProvenanceSource 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

FieldDescription
jobTypeRequired. Type of listing: Work, Apprenticeship, Internship & Student Jobs, or Self-employment
queryFree-text search by job title or keyword, e.g. Informatik, Bäcker, Softwareentwickler
locationFilter by city or region, e.g. Berlin, München, Hamburg
radiusSearch radius in km around the specified location. Only applies if location is set
maxResultsStop after collecting this many unique listings
enableExperimentalPartitioningSplit 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.