Arbeitsagentur.de Scraper
Pricing
Pay per usage
Arbeitsagentur.de Scraper
Automate job data extraction from Germany's Federal Employment Agency. Scrape vacancies, employment stats & labor market insights instantly. Perfect for recruitment automation & market analysis.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Arbeitsagentur Scraper
Extract structured job listings from Germany's Arbeitsagentur Jobsuche portal. Collect current vacancies, employer names, job reference numbers, relevant location data, contract details, plain-text descriptions, and HTML-ready descriptions in a single run. This scraper is built for recruiters, labor-market analysts, lead generation workflows, and internal hiring dashboards.
Features
- Search URL support — Start from an existing Arbeitsagentur search URL and keep its filters intact.
- Simple input — Start from a working search URL or use only a keyword and location.
- Detailed job enrichment — Collect contract type, compensation labels, location variants, and full descriptions.
- Clean dataset output — Null, empty, and placeholder values are removed before items are stored.
- HTML and text descriptions — Get both
descriptionHtmlfor rendering anddescriptionTextfor indexing or exports. - Pagination control — Cap both page count and total saved jobs for predictable runtimes.
Use Cases
Recruiting Intelligence
Track active roles by city or keyword. Build shortlists of companies currently hiring for the positions you care about.
Labor Market Research
Measure vacancy volume, publication recency, and category distribution across regions. Export the dataset for longitudinal reporting and market trend analysis.
Lead Generation
Find employers that are repeatedly hiring in a given area. Use the collected company names, listing pages, and external application URLs as prospecting inputs.
Job Monitoring
Schedule recurring runs for Berlin, Munich, or any custom search query. Compare new results over time and alert downstream systems when listings change.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | https://www.arbeitsagentur.de/jobsuche/suche?wo=Berlin&umkreis=25&angebotsart=1 | Use an existing Arbeitsagentur search URL directly. |
keyword | String | No | — | Free-text job search term. |
location | String | No | — | Search location such as Berlin. |
collectDetails | Boolean | No | true | Fetch detailed descriptions and additional location and contract data. |
results_wanted | Integer | No | 20 | Maximum number of jobs to save. |
max_pages | Integer | No | 10 | Maximum number of result pages to request. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional proxy settings. |
Output Data
Each dataset item can contain the following fields:
| Field | Type | Description |
|---|---|---|
referenceNumber | String | Arbeitsagentur reference number for the vacancy. |
publicUrl | String | Public Arbeitsagentur listing page. |
detailApiUrl | String | Direct detail endpoint used for enrichment. |
title | String | Job title. |
profession | String | Profession label provided by the source. |
company | String | Employer name. |
companyHash | String | Employer hash value when available. |
employmentType | String | Listing type such as ARBEIT. |
contractType | String | Contract duration label. |
salary | String | Compensation label when available. |
publicationDate | String | Latest publication date. |
firstPublishedDate | String | First publication date from the detailed listing. |
modifiedAt | String | Last modification timestamp. |
startDate | String | Source start date. |
startDateRange | Object | Start date range object from the detailed listing. |
isFullTime | Boolean | Indicates whether the listing is full-time. |
descriptionText | String | Plain-text job description. |
descriptionHtml | String | HTML version of the job description with tags such as p, strong, ul, li, and br. |
externalUrl | String | External application or source URL when present. |
partnerName | String | Partner name attached to the listing. |
partnerUrl | String | Partner URL attached to the listing. |
primaryLocation | Object | Main location shown in the search results. |
locations | Array | Deduplicated listing-relevant locations. |
source | String | Fixed source label: arbeitsagentur.de. |
Usage Examples
Start From an Existing Search URL
{"startUrl": "https://www.arbeitsagentur.de/jobsuche/suche?wo=Berlin&umkreis=25&angebotsart=1","results_wanted": 20,"max_pages": 2,"collectDetails": true}
Keyword Search In a Specific City
{"keyword": "software engineer","location": "Berlin","results_wanted": 50,"collectDetails": true}
Fast Summary-Only Run
{"keyword": "support","location": "Berlin","collectDetails": false,"results_wanted": 30,"max_pages": 1}
Sample Output
{"referenceNumber": "10001-1002717526-S","publicUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1002717526-S","detailApiUrl": "https://rest.arbeitsagentur.de/jobboerse/jobsuche-service/pc/v4/jobdetails/MTAwMDEtMTAwMjcxNzUyNi1T","title": "Linux Administrator (m/w/d)","profession": "Fachinformatiker/in - Systemintegration","company": "NConsult GmbH","companyHash": "j0aPmLopen8lCLYNYFVQvSNU_Zt6R8pPPsn8NWUkVbA=","employmentType": "ARBEIT","contractType": "UNBEFRISTET","salary": "KEINE_ANGABEN","publicationDate": "2026-03-06","firstPublishedDate": "2026-03-06","modifiedAt": "2026-03-06T08:56:28.148","startDate": "2026-03-06","startDateRange": {"from": "2026-03-06"},"isFullTime": true,"descriptionText": "Willkommen bei NConsult GmbH – Ihre Partner für innovative IT-Lösungen! ...","descriptionHtml": "<p><strong>Willkommen bei NConsult GmbH – Ihre Partner für innovative IT-Lösungen!</strong></p><p>...</p>","primaryLocation": {"city": "Berlin","region": "Berlin","country": "Deutschland","distanceKm": "0","coordinates": {"latitude": 52.5112613,"longitude": 13.4255145}},"locations": [{"city": "Berlin","region": "BERLIN","country": "DEUTSCHLAND","coordinates": {"latitude": 52.5112613,"longitude": 13.4255145}}],"source": "arbeitsagentur.de"}
Tips for Best Results
Use Search URLs for Exact Reproducibility
If you already have a working Arbeitsagentur search page, pass it as startUrl. This keeps the same filters without rebuilding them manually.
Keep QA and Test Runs Small
Use results_wanted: 20 and a low max_pages value for quick validation runs. Increase both values only after confirming the returned fields are what you need.
Disable Detail Collection for Speed
Set collectDetails to false when you only need listing summaries such as title, employer, publication date, and public URL.
Narrow Broad Searches
Berlin-wide job searches can return tens of thousands of matches. Use a specific keyword or a narrower startUrl when you need tighter datasets.
Proxy Configuration
This scraper usually works without proxies. If your environment requires one, pass proxyConfiguration explicitly.
Integrations
- Google Sheets — Build lightweight vacancy trackers and recruiter dashboards.
- Airtable — Store and filter jobs by company, city, or contract type.
- Make — Trigger automations whenever new vacancies appear for a saved query.
- Zapier — Send fresh listings into notifications, CRMs, or internal workflows.
- Webhooks — Feed downstream systems with structured JSON.
Export Formats
- JSON — Best for APIs and custom pipelines.
- CSV — Useful for spreadsheet-based review and reporting.
- Excel — Suitable for business users and stakeholders.
- XML — Helpful for legacy integrations.
Frequently Asked Questions
Can I scrape a search URL directly?
Yes. Pass the Arbeitsagentur search page as startUrl and the scraper will reuse the query parameters from that URL.
Do I need collectDetails enabled?
Only if you want the full description, contract details, and all listing locations. Summary-only collection is faster.
Why do some records not have an externalUrl?
Not every listing exposes an external application page. When the source does not provide it, that field is omitted from the dataset.
Why are some address parts missing?
Some vacancies only expose city- or region-level location information. Empty fields are removed instead of being stored as null-like placeholders.
Why does locations no longer contain every office or branch address?
The actor keeps the listing-relevant locations and removes unrelated branch duplicates so Berlin jobs do not expand into large multi-city arrays.
Support
For issues or feature requests, use the actor page in the Apify Console.
Resources
Legal Notice
This actor is intended for legitimate data collection, research, and monitoring workflows. Users are responsible for ensuring their usage complies with applicable laws, platform terms, and internal data handling requirements.