Arbeitsagentur Job Scraper — Salary, Contact & Details avatar

Arbeitsagentur Job Scraper — Salary, Contact & Details

Pricing

from $1.30 / 1,000 results

Go to Apify Store
Arbeitsagentur Job Scraper — Salary, Contact & Details

Arbeitsagentur Job Scraper — Salary, Contact & Details

Scrape Germany's largest job board (arbeitsagentur.de). Extracts salary amount, employer email/phone, multi-location, home-office, occupation codes and full descriptions from the v6 API. Richer data than any competitor — no proxy or login needed.

Pricing

from $1.30 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

19 hours ago

Last modified

Features

Limited permissions

Share

Arbeitsagentur Job Scraper — German Job Market, Salaries, Contacts & Vacancies 🇩🇪💼

Extract clean, structured job postings from arbeitsagentur.de — Germany's official federal employment agency (Bundesagentur für Arbeit). This Arbeitsagentur scraper turns Germany's largest official job catalogue (500,000+ to 800,000+ live vacancies) into actionable datasets with exact salary amounts (€/year, €/month, €/hour), employer direct contact details (email, phone, application URL), multi-location GPS coordinates, home-office / remote eligibility, occupation codes, and full job descriptions. No login, no browser, and no coding required.

Export to JSON, CSV, Excel, or API — or feed directly into PostgreSQL, BigQuery, Airtable, HubSpot, Google Sheets, Make, Zapier, and n8n.

Apify Actor

Built for: recruitment and executive search agencies, HR compensation analysts benchmarking German salaries, B2B sales teams prospecting growing companies via hiring signals, economic researchers studying labor market velocity, and job board aggregators.


⚡ At a glance

FeatureDetails
Data SourceBundesagentur für Arbeit (arbeitsagentur.de) — Germany's Official Job Portal
Geographic ScopeAll 16 German federal states (Bundesländer), major metro regions, and cross-border zones
Live Vacancy Volume500,000–800,000 active, verified job vacancies updated daily
Search ModesKeyword/Skill, specific Employer Name, City + Search Radius (km), or custom Start URLs
Key Output FieldsReference #, title, occupation, employer, salary amount, salary period, remote/hybrid, city, contacts, full text
Salary DataExact numerical salary amount, period (STUNDENLOHN, MONATSGEHALT, JAHRESGEHALT), and formatted string
Contact MiningDirect recruitment contact emails, phone numbers, and external ATS application URLs parsed from listings
Work ModelsFull-time (isFullTime), part-time (isPartTime), home office/remote (isHomeOffice), mini-job, shift work
Export FormatsJSON, CSV, Excel (XLSX), XML, HTML table, webhook & REST API
Max CapacityScalable from 100 sample records to 1,000+ or multi-city deep extractions (unlocked pagination)
Execution SpeedFast batch downloads; prefill test runs finish in under 30 seconds

🔎 Why scrape Arbeitsagentur job listings?

The Bundesagentur für Arbeit (BA) is the central statutory institution responsible for the labor market across Germany. Its official job portal (arbeitsagentur.de) is the single most authoritative employment directory in Europe, consolidating direct corporate job filings, public sector openings, civil service vacancies, craft apprenticeships, and staffing agency mandates.

Unlike commercial job boards with duplicate scrapings or phantom posts, the Arbeitsagentur directory offers verified regulatory accuracy:

  • B2B Sales Prospecting via Hiring Signals: Companies actively hiring are expanding budgets, adopting new tools, and investing in operational infrastructure. Identifying mid-sized German enterprises (Mittelstand) hiring specific technical profiles (e.g., Salesforce, SAP, DevOps, Logistics) provides high-conversion outbound leads.
  • Compensation & Salary Benchmarking: While European wage transparency laws evolve, Arbeitsagentur is unique among German portals in publishing explicit, structured wage metrics (salaryAmount and salaryPeriod), giving HR leaders and compensation analysts empirical salary benchmarks across industries and federal states.
  • Recruitment & Talent Headhunting: Sourcing teams can bypass intermediary gatekeepers by accessing hiring manager contact details, dedicated recruitment email addresses, and direct telephone numbers extracted from vacancy descriptions.
  • Skills Shortage (Fachkräftemangel) Analysis: Labor economists and regional development agencies can track real-time vacancy duration, occupation codes (KldB classifications), and regional talent demand across engineering, healthcare, and IT.
  • Job Board & Aggregator Feeds: Fuel localized employment engines, specialized tech portals, or industry newsletters with clean, geocoded job openings.

