German job sites print a lot of structure: a gender tag in the title, a working-time label, often a salary range. The trouble starts when you combine them: each board has its own words for the same facts, its own ad id and its own way of marking an estimate, and one vacancy can run on three boards at once.
Below are five German job sites we have scraper pages for - the Jobsuche of the Bundesagentur für Arbeit, Stepstone, XING, stellenanzeigen.de and Jobware - with what each shows and adds. Around the list: the German fields that break a generic job schema, how to merge boards without counting one vacancy three times, and lessons from our projects.
Who this list of German job boards is for
It is written for buyers of job ads data in Germany: staffing agencies and recruiters sizing demand, HR software and benefits vendors looking for employers that are hiring, compensation teams, labour market analysts, training providers watching apprenticeships and AI teams that need German job text. Read each entry for the row key, the fields no other board gives and the work it suits.
What job portals in Germany share and where they differ
All five write in German, with the odd English title, and German ads quote pay in euros. Agree these fields before the first run:
- Gender tag. Titles carry a gender tag such as (m/w/d). Keep the title as written plus a cleaned one, or one role counts as several.
- Contract and working time. Vollzeit and Teilzeit appear everywhere; contract type does not - Feste Anstellung on Stepstone, Befristung on the Jobsuche, Vertragsart from Festanstellung to Minijob on stellenanzeigen.de. Map them to one column and keep the German label.
- Printed pay or an estimate. Employers print a range per year or per month, the Jobsuche can show an hourly wage, and two boards publish salary estimates of their own. An estimate goes in its own column with its label.
- Dates. Cards show relative ages such as vor 18 Stunden, which become dates on the day of the run; some boards add an end date, the Jobsuche an edit date.
- Location. One ad may name several cities in one string, a street with postcode, or only a region such as Großraum Heidelberg. Split the cities and keep the postcode where given.
- Who advertises. An employer, a temporary work firm, a private recruiter or a recruitment consultancy. A flag per row keeps agency demand apart from direct hiring.
- Contact persons. Many ads close with a recruiter's name, phone or e-mail: personal data, which we handle under GDPR and leave out by default. Candidate profiles and CVs are never delivered.
5 German job sites worth scraping, board by board
The order follows what a typical German job dataset needs first - breadth, then salary figures, then benefits and advertiser flags - and says nothing about which board serves job seekers better.
1. Bundesagentur für Arbeit Jobsuche: every kind of work, one occupation classification
The Jobsuche is the vacancy portal of Germany's federal employment agency, with two tabs, Jobs and Ausbildung. Every ad opens with the same summary box, Das Wichtigste im Überblick, and carries a Referenz-Nr. that also ends its address. What sets it apart: Berufsbezeichnung values from the agency's own occupation classification, so differently worded titles land under one occupation; Befristung with a contract length; Beginn as ab sofort or a date; and an edit date beside the publication date. Pay comes as an annual range or an hourly wage where the employer states it. The footer says whether the agency or the employer handles the vacancy, partner-board ads name their source in a Quelle line, and search switches mark temporary work and private recruiters. Best for: vacancy counts by occupation and region, fixed-term shares, and the apprenticeship market a season ahead. See our Arbeitsagentur scraper page.
2. Stepstone: salary estimates and skills for professional hiring
stepstone.de is the German board of The Stepstone Group; its home page leads with IT, engineering and HR. Rows key on the numeric id just before -inline.html in the ad address. The header is uniform: title with its (m/w/d) tag, employer and company profile, every city named, a contract type such as Feste Anstellung, Vollzeit or Teilzeit, and Homeoffice möglich. Many result cards print a salary range per year or per month labelled geschätzt für Vollzeit, an estimate for a full-time post. The structured data adds posting and expiry dates, and a search per value of the Fähigkeiten filter turns it into skills tags such as SQL or Python. The Land filter also counts ads outside Germany, so keep a country column. Best for: pay bands per city, skills demand and hiring by employer. More on our Stepstone scraper page.
3. XING: one domain for DACH, seniority levels and XING's own salary forecast
XING is a professional network for Germany, Austria and Switzerland. Its job market runs on one domain, xing.com, with no regional subdomains, so one crawl covers three countries and needs a country column. Each ad address ends in a numeric id. Result cards show title, employer, city, the Beschäftigungsart, from Vollzeit and Teilzeit to Saisonarbeit and Ehrenamt, and a salary range; the ad page marks that range von XING geschätzt when it is XING's own forecast and adds a Gehalts-Prognose for comparable positions. Two filters add dimensions: Arbeitsplatz (Vor Ort, Home-Office z. T. möglich, Im Home-Office) and Karriere-Stufe, six levels from students to managing directors. A company block on the ad adds industry, an employee size band and a link to all of the employer's open jobs. We collect job ads and company pages only; member profiles are never part of a delivery. Best for: salary views by seniority across DACH. See our XING scraper page.
4. stellenanzeigen.de: benefit tags and a contract type for every case
stellenanzeigen.de is a Munich board that calls itself a generalist board for skilled staff and managers; its fact page lists media partnerships, Süddeutsche Zeitung among them, and specialist portals its ads are distributed to, so one ad can surface elsewhere. Rows key on a job id with a source prefix - SDE-, JIM-, YF-, REG-. Its own layer is what employers offer: many cards list benefit tags such as Jobrad, Jobticket, Urlaubsgeld or Tarifvergütung, one value per tag. Printed pay splits into minimum, maximum, currency and period. Vertragsart reaches past employment to Freiberufler, Werkstudent, Praktikum, Abschlussarbeit and Doktorand, and the structured data gives a posting date and a scheduled end date. Gehaltsvergleich pages add a minimum, average and maximum salary per occupation for Germany, then a table by city. One trap: when exact matches run out, a result list continues with similar jobs, which a crawl must cut off. Best for: benefits benchmarking, student and graduate hiring, and printed pay against the board's own figures. See our stellenanzeigen.de scraper page.
5. Jobware: verified bookings and consultancy searches
Jobware, founded in Paderborn and part of Medien Union, calls itself the first German online job market; one IT category page lists a federal police agency, a municipality and private IT service firms side by side. Each ad address ends in a nine-digit job id. Two flags make it worth adding. A verified tick beside the employer marks ads booked on Jobware itself; the rest come in from other sources and are the first candidates for duplicates in a merged file. And when a recruitment consultancy advertises, the employer name reads über plus the consultancy, so consultancy searches can be split out. Labels give Vollzeit, Teilzeit, Home-Office and the ad type, and search narrows by four experience bands: Einsteiger, Professional, Senior and Lead. The Inserentenverzeichnis lists every advertiser with live ads. Best for: tracking which consultancies run which searches, employer activity and hiring demand by field and city. See our Jobware scraper page.
Get Data for your Business
We extract the data you need from any website to satisfy all your business requirements with 100% accuracy.
- Free Sample Data Sets
- Regular Data Delivery
- Legal and GDPR compliance
Get a Quote
Merging German job ads data from several boards
One vacancy can sit on Stepstone, XING and the Jobsuche at once - some XING ads are marked as provided with the Bundesagentur für Arbeit - and partner ads on the Jobsuche and Jobware come from other sources. A merged German file follows three rules:
- One schema, every source named. Each row carries the board and its own job id, the title as written, employer, cities and postcode, contract and working time with the German label kept, salary minimum, maximum and period, a salary source (employer, Stepstone estimate, XING forecast), the advertiser type, the posting date and first and last seen.
- Link duplicates, delete none. To deduplicate job ads across boards, rows are matched on employer, cleaned title, city and a posting window, and matched rows share one vacancy key. Each keeps what its board adds: Berufsbezeichnung from the Jobsuche, benefit tags from stellenanzeigen.de, an experience band from Jobware.
- Keep grains apart. Ausbildung places, Werkstudent and internship ads, and ads placed by temporary work firms or recruiters stay separable, so they do not inflate a count of direct hiring.
Repeat runs keyed on each board's id add the history: when an ad appeared, how long it stayed and whether its salary moved.
What our projects taught us that applies to German job ads
None of these projects ran on a job board; each solved a problem German job data shares.
Result limits and German labels
For an automotive data company we deliver a monthly snapshot of mobile.de, about one million vehicles per run. The site shows no more than 2,000 results per search, so the crawler splits the market into filter combinations narrow enough to stay under that limit. Values arrive in German, and equipment is mapped to the client's codes at packaging, with raw values stored, so a better dictionary reaches the next file without collecting again. Jobware's paging calls for the same slicing, and Befristung or Vertragsart labels for the same mapping. Case: mobile.de data for residual value models.
Overlapping searches, one record each
For a US property-technology startup we copied a public employer directory through 17,576 three-letter searches. One employer turned up under many queries: 1,376,889 rows came down to 988,996 unique employers after 387,893 duplicates were removed. Slicing a job board by field, city and band produces the same repeats. Case: employer records from a captcha-gated search.
Uniqueness as a check
A price-comparison startup received the full catalogue of Gigantti in Finland every day. When Gigantti changed its product page addresses, the daily file kept its size but filled with repeats - about 3,050 unique items where there should have been around 60,000 - until every record was tested against a composite key. A board that changes its ad addresses does the same to a file keyed on the URL, which is why we key on the board's own id. Case: Gigantti full catalog daily into S3.
How ScrapeIt collects German job market data
ScrapeIt is a managed service: we build, run and repair the crawlers. A German brief names the boards, the job titles, occupations or employers, the cities or Bundesländer and the fields; anti-bot handling (pacing, proxy rotation, CAPTCHA handling, rendering) is part of the service. A free project assessment comes first, a sample can be ordered, and field documentation comes with the dataset. Runs are one-off or follow the schedule you set. Plans start from EUR 169 a month, or EUR 199 for a one-time extract.
Delivery comes as CSV, Excel (XLSX), JSON, JSONLines or XML, through our API (an endpoint we host), a JSON feed, FTP, SFTP, Amazon S3, Google Cloud Storage, Dropbox, Google Drive, e-mail or a load into your database; an MCP server is available on request.
The German versions of Indeed and Glassdoor are covered on our global Indeed scraper and Glassdoor scraper pages. See our job data scraping service, the job boards we scrape and all German sites we scrape; for retailers, see our German e-commerce list.
FAQ
What are the best job sites in Germany to scrape?
The Jobsuche of the Bundesagentur für Arbeit for breadth and its occupation names, and Stepstone for professional roles with salary estimates. XING adds DACH coverage and seniority levels, stellenanzeigen.de benefit tags, and Jobware booking and consultancy flags.
Is it legal to scrape German job sites?
We collect only publicly available data - everything a visitor can see on the site - and we collect it legally. Recruiters' names, phone numbers and e-mail addresses printed in ads are personal data: we handle them under GDPR and leave them out by default.
Which German job boards show salaries?
Stepstone prints an estimated range on many cards, labelled geschätzt für Vollzeit, and XING shows a range it marks as its own forecast. The Jobsuche, stellenanzeigen.de and Jobware carry pay where the employer prints it.
What does m/w/d mean in German job ads?
It stands for männlich, weiblich, divers - male, female, diverse - and marks an ad as open to all genders. We keep the title as written and add a cleaned one for counting.
How often should German job ads be refreshed?
Daily for demand tracking: new ads are dated in hours, and an ad that opens and closes between two weekly runs is missed. A weekly full pass records which ads went offline.