Bundesagentur für Arbeit Scraper avatar

Bundesagentur für Arbeit Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Bundesagentur für Arbeit Scraper

Bundesagentur für Arbeit Scraper

Bundesagentur für Arbeit Scraper Extract job listings from Germany's Bundesagentur für Arbeit, including job titles, employers, locations, salaries, employment types, posting dates, descriptions, and apply URLs. Export to JSON, CSV, Excel, or XML for recruitment, research, and job analytics.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

🇩🇪 Bundesagentur für Arbeit Job Scraper

🚀 The fastest, most complete Arbeitsagentur.de job scraper on Apify. Pull thousands of fresh German-language job postings — title, employer, salary notes, contract type, contact emails, full description, application URL and 30+ other fields — straight into a clean dataset.


💡 Why Choose This Scraper?

  • Blazing fast — async, concurrent fetching of search pages and job details simultaneously.
  • 🎯 Bulk input — feed any number of Arbeitsagentur.de search URLs and get a single deduped dataset back.
  • 🛰️ Smart proxy fallback — starts direct, auto-escalates to Apify datacenter, then residential proxies on rate limits, then sticks with the upgraded tier.
  • 💾 Live saving — every job is pushed to the dataset the moment it's ready. A crash mid-run never costs you data.
  • 🛡️ Production-grade error handling — retries with exponential backoff on every external call.
  • 📧 Contact email extraction — automatically pulls application emails out of job descriptions.
  • 🇪🇺 DACH coverage — postings from Germany, Austria, and Switzerland whenever Arbeitsagentur.de surfaces them.

🎯 Key Features

FeatureDescription
🔗 Bulk URL inputDrop any number of Arbeitsagentur.de search URLs
🔎 Keyword searchOptional position + location fallback inputs
🛰️ Adaptive proxynone → datacenter → residential (3 retries) escalation
📊 Rich output38 normalized fields per job
💾 Live persistencepush_data after every record — no data loss on crash
🔁 Retry policy3 attempts with exponential backoff + jitter
📧 Email extractionRegex-pulled application emails from descriptions
🆔 DeduplicationBy Arbeitsagentur reference number across queries

📥 Input

{
"startUrls": [
{ "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler%2Fin" }
],
"position": "Softwareentwickler/in",
"location": "Berlin",
"maxItems": 100,
"proxyConfiguration": { "useApifyProxy": false }
}
FieldTypeRequiredDescription
🔗 startUrlsarrayList of Arbeitsagentur.de job search URLs
💼 positionstringKeyword fallback when no URL is supplied
📍 locationstringGerman city, region, or postal code
🎯 maxItemsintegerTotal result cap across all queries (default 100)
🛰️ proxyConfigurationobjectDefaults to no proxy; auto-falls back on blocks

📤 Output

Each dataset row looks like:

{
"title": "Softwareentwickler/in",
"mainJob": "Softwareentwickler/in",
"descriptionText": "LOCATION: Villach, AT, 9500 REQ ID: 198751 ...",
"jobType": "ARBEIT",
"referenceNumber": "11949-17224369-S",
"publishingStartDate": "2026-05-15",
"firstPublicationDate": "2026-05-15",
"lastUpdatedAt": "2026-05-15T17:04:43.169",
"contractDuration": "UNBEFRISTET",
"startDate": "2026-05-16",
"salaryNote": "KEINE_ANGABEN",
"employerName": "Lam Research AG",
"employerWebsite": null,
"employerIndustry": null,
"location": "9500 Villach-Lind, KAERNTEN, OESTERREICH",
"isFullTime": true,
"isWorkFromHome": false,
"externalURL": "https://jobs.ams.at/public/emps/jobs/...",
"isExternal": true,
"applicationEmail": null,
"url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/11949-17224369-S"
}

Full list of returned fields:

title, mainJob, descriptionText, jobType, referenceNumber, publishingStartDate, firstPublicationDate, lastUpdatedAt, contractDuration, contractDurationLimitedTo, contractDurationMonths, startDate, entryPeriod, salaryNote, employerName, employerCustomerNumberHash, employerWebsite, employerIndustry, employerFirmSize, location, employerAddress, isFullTime, isMarginalEmployment, isPartTimeMorning, isPartTimeAfternoon, isPartTimeEvening, isPartTimeFlexible, isWorkFromHome, nightOrWeekendShift, isDisabilityRequired, isPrivateAgency, isTemporaryEmployment, externalURL, isExternal, applicationEmail, allianzpartnerName, allianzpartnerUrl, url.


🚀 How to Use (Apify Console)

  1. 🔐 Log in at https://console.apify.comActors.
  2. 🔎 Open this actor (Bundesagentur für Arbeit Job Scraper).
  3. ⚙️ Configure inputs:
    • Paste one or more Arbeitsagentur.de search URLs, or
    • Provide a position keyword + optional location.
    • Set maxItems (default: 100).
  4. ▶️ Click Start.
  5. 📜 Watch the live log — every saved job appears in real time.
  6. 📊 When the run finishes, open the Output tab.
  7. 📥 Export as JSON, CSV, XLSX, HTML, RSS or XML.

🤖 Use via API / curl

Run synchronously and stream the dataset back:

curl -X POST "https://api.apify.com/v2/acts/<USER>~bundesagentur-fur-arbeit-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [
{ "url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Softwareentwickler%2Fin" }
],
"maxItems": 50
}'

Run asynchronously and poll:

curl -X POST "https://api.apify.com/v2/acts/<USER>~bundesagentur-fur-arbeit-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&was=Pflegekraft"}],"maxItems":200}'

💼 Best Use Cases

  • 🧑‍💼 Recruiters — track open vacancies in your sector and city
  • 🏢 HR Tech / ATS vendors — enrich your job feed with German listings
  • 📊 Market research — analyse the German labor market by region, industry, contract type
  • 🤖 Job aggregators — build vertical job boards on top of the official German source
  • 📰 Journalists / analysts — quote real numbers on supply and demand

💰 Pricing

This actor is on pay-per-event (PPE).

EventDescriptionWhy
🚀 apify-actor-startOne charge per run startCovers warm-up compute
📄 apify-default-dataset-itemOne charge per saved job postingPay only for results you actually receive

Synthetic events are configured in the Apify Console. You only pay for successful, saved results — no data, no charge.


❓ Frequently Asked Questions

Q: Where does the data come from? A: The official Arbeitsagentur.de public job search API (the same one powering the website's search and detail pages).

Q: Do I need a proxy? A: No. The actor defaults to a direct connection. If the upstream rate-limits us, the proxy strategy auto-escalates to Apify datacenter, then residential proxies — no input needed.

Q: How fresh is the data? A: It's a live API call on every run — what you get is what Arbeitsagentur.de is serving right now.

Q: How many results can I scrape? A: As many as Arbeitsagentur.de exposes — set maxItems to the upper bound you want.

Q: Are application emails always available? A: No — only when the employer included a contact email inside the public description text. We regex-extract whenever present.

Q: Why are some jobs from Austria? A: Arbeitsagentur.de partners with AMS (Austria) and shows DACH-region postings. We expose the allianzpartnerName field so you can filter.


  • 🌐 All data comes from publicly available endpoints.
  • ⚖️ End users are responsible for compliance with GDPR, the target site's ToS, and any local regulations.
  • 🤝 The actor honors reasonable rate limits and uses exponential backoff to be a good API citizen.

📬 Support & Feedback

Spotted a bug? Need a new field? Open an issue from the Apify Console — we read every report. 🙌


Built with ❤️ on Apify · 2026