🗂️ Search Modes & Granular Targeting

This scraper offers flexible query pathways tailored to different operational workflows:

  1. Keyword / Job Title Search (keyword): Search for specific professions, technologies, or job titles (e.g., 'Softwareentwickler', 'Pflegefachkraft', 'Vertriebsleiter', 'Data Engineer').
  2. City & Radius Targeting (city + radius): Pick from curated presets of 40+ major German cities or enter any custom postal code/municipality, combined with a search radius from 0 to 200 kilometers.
  3. Target Employer Search (employer): Target specific corporate names (e.g., 'Siemens', 'Bosch', 'SAP', 'Deutsche Bahn', or regional Mittelstand manufacturers) to audit active hiring across branches.
  4. Direct URLs Ingestion (startUrls): Paste customized search result URLs directly from the arbeitsagentur.de web portal or supply lists of individual job reference links.
  5. Contract & Work Model Filters: Filter by full-time, part-time, mini-job, temporary contract, home office / remote eligibility, and career changer (Quereinsteiger) suitability.

✨ Key Features & Capabilities

  • ✅ Deep 1,000+ Record Pagination: Unlocked pagination engine (maxPagesPerSearch: 0 = auto/unlimited) retrieves 100 jobs per batch and scales smoothly to 1,000+ records without artificial caps.
  • ✅ Exact Salary Parsing: Extracts precise numerical salary figures (salaryAmount), wage frequency (STUNDENLOHN, MONATSGEHALT, JAHRESGEHALT), and clean formatted strings (e.g., 55.000,00 €/Jahr).
  • ✅ Contact Detail Mining: High-precision regex engines scan job descriptions to extract hiring department emails, phone numbers, and external application portal URLs.
  • ✅ Multi-Location Geocoding: Captures multiple branch locations per vacancy, returning structured arrays with city, postal code, street address, and GPS coordinates.
  • ✅ Full Description & Requirements Parsing: Captures complete vacancy texts alongside normalized educational requirements (Bachelor, Master, Ausbildung, Quereinstieg) and language proficiencies (German/English CEFR levels).
  • ✅ Automatic Deduplication: Indexes official BA reference numbers (referenceNumber) to ensure 0 duplicates across search queries and multi-page pagination.

📊 Extracted Data Fields

The scraper maps official employment portal records into a clean, normalized schema:

💼 Job Identification & Classification

FieldCoverageDescription
referenceNumber🟢 High (100%)Official BA unique job reference ID (e.g., 10000-1198765432-S)
title🟢 High (100%)Clean vacancy title (e.g., Senior DevOps Engineer (m/w/d))
occupation🟢 High (100%)Primary standardized German occupation category
allOccupations🟢 High (95%)Full array of associated occupation classifications and KldB codes
offerType🟢 High (100%)Offer classification: 1 (Arbeitsplatz), 2 (Ausbildung), 4 (Praktikum)
portalUrl🟢 High (100%)Direct link to the listing on arbeitsagentur.de
externalUrl🟡 ConditionalExternal applicant tracking system (ATS) or corporate careers page link

🏢 Employer & Contact Intelligence

