Arbeitsagentur.de Scraper
Pricing
from $1.50 / 1,000 results
Arbeitsagentur.de Scraper
Scrape 800k+ German job listings from Arbeitsagentur.de with full descriptions, salary data, GPS coordinates and repost detection. Keyword, city and contract filters included. No API key required.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Extract structured job listings from Arbeitsagentur.de — Germany's largest public job board with over 800,000 active vacancies across all sectors and regions. No API key or account required.

Why use this scraper?
- 800,000+ listings — The official job portal of Germany's Federal Employment Agency, covering virtually every sector
- Full job descriptions — Complete vacancy text in HTML, plain text, and Markdown formats
- Salary data — Structured annual and hourly salary ranges when disclosed by the employer
- GPS coordinates — Latitude/longitude for every job location, ready for geo-filtering and mapping
- Rich filters — Search by keyword, city, radius, working hours, contract type, and posting date
- Repost detection — Cross-run deduplication flags jobs that reappear under a new reference number
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | — | Job title, keyword or skill (e.g. Softwareentwickler, Pflege) |
location | string | — | City or region (e.g. Berlin, München) |
locationRadius | integer | 25 | Search radius in km around the location |
jobOfferType | string | 1 | 1 = regular jobs · 2 = apprenticeships · 4 = self-employment |
workingHours | string | all | vz = full-time · tz = part-time · ho = home office · mj = mini-job · snw = shift/night/weekend |
contractType | string | all | 1 = fixed-term · 2 = permanent |
daysOld | integer | — | Max posting age in days (1, 7, 14, or 28) |
maxResults | integer | 100 | Maximum number of results to return |
fetchDetails | boolean | true | Fetch full job descriptions (disable for metadata-only runs) |
skipReposts | boolean | false | Skip jobs already seen in previous runs |
startUrls | array | — | Scrape specific job URLs directly |
Output schema
Each result contains the following fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique reference number (Referenznummer) |
url | string | Direct link to the job posting |
title | string | Job title |
company | string | Employer name |
jobType | string | Primary occupation category (Bundesagentur classification) |
allJobTypes | array | All associated occupation categories |
offerType | string | ARBEIT, AUSBILDUNG, or SELBSTAENDIGKEIT |
city | string | City |
region | string | Federal state or region |
postalCode | string | Postal code |
country | string | Country |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
isFullTime | boolean | Full-time position |
isCareerChange | boolean | Suitable for career changers (Quereinsteiger) |
isMinijob | boolean | Marginal employment / mini-job |
isLeiharbeit | boolean | Temporary staffing (Arbeitnehmerüberlassung) |
isPrivateAgency | boolean | Listed by a private recruitment agency |
isShiftOrNightWork | boolean | Includes shift, night or weekend work |
isPartTimeEvening | boolean | Part-time: evening |
isPartTimeMorning | boolean | Part-time: morning |
isPartTimeAfternoon | boolean | Part-time: afternoon |
isPartTimeFlexible | boolean | Part-time: flexible hours |
salaryMin | number | Minimum salary (EUR) |
salaryMax | number | Maximum salary (EUR) |
salaryPeriod | string | YEAR, MONTH, or HOUR |
currency | string | Always EUR |
contractType | string | UNBEFRISTET, BEFRISTET, or KEINE_ANGABE |
salaryType | string | Salary disclosure type |
publishDate | string | First publication date (YYYY-MM-DD) |
publishDateISO | string | First publication date in ISO 8601 |
modifiedAt | string | Last modification timestamp |
startDate | string | Earliest start date |
description | string | Full job description (HTML) |
descriptionText | string | Full job description (plain text) |
descriptionMarkdown | string | Full job description (Markdown) |
applyUrl | string | External application URL (when applicable) |
referenceNumber | string | Internal chiffre number |
partnerName | string | Alliance partner name (e.g. staffing firm) |
partnerUrl | string | Alliance partner website |
employerHash | string | Employer identifier hash |
contentHash | string | MD5 hash of URL + publish date (16 chars) |
summary | string | One-line summary for alerts and integrations |
source | string | Always arbeitsagentur.de |
scrapedAt | string | ISO 8601 timestamp of extraction |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string | Original publish date for reposts |
originalUrl | string | Original URL for reposts |
Example output
{"id": "12265-480157_JB5111271-S","url": "https://www.arbeitsagentur.de/jobsuche/suche?id=12265-480157_JB5111271-S&angebotsart=1","title": "Softwareentwickler (m/w/d)","company": "FERCHAU GmbH Niederlassung Rosenheim","jobType": "Softwareentwickler/in","allJobTypes": ["Softwareentwickler/in"],"offerType": "ARBEIT","city": "Nußdorf am Inn","region": "BAYERN","postalCode": "83131","country": "DEUTSCHLAND","latitude": 47.732437483,"longitude": 12.162120449,"isFullTime": true,"isLeiharbeit": true,"salaryMin": 45000,"salaryMax": 65000,"salaryPeriod": "YEAR","currency": "EUR","contractType": "KEINE_ANGABE","publishDateISO": "2026-03-31","descriptionMarkdown": "## Softwareentwickler (m/w/d)\n\n**Dein Aufgabengebiet**\n* Entwicklung und Pflege von Softwarelösungen\n...","source": "arbeitsagentur.de","isRepost": false}
Pricing
This scraper uses pay-per-result pricing at $1.50 per 1,000 results.
| Volume | Cost |
|---|---|
| 1,000 results | $1.50 |
| 10,000 results | $15.00 |
| 100,000 results | $150.00 |
| Flat-rate alternative | Subscribe to Apify for unlimited usage |
Performance
| Scenario | Results/min | Notes |
|---|---|---|
List-only (fetchDetails: false) | ~2,000 | Metadata only, no descriptions |
With details (fetchDetails: true) | ~200–300 | Full descriptions and salary data |
| Full Germany scrape | ~800,000 results | Use maxResults to cap volume |
Known limitations
- Salary data: Only ~25% of listings include disclosed salary ranges. This reflects employer disclosure rates, not a scraper limitation.
- External listings: Jobs posted via third-party boards (externestellenboersen) include a redirect URL rather than an internal description.
- Date filter precision: Arbeitsagentur's API supports fixed date buckets (1, 7, 14, 28 days) — values outside these boundaries are rounded up.
- Description format: Job descriptions are sourced as Markdown and converted to HTML and plain text. Formatting quality depends on the original employer submission.
Technical details
- Memory: 256 MB
- Timeout: 3 hours
- Output format: JSON (Apify Dataset)
- Dedup store:
arbeitsagentur-de-job-dedup(90-day TTL)
Additional services
Need a custom integration, scheduled runs, or data delivery to your warehouse? Contact info@unfencedgroup.nl — we build tailored data pipelines on top of our portfolio scrapers.
Built and maintained by unfenced-group · View all scrapers