Arbeitsagentur.de Scraper - German Federal Job Board
Pricing
from $8.00 / 1,000 job serp results
Arbeitsagentur.de Scraper - German Federal Job Board
Extract jobs from Germany's official employment agency (Bundesagentur für Arbeit). Get job titles, companies, locations, salaries, descriptions & contact details with ML-powered captcha solving. Supports search filters, direct URLs & job status checks.
Pricing
from $8.00 / 1,000 job serp results
Rating
5.0
(1)
Developer
NanoScrape
Maintained by CommunityActor stats
3
Bookmarked
69
Total users
6
Monthly active users
7 days ago
Last modified
Categories
Share
Arbeitsagentur.de Job Scraper
Scraper for job listings from Arbeitsagentur.de (Bundesagentur fur Arbeit), the German Federal Employment Agency's official job portal - one of the largest job boards in Germany with over 1 million active listings.
The actor now honors the platform's SERP filter and sort params 1:1: sort order, publication date window, employment type, and homeoffice percentage are all applied server-side before results are returned.
Features
- Pure HTTP Architecture: No browser needed -- fast API-based search + HTTP captcha flow (~80MB memory)
- Multi-Query Support: Run multiple search keywords in a single run with automatic deduplication
- ML-Powered Captcha Solving: Extracts contact details (email, phone, contact person) behind the captcha using a trained ONNX neural network (~95% first-attempt accuracy)
- Rich Company Data: Company logo, website (Homepage), description, and "Alle Stellen" link via employer profile API
- Full Job Descriptions: Complete text with structured salary, dates, and remote work flags
- Sort + Filter Options: Sort by newest or relevance, filter by publication date, employment type, and homeoffice percentage
- Direct URL Mode: Check status of specific job listings
- Standardized Output: Compatible with the Santamaria ecosystem
JobListingschema
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client -- Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=santamaria-automations/arbeitsagentur-de-scraper
Example prompt once connected:
"Use
arbeitsagentur-de-scraperto scrape job listings from arbeitsagentur de. Return results as a table."
Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.
How It Works
- Search Phase: Uses the public REST API (
v6/jobs) withX-API-Keyauthentication. Sort, age filter, employment type, and homeoffice params are forwarded directly to the API. - Job Details API (optional): Fetches rich structured data from
v4/jobdetails-- full description, salary range, dates, employment flags - Employer Profile API: Fetches company description, Homepage link, and logo URL from
ag-darstellung-service - Captcha + Contact API: Requests captcha assignment, solves with ONNX model, submits solution to unlock hidden contact data (email, phone, name)
All steps use pure HTTP -- no browser or Playwright required.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | - | Multiple search keywords (each runs as separate search, deduplicated) |
searchQuery | string | - | Single search keyword (legacy, backward compatible) |
titleFilter | string | - | Comma-separated terms for title filtering (case-insensitive OR-match, applied post-SERP before detail fetch). Empty disables the filter. Reduces costs by skipping non-matching jobs entirely. |
location | string | - | City or region (Wo) |
bundesland | string | All states | Federal state code (see table below) |
sortBy | string | newest | newest (sort=veroeffdatum) or relevance (sort=relevanz) |
employmentType | string | All types | FULL_TIME, PART_TIME, INTERNSHIP, APPRENTICESHIP, CONTRACT |
postedWithinDays | integer | 0 (no filter) | Only return jobs posted within last N days. Passed as veroeffentlichtseit (any integer). |
remotePercentageMin | integer | 0 (no filter) | Minimum homeoffice percentage. Set to 100 for fully remote only. |
maxResultsPerQuery | integer | 100 | Maximum results per search keyword |
maxResults | integer | 0 (unlimited) | Total cap across all queries |
includeJobDetails | boolean | false | Extract contact details, full description, company data (~3-5s/job) |
directUrls | array | - | Specific job URLs to scrape |
Bundesland Codes
| Code | State |
|---|---|
BW | Baden-Wurttemberg |
BY | Bayern (Bavaria) |
BE | Berlin |
BB | Brandenburg |
HB | Bremen |
HH | Hamburg |
HE | Hessen |
MV | Mecklenburg-Vorpommern |
NI | Niedersachsen |
NW | Nordrhein-Westfalen |
RP | Rheinland-Pfalz |
SL | Saarland |
SN | Sachsen |
ST | Sachsen-Anhalt |
SH | Schleswig-Holstein |
TH | Thuringen |
Employment Types
| Value | API Param | Platform label |
|---|---|---|
FULL_TIME | arbeitszeit=vz | Vollzeit |
PART_TIME | arbeitszeit=tz | Teilzeit |
INTERNSHIP | angebotsart=34 | Praktikum / Trainee |
APPRENTICESHIP | angebotsart=4 | Ausbildung |
CONTRACT | angebotsart=2 | Freiberuflich / Selbststaendig |
Sort Options
| Value | API Param | Behavior |
|---|---|---|
newest | sort=veroeffdatum | Publication date descending (freshest jobs first) |
relevance | sort=relevanz | Platform relevance ranking (API default) |
Output
Each job listing includes:
{"id": "12016-10004030577-S","title": "Pflegeassistent /in","company": "PerZukunft Arbeitsvermittlung GmbH&Co.KG","location": "10179, Berlin","country": "DE","canton": null,"salary_min": 12.82,"salary_max": 12.82,"salary_currency": "EUR","salary_period": "hourly","salary_text": "12,82 EUR/Std.","employment_type": "full-time","workload_min": null,"workload_max": null,"remote_option": null,"description_snippet": "Fur [mehrere] Standorte des Grossraums Berlin...","description_full": "Full job description with markdown formatting...","requirements": [],"company_benefits": [],"posted_at": "2026-02-26T00:00:00.000Z","modified_at": "2026-02-26T14:51:45.062Z","expires_at": null,"source_url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/12016-10004030577-S","source_platform": "arbeitsagentur.de","contact_salutation": "Frau","contact_firstname": "Delia","contact_lastname": "Schneider","contact_email": "wedding.pflege@perzukunft.de","contact_phone": "+49302200870","apply_url": "https://www.perzukunft.de/job/pflegeassistent-in-1201610004030577","apply_email": "wedding.pflege@perzukunft.de","company_url": null,"company_website": "http://www.perzukunft.de/","company_logo_url": "https://rest.arbeitsagentur.de/.../arbeitgeberlogo/QCGq...","company_description": "Perzukunft - Unternehmensprofil...","company_jobs_url": "https://www.arbeitsagentur.de/jobsuche/suche?angebotsart=1&arbeitgeberKundennummerHash=...","search_query": "Pflege","scraped_at": "2026-03-04T15:36:48.707Z"}
Field Reference
| Field | Source | Requires includeJobDetails |
|---|---|---|
company_website | Employer profile API (Homepage link) | Yes |
company_logo_url | Constructed from arbeitgeberKundennummerHash | Yes |
company_description | Employer profile API | Yes |
company_jobs_url | Constructed from employer hash | Yes |
description_full | v4 jobdetails API | Yes |
modified_at | v4 jobdetails API (aenderungsdatum) | Yes |
salary_min/max/period | v4 jobdetails API | Yes |
contact_* | Captcha-protected bewerbung API | Yes |
remote_option | v4 jobdetails API | Yes |
search_query | Input search keyword that found this job | No |
Usage
Scheduled Daily Scrape (recommended)
Best practice for pipelines: newest jobs only, full-time, posted today.
{"searchQueries": ["Softwareentwickler"],"sortBy": "newest","postedWithinDays": 1,"employmentType": "FULL_TIME","maxResultsPerQuery": 200}
Precision Daily Scrape (title filter)
Combine newest-first with a title filter to receive only the specific role categories you care about. Jobs that do not match any term are dropped before detail fetch, so you pay only for relevant results.
{"searchQueries": ["Software", "IT", "Entwickler"],"sortBy": "newest","postedWithinDays": 1,"titleFilter": "Engineer, Entwickler, Developer, Architect","employmentType": "FULL_TIME","maxResultsPerQuery": 200}
Multi-Query Search
{"searchQueries": ["Pflege", "Krankenschwester", "Altenpfleger"],"location": "Berlin","maxResultsPerQuery": 50,"maxResults": 0,"includeJobDetails": false}
Remote Jobs Only
{"searchQueries": ["Softwareentwickler"],"sortBy": "newest","remotePercentageMin": 100,"maxResultsPerQuery": 100}
Quick Search (without contact details)
{"searchQueries": ["Elektriker"],"location": "Munchen","maxResultsPerQuery": 50,"includeJobDetails": false}
Full Extraction (with contact details)
{"searchQueries": ["Pflege"],"bundesland": "BY","maxResultsPerQuery": 20,"includeJobDetails": true}
Legacy Single Query (backward compatible)
{"searchQuery": "Softwareentwickler","location": "Berlin","maxResults": 100,"includeJobDetails": true}
Precision title filter
Returns only German engineering jobs whose title contains "ingenieur" or "entwickler" (case-insensitive substring match). Non-matching SERP rows are dropped before the detail-fetch step, so you don't pay for job-detail events on jobs you don't want.
{"searchQueries": ["software"],"titleFilter": "ingenieur, entwickler","sortBy": "newest","maxResults": 50}
Example matched titles: "Softwareentwickler (m/w/d) Java Backend", "Ingenieur fur Automatisierungstechnik".
Via API
curl -X POST "https://api.apify.com/v2/acts/santamaria~arbeitsagentur-de-scraper/runs" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["Softwareentwickler", "Programmierer"],"location": "Berlin","sortBy": "newest","employmentType": "FULL_TIME","postedWithinDays": 7,"maxResultsPerQuery": 100,"includeJobDetails": true}'
Performance and Cost
| Mode | Memory | Speed | CU (50 jobs) |
|---|---|---|---|
Search only (includeJobDetails: false) | ~40 MB | ~25 jobs/sec | ~0.005 |
With details (includeJobDetails: true) | ~120 MB | ~1 job/3-5 sec | ~0.05 |
Tip: Use includeJobDetails: false (default) for high-volume scraping, enable only when you need contact details and company data.
Limitations
- Rate Limiting: 2s delay between requests to avoid blocks
- Salary Data: German job listings rarely include salary information
- Job Expiration: API doesn't provide expiration dates
- Contact Availability: Not all listings have contact details behind captcha
- Company Website: Only available when the employer has configured a Homepage link in their profile
Related Actors
Working across the German job market? These complement Arbeitsagentur.de:
Germany
- StepStone.de Scraper -- Germany's #1 private job board (market-side peer to this federal government portal).
- Stellenmarkt.de Scraper -- leading German national job board (generalist).
- Stellenanzeigen.de Scraper -- German national job board (generalist).
- Jobware.de Scraper -- German IT/engineering specialist board.
- Meine Stadt Scraper -- German local/regional jobs by city.
- Nicejob.de Scraper -- German job board with company-culture focus.
- E-Fellows Scraper -- German student/graduate jobs and internships.
Switzerland
Austria
Global
Enrich your job data
- Website Job Extractor -- Extract jobs directly from company career pages
- Website Contact Extractor -- Get emails and phone numbers from company websites
- Website Email and Phone Scraper -- Fast email and phone extraction (no AI needed)
Support
For issues or feature requests: Actor Issues | API Reference
Part of the Santamaria Job Scrapers Suite - Professional-grade job data for the DACH region.
Built with Apify | Arbeitsagentur.de