FieldCoverageDescription
employer🟢 High (100%)Registered employer or hiring entity name
employerHash🟢 High (100%)Unique employer identifier for tracking multi-vacancy organizations
employerLogo🟡 ConditionalOfficial employer company logo URL when provided
isPrivateAgency🟢 High (100%)Boolean flag: indicates whether listing is from a private recruitment agency
isTempStaffing🟢 High (100%)Boolean flag: indicates whether position is temporary staffing (Zeitarbeit)
extractedEmail🟡 Conditional (35-50%)Direct contact email address parsed from the vacancy description
extractedPhone🟡 Conditional (30-45%)Direct contact telephone number parsed from the vacancy description

💶 Salary & Compensation Data

FieldCoverageDescription
salary🟡 Conditional (40-60%)Clean formatted salary string (e.g., 65.000,00 €/Jahr or 18,50 €/Stunde)
salaryAmount🟡 Conditional (40-60%)Exact numerical salary figure (integer or float)
salaryPeriod🟡 Conditional (40-60%)Period code: JAHRESGEHALT (annual), MONATSGEHALT (monthly), STUNDENLOHN (hourly)
salaryType🟡 ConditionalSpecification flag: FESTGEHALT (fixed) or VERHANDLUNGSBASIS (negotiable)

🕒 Working Models & Contract Conditions

FieldCoverageDescription
isFullTime🟢 High (100%)Boolean flag: full-time working model (Vollzeit)
isPartTime🟢 High (100%)Boolean flag: part-time working model (Teilzeit)
isHomeOffice🟢 High (100%)Boolean flag: remote work or telework eligible (Homeoffice / Mobiles Arbeiten)
isMiniJob🟢 High (100%)Boolean flag: marginal employment up to €538/month (Minijob)
isShiftWork🟢 High (100%)Boolean flag: shift work schedule (Schichtdienst)
contractDuration🟢 High (100%)Contract permanence: UNBEFRISTET (permanent) or BEFRISTET (fixed-term)
careerChangeSuitable🟢 High (100%)Boolean flag: open to career changers without formal trade certificates (Quereinsteiger)

📍 Location & Geographic Specs

FieldCoverageDescription
city🟢 High (100%)Primary job location municipality name
postalCode🟢 High (98%)German postal code (PLZ) of the work site
street🟡 ConditionalWork location street name and house number
region🟢 High (99%)Federal state name (Bundesland, e.g., Bayern, Berlin)
latitude🟢 High (95%)WGS84 GPS latitude coordinate
longitude🟢 High (95%)WGS84 GPS longitude coordinate
locations🟢 High (100%)Full array of all workplace locations for multi-site vacancies
scrapedAt🟢 High (100%)ISO 8601 UTC timestamp of record extraction

⚙️ Input Parameters

Configure your job search via the Apify Console or pass JSON parameters via API:

{
"keyword": "Softwareentwickler",
"city": "München",
"radius": 50,
"arbeitszeit": "vz",
"befristung": "1",
"includeDetails": true,
"maxPagesPerSearch": 0,
"maxItems": 500
}
ParameterTypeDefaultDescription
keywordstring"Softwareentwickler"Job title, skill, or profession to search. Leave empty for popular mixed jobs across Germany.
citystring""Quick dropdown selector for 40+ German cities. Select empty for nationwide search.
locationstring""Custom city, region, or postal code (PLZ) not listed in dropdown. Overrides City dropdown.
radiusinteger25Search radius around the chosen location in kilometers (0 to 200 km).
employerstring""Filter by specific employer or corporate organization name.
arbeitszeitstring""Working hours: "" (all), "vz" (full-time), "tz" (part-time), "sn" (mini-job), "ho" (remote).
befristungstring""Contract duration: "" (all), "1" (permanent / unbefristet), "2" (fixed-term / befristet).
includeDetailsbooleantrueFetch full vacancy descriptions, contact info, all locations, and requirements.
maxPagesPerSearchinteger0 (unlimited)Max result pages per search (100 jobs/page). Set to 0 for auto/unlimited governed by Max jobs.
maxItemsinteger100 (prefill), 0 (default)Maximum total jobs to collect. Set to 0 for unlimited extraction.
proxyConfigurationobject{"useApifyProxy": false}Optional proxy settings. Public API operates reliably without proxies.

