
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape job offers from the Bundesagentur für Arbeit job search (arbeitsagentur.de): title, employer, full description, location with coordinates, contract, working time, salary, dates, external application links, contact emails and phones, and employer profiles.
Export job offers from the Bundesagentur für Arbeit job search (arbeitsagentur.de/jobsuche), Germany's largest job board with close to a million live offers. Search by keyword, location and filters, or paste search and job links. Every row comes with the full description, employer, exact location, contract and working time, salary, dates, application links, contact emails and phones, and the employer's public profile. No login, no browser, a few seconds per hundred jobs.
Pflegefachkraft) and a Location (for example Hamburg), or paste search links from arbeitsagentur.de/jobsuche into Start URLs.| Field | What it does |
|---|---|
keyword | Job title, skill or occupation (was on the site) |
location | City, postal code or region (wo on the site) |
startUrls | Search links (/jobsuche/suche?...) or job links (/jobsuche/jobdetail/...) |
maxItems | Maximum jobs to save in the run (default 20) |
radiusKm | Radius around the location, 0 to 200 km |
offerType | job, apprenticeship, internship, self-employment or all |
publishedWithinDays | Only offers from the last N days (0 = today) |
workingTime | full-time, part-time, shift-night-weekend, mini-job |
contractType | permanent, fixed-term |
employer | Only offers from one employer |
remoteOnly, excludeTemporaryAgencies, excludePrivateAgencies, careerChangersOnly, disabilityFriendlyOnly | Extra filters |
includeDetails | Full description and flags (default on) |
includeEmployerProfile | Employer profile fields (default on) |
{
"keyword": "Softwareentwickler",
"location": "Berlin",
"radiusKm": 25,
"publishedWithinDays": 7,
"workingTime": ["full-time"],
"maxItems": 100
}
| Field | Description |
|---|---|
id, referenceNumber, url | Reference number and job page |
title, company, offerType, mainOccupation, occupations | What the offer is and who posts it |
description | Full job description text |
location, street, postalCode, city, region, country, latitude, longitude, locations | Main and all job locations |
contractType, fixedTermMonths, workingTime, fullTime, partTime*, shiftNightWeekend, miniJob | Contract and working time |
homeOfficePossible, homeOfficeType, homeOfficePercent | Home office |
salaryType, salaryKind, salaryFrom, salaryTo, salaryFixed, traineePayPerYear | Pay, when the employer states it |
startDate, publishedDate, firstPublishedDate, modifiedAt | Dates |
isExternal, externalUrl, postingPartnerName, postingPartnerUrl | Application link on the partner job board |
applicationEmail, contactEmails, contactPhones, descriptionUrls | Contacts found in the offer text and employer profile |
temporaryAgency, privateAgency, careerChangeSuitable, disabilityRequired, managedByAgency | Flags |
employerWebsite, employerDescription, employerHeadquarters, employerSize, employerFoundedYear, employerBenefits, employerLinks, employerSocialLinks, employerContactInfo, employerLogoUrl | Employer profile |
Example (shortened, contact details are fictional):
{
"id": "10001-1003703445-S",
"url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1003703445-S",
"title": "Backend Softwareentwickler (m/w/d)",
"company": "Beispiel Software GmbH",
"offerType": "ARBEIT",
"mainOccupation": "Backend-Entwickler/in",
"description": "## Über uns\n\nWir entwickeln Software für den Mittelstand ...",
"location": "Musterstraße 15, 10315 Berlin",
"postalCode": "10315",
"city": "Berlin",
"region": "BERLIN",
"latitude": 52.510041,
"longitude": 13.5042975,
"distanceKm": 5,
"contractType": "UNBEFRISTET",
"workingTime": ["FULL_TIME"],
"salaryType": "KEINE_ANGABEN",
"startDate": "2026-10-14",
"publishedDate": "2026-09-14",
"isExternal": false,
"postingPartnerName": "arbeitsagentur.de",
"applicationEmail": "jobs@example.com",
"contactPhones": ["+49 30 1234567"],
"employerWebsite": "https://www.example.com",
"employerHeadquarters": "Berlin",
"employerSize": "11-50",
"employerFoundedYear": 2003,
"employerBenefits": ["Flexible Arbeitszeiten", "Weiterbildungen"],
"employerContactInfo": "Erika Mustermann, Talent Acquisition, Telefon: +49 30 1234567",
"searchUrl": "https://www.arbeitsagentur.de/jobsuche/suche?was=Softwareentwickler&wo=Berlin&angebotsart=1",
"scrapedAt": "2026-10-15T20:50:48Z"
}
You pay $1.50 per 1,000 jobs saved ($0.0015 per job), plus a small amount of platform usage (compute and datacenter proxy traffic, typically well under one cent per hundred jobs). For example, 1,000 jobs with full details and employer profiles cost about $1.50 to $1.55 in total. Failed or empty searches are not charged.
Is it legal? The scraper reads only public job offers that anyone can open on arbeitsagentur.de without an account. Contact details are those the employer published in the offer. Make sure your use of personal data follows the GDPR.
Do I need a login or my own proxy? No. No account is used, and the default datacenter proxy works.
How many jobs can I get? Up to 100,000 per run. The site itself lists at most 10,000 jobs per search, so split very large searches by location, offer type or date.
Why is a field empty? Many fields are optional for employers: salary, home office, street address and employer profiles are filled only when the employer provides them. Contact emails and phones come from the offer text, so they are missing when the offer only links to an external application page.
Can I run it on a schedule or through the API? Yes. Schedule it daily with publishedWithinDays: 1 to get only new offers, and read the results through the API or integrations.
Is there a migration path from other Arbeitsagentur scrapers? Paste the same arbeitsagentur.de search links into Start URLs; filters in the link are kept.
contractType, region and salaryType are kept as the site's German codes (for example UNBEFRISTET, NORDRHEIN_WESTFALEN).Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
keywordstringOptionalKeyword
Job title, skill or occupation to search for, for example `Pflegefachkraft`, `Python` or `Elektriker`. Leave empty to list every job that matches the other filters.
locationstringOptionalLocation
City, postal code or region, for example `Berlin`, `80331` or `Bayern`. Leave empty to search all of Germany.
startUrlsarrayOptionalStart URLs
Search result links from arbeitsagentur.de/jobsuche/suche (with any filters you set on the site) or single job links (arbeitsagentur.de/jobsuche/jobdetail/...). When Keyword, Location or Employer are also set, that search runs too.
maxItemsintegerOptionaldefault 20Maximum jobs
Maximum number of jobs to save across all searches and links in this run. The site lists at most 10,000 jobs per search.
radiusKmintegerOptionalRadius (km)
Search radius around the location in kilometres (0 to 200). Leave empty for the site's default of 25 km.
offerTypeenumOptionaldefault "job"Offer type
Kind of offer to search for.
publishedWithinDaysintegerOptionalPublished within (days)
Only offers published in the last N days (0 = today, up to 100). Leave empty for any date.
workingTimearrayOptionalWorking time
Only offers with one of these working time models.
contractTypearrayOptionalContract
Only fixed-term or only permanent offers.
employerstringOptionalEmployer
Only offers from this employer, for example `Deutsche Bahn AG`.
remoteOnlybooleanOptionaldefault falseHome office possible only
Keep only offers that say home office is possible.
excludeTemporaryAgenciesbooleanOptionaldefault falseExclude temporary agency work
Skip offers from temporary staffing agencies (Zeitarbeit / Arbeitnehmerüberlassung).
excludePrivateAgenciesbooleanOptionaldefault falseExclude private recruiters
Skip offers posted by private recruitment agencies (private Arbeitsvermittlung).
careerChangersOnlybooleanOptionaldefault falseSuitable for career changers only
Keep only offers marked as suitable for career changers (Quereinstieg).
disabilityFriendlyOnlybooleanOptionaldefault falseFor people with disabilities only
Keep only offers aimed at people with a severe disability.
includeDetailsbooleanOptionaldefault trueFull job details
Load each job's full description, posting partner, agency flags and contact emails and phones found in the text. Turn off for faster, listing-only rows.
includeEmployerProfilebooleanOptionaldefault trueEmployer profile
Add the employer's public profile when it has one: website, description, headquarters, size, founding year, benefits, social links, contact info and logo. Loaded once per employer.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for arbeitsagentur.de and are the default.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | Reference number (Referenznummer) |
| title | string | null | Job title |
| company | string | null | Employer |
| url | string | Job page on arbeitsagentur.de |
| location | string | null | Main job location |
| description | string | null | Full job description |
| publishedDate | string | null | Publication date |
| salaryFrom | number | null | |
| salaryTo | number | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job | One saved arbeitsagentur.de job offer. | $0.0015 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/arbeitsagentur-scraper').call({
"keyword": "Softwareentwickler",
"location": "Berlin",
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/arbeitsagentur-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/arbeitsagentur-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Job ads with details and employer profiles.
Jobs from a pasted Arbeitsagentur search.
Apprenticeship offers with details.
Recent jobs within 25 km, without temp agencies.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.