📦 Sample Output

Every job posting is returned as structured, normalized JSON:

{
"referenceNumber": "10000-1194827163-S",
"title": "Cloud Solutions Architect - AWS / Kubernetes (m/w/d)",
"occupation": "Softwareentwickler/in",
"allOccupations": ["Softwareentwickler/in", "IT-Architekt/in", "Cloud-Ingenieur/in"],
"offerType": 1,
"employer": "Bavaria Cloud Systems GmbH",
"employerHash": "d8a7c6e5b4a3",
"employerLogo": "https://rest.arbeitsagentur.de/jobboerse/logos/bavaria-cloud.png",
"isPrivateAgency": false,
"isTempStaffing": false,
"city": "München",
"postalCode": "80335",
"street": "Arnulfstraße 24",
"region": "Bayern",
"country": "Deutschland",
"latitude": 48.1432,
"longitude": 11.5541,
"salary": "85.000,00 €/Jahr",
"salaryAmount": 85000,
"salaryPeriod": "JAHRESGEHALT",
"salaryType": "FESTGEHALT",
"isFullTime": true,
"isPartTime": false,
"isHomeOffice": true,
"isMiniJob": false,
"isShiftWork": false,
"contractDuration": "UNBEFRISTET",
"careerChangeSuitable": false,
"datePosted": "2026-11-05",
"dateModified": "2026-11-08",
"startDate": "2026-12-01",
"extractedEmail": "karriere@bavaria-cloud-systems.de",
"extractedPhone": "+49 89 12345678",
"externalUrl": "https://careers.bavaria-cloud-systems.de/jobs/98712",
"portalUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10000-1194827163-S",
"scrapedAt": "2026-11-10T12:00:00.000Z"
}

💡 Practical Recruitment & B2B Use Cases

1. High-Value B2B Lead Generation from Hiring Expansion

Track German technology, manufacturing, and healthcare companies that post 5+ concurrent job openings in engineering or sales. Filter by isPrivateAgency: false to focus exclusively on direct corporate employers. Export verified company names and recruitment contact emails to initiate high-converting B2B outreach.

2. HR Compensation & Salary Intelligence

Gather empirical market data on salary distributions for specialized roles (e.g., SAP Consultants, CNC Machinists, Registered Nurses) across federal states like Bayern versus Sachsen. Use salaryAmount and salaryPeriod to benchmark client compensation packages accurately.

3. Recruitment Agency Talent Sourcing & Client Acquisition

Headhunting firms can track corporate positions that remain unfilled for over 30 days (publishedSince). Reach out to hiring managers with qualified candidates to offer executive search services.

4. Economic Labor Market & Policy Research

Analyze real-time demand shifts across green energy trades, healthcare staffing shortages, and technical apprenticeships. Categorize shifts by federal state, contract type, and educational prerequisites.


🗺️ German Regional Job Hubs Coverage

The scraper covers employment vacancies across all major German metropolitan regions:

  • Berlin-Brandenburg: Tech startups, software engineering, federal public administration, creative agencies, and renewable energy headquarters.
  • Munich & Upper Bavaria (München, Ingolstadt, Augsburg): Automotive engineering, aerospace, enterprise software, industrial IoT, and financial services.
  • Rhine-Main Metro (Frankfurt am Main, Wiesbaden, Mainz, Darmstadt): Commercial banking, fintech, chemical pharmaceuticals, logistics, and data centers.
  • Rhine-Ruhr Belt (Köln, Düsseldorf, Essen, Dortmund, Duisburg): Heavy industry, telecommunications, corporate retail, energy utilities, and logistics hubs.
  • Stuttgart & Neckar Region: Premium automotive manufacturing, mechanical precision engineering, and industrial automation.
  • Hamburg & Northern Ports (Hamburg, Bremen, Kiel): Maritime shipping, renewable wind energy, port logistics, and e-commerce retail.

🚀 How to Run via Apify API

Integrate German job vacancy extraction directly into your automated workflows:

Node.js (Apify Client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/arbeitsagentur-scraper').call({
keyword: 'Data Engineer',
city: 'Berlin',
radius: 50,
includeDetails: true,
maxPagesPerSearch: 0,
maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} German job postings.`);

Python (Apify Client)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv('APIFY_TOKEN'))
run = client.actor('haketa/arbeitsagentur-scraper').call(run_input={
'keyword': 'Pflegefachkraft',
'city': 'Köln',
'includeDetails': True,
'maxPagesPerSearch': 0,
'maxItems': 1000,
})
dataset_items = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Retrieved {len(dataset_items)} healthcare vacancies in Cologne.')

cURL

curl -X POST "https://api.apify.com/v2/acts/haketa~arbeitsagentur-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keyword": "Softwareentwickler",
"city": "Hamburg",
"maxPagesPerSearch": 0,
"maxItems": 250
}'

❓ Frequently Asked Questions

Why does maxPagesPerSearch default to 0? Setting maxPagesPerSearch: 0 enables automatic/unlimited pagination governed exclusively by your requested maxItems. This ensures that requesting 1,000+ jobs paginates deeply across result pages (100 vacancies per page) without premature cutoffs.

How often does the Bundesagentur für Arbeit refresh listings? Vacancies on arbeitsagentur.de are updated in real time as companies publish, update, or close hiring mandates. Scraping runs query the live registry and return current vacancies.

Are direct corporate employers distinguished from temp staffing agencies? Yes. The scraper provides boolean flags isPrivateAgency and isTempStaffing (Zeitarbeit), allowing you to easily isolate direct corporate employers from third-party staffing firms.

What percentage of listings include explicit salary figures? Between 40% and 60% of postings on arbeitsagentur.de disclose explicit wage data (salaryAmount), varying significantly by trade and industry.

Can I extract vacancies across the entire country? Yes. Leave the city parameter empty (or select "Whole of Germany") to conduct a nationwide query for your keyword or employer name.


Can I filter specifically for remote and work-from-home jobs? Yes. Use the working hours setting arbeitszeit: "ho" to filter exclusively for vacancies offering home office or telework. The resulting records also contain isHomeOffice: true.

How does the scraper handle career changers (Quereinsteiger)? The scraper extracts the careerChangeSuitable boolean flag. In Germany, many technical and operational roles explicitly welcome Quereinsteiger, making this flag invaluable for adult education providers, vocational training programs, and alternative recruiting pipelines.

Can I run scheduled daily monitors for specific high-priority employers? Yes. You can schedule recurring runs targeting competitors or enterprise accounts. With publishedSince: 7, each run captures only vacancies posted within the last 7 days.

Does the scraper extract apprenticeship (Ausbildung) positions? Yes. You can select offerType: "2" to target formal vocational dual-education apprenticeships (Duale Ausbildung), widely used by educational institutions and apprentice placement portals.

Complement your European market research with these scrapers from the same publisher:


📋 Changelog

Version 1.2 (2026-11)

  • Deep 1,000+ Pagination Unlocked: Set maxPagesPerSearch default to 0 (minimum: 0), allowing multi-page runs to scale past 1,000 vacancies seamlessly.
  • Fast Prefill Optimization: Streamlined default parameters to deliver a rich 100-vacancy German sample in <25 seconds.
  • Enhanced Salary & Contact Regex: Improved email extraction and numerical wage normalization across German federal states.
  • Multi-City Query Expansion: Automatically expands queries across major German metropolitan areas when large 1K+ limits are specified.

Version 1.1 (2026-07)

  • Added structured educational requirements and language proficiency parsing.
  • Integrated isPrivateAgency and isTempStaffing flags.
  • Added multi-location geocoding support.

Version 1.0 (2026-04)

  • Initial release covering official Bundesagentur für Arbeit job listings with salary details and contact extraction.
⌂ 换网址