Jobware.de Scraper - German Professional Jobs avatar

Jobware.de Scraper - German Professional Jobs

Pricing

from $3.75 / 1,000 job search results

Go to Apify Store
Jobware.de Scraper - German Professional Jobs

Jobware.de Scraper - German Professional Jobs

Find German job listings from Jobware.de for recruiting, sales leads and labour market research: scrape jobs with salary, contact person and apply email. No login needed, pay per result.

Pricing

from $3.75 / 1,000 job search results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

1

Bookmarked

87

Total users

28

Monthly active users

5 hours ago

Last modified

Features

Limited permissions

Share

Jobware.de Job Scraper - German Professional Jobs

Integration stopped on Nov 11? After a security incident, Apify rotated the API tokens of affected accounts. If yours was rotated and you call this Actor from n8n, Make, Zapier or your own code, paste your new token (Console → Settings → API & Integrations). Schedules inside Apify were not affected.

What you get

  • German job listings from Jobware.de, one row per job, as a dataset you can export to JSON, CSV or Excel.
  • Job title, company, city, German state, employment type, category and posting date.
  • Salary when the advert states one (amount range, currency and period).
  • Contact person and contact email, plus the direct apply email and apply link.
  • Full job description, requirements, benefits and company website. Search by keyword and city, or pass job page links.

Input example

{
"searchQueries": ["Softwareentwickler"],
"city": "München",
"radius": 25,
"maxResultsPerQuery": 100
}

Output example

{
"id": "jw-2078896765",
"title": "Software Engineer (m/w/d)",
"company": "Hays Professional Solutions GmbH",
"location": "Wedel",
"employment_type": "full-time",
"salary_text": null,
"posted_at": "2026-11-07T06:30:59.000Z",
"category": "Technische Berufe, Ingenieurwesen, Informationstechnologie, TK, IT/TK Softwareentwicklung, Techn. Entwicklung, Konstruktion, Softwareentwicklung, Entwicklung - Elektrotechnik, IT/TK Hardwareentw., embed. Syst., Hardwaren. Prog., embed. Syst.",
"contact_salutation": "Frau",
"contact_firstname": "Jane",
"contact_lastname": "Doe",
"contact_email": "jane.doe@example.com",
"apply_email": "jobs@example.com",
"apply_url": "https://www.jobware.de/apply/EXAMPLE",
"source_url": "https://www.jobware.de/job/software-engineer-m-w-d-065001973"
}

(Contact and apply values above are placeholders. Real rows carry the details from the advert, or null when it has none.)

English | Deutsch


English

Jobware.de is a job portal for professionals, with listings across IT, Engineering, Healthcare, Finance, and Management.

Fast HTTP-only scraper -- no Chrome needed. Reads Jobware's internal API.

Features

  • Multi-query support -- run multiple search keywords in a single run, deduplicated
  • Search by keywords, city, and radius
  • Filter by employment type (Vollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung)
  • Sort by date or relevance
  • Full job details: description, apply email, contact person, company info
  • Requirements extracted from the advert's profile section, plus experience level, category and position level from Jobware's categories
  • Remote/Hybrid detection from job metadata
  • Salary extraction from job descriptions
  • Direct URL mode for monitoring specific listings
  • Deduplication by job ID across all queries
  • Per-query and total result limits
  • maxAgeHours cutoff -- stop after jobs older than N hours (ideal for cron schedules)
  • Pay-per-result pricing -- only pay for what you scrape
  • Low memory footprint: 128-512 MB

Input Parameters

ParameterTypeRequiredDefaultDescription
searchQueriesstring[]No--Multiple search keywords. Each runs as a separate search, results deduplicated
searchQuerystringNo--Single search keyword (backward compatible). Use searchQueries for multiple
citystringNo--City to search in (e.g., "Berlin", "Munchen"). Leave empty for all of Germany
radiusintegerNo25Search radius in km around the city (0-200)
employmentTypeselectNoAllFilter: Vollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung
sortByselectNoDefaultSort order: date (newest first), relevance. Jobware's search API has no working date-sort parameter, so date sorts the collected results of each keyword newest-first inside the actor (with a keyword the API returns relevance order, so the window is the top maxResultsPerQuery hits)
maxResultsPerQueryintegerNo100Maximum results per search keyword
maxResultsintegerNo0Total cap across all queries. 0 = unlimited
maxAgeHoursintegerNo--Only keep jobs posted within the last N hours. Older jobs (and jobs without a posting date) are dropped before saving and billing; works with any sortBy. Leave empty to disable
postedWithinDaysintegerNo--Same as maxAgeHours, counted in days (days x 24 hours). If both are set the shorter window applies. Leave empty to disable
includeDetailsbooleanNotrueFetch full descriptions and contact info (slower but more data)
directUrlsstring[]No--Direct job URLs to scrape (bypasses search)

Each row carries detail_status: ok when the detail page was read, failed when details were requested but the page failed or was empty, null when details were not requested. Jobs whose detail page could not be loaded are billed as search results.

maxAgeHours -- Date-Based Cutoff for Cron Schedules

When running Jobware.de on a cron schedule, you want to collect only new jobs posted since your last run -- not re-scrape the entire backlog. maxAgeHours does exactly this.

How it works: Every job is checked against its posting date. Jobs older than the window, and jobs without a posting date, are dropped before they are saved and billed. Paging of a keyword stops when a whole page has no job inside the window. postedWithinDays is the same filter counted in days (postedWithinDays: 7 = 168 hours); if both are set the shorter window applies. The site has no date filter of its own, so the filter runs inside the actor.

Daily cron (every 26 hours for overlap safety):

{
"searchQueries": ["Softwareentwickler", "Data Engineer", "DevOps"],
"sortBy": "date",
"maxAgeHours": 26,
"maxResults": 0,
"includeDetails": false
}

Weekly cron (every 192 hours = 8 days for overlap safety):

{
"searchQueries": ["Softwareentwickler", "Data Engineer"],
"sortBy": "date",
"maxAgeHours": 192,
"maxResults": 0,
"includeDetails": false
}

Note: the filter works with any sortBy. If left empty, the scraper collects up to maxResults.

Output Schema

Each job listing includes:

Core Fields:

  • id -- Unique job identifier (e.g., "jw-1943234145")
  • title -- Job title
  • company -- Company name
  • location -- Job location (city)
  • canton -- German state code (BW, BY, BE, etc.), derived from the location or, if that is not enough, from the postal code
  • search_query -- Which search keyword found this job

Job Details:

  • employment_type -- full-time, part-time, contract, internship, apprenticeship
  • workload_min / workload_max -- Work percentage (0-100%)
  • remote_option -- remote, hybrid, or onsite (from Jobware's metadata, with a text fallback for Home-Office / Remote / mobiles Arbeiten in the description)
  • salary_text -- Salary when mentioned in description
  • description_snippet -- Short description (500 chars)
  • description_full -- Complete job description with structured header
  • requirements -- Requirements from the advert's profile section ("Ihr Profil", "Anforderungen", "Requirements", ...) (array)
  • experience_level -- Required experience, e.g. "Mehrjährige (3-7 J.)" (string or null; multiple values joined with ", ")
  • position_level -- Hierarchy level, e.g. "Angestellter o. Leitungsfunktion" (string or null; multiple values joined with ", ")
  • category -- Jobware occupational fields, e.g. "Softwareentwicklung" (string or null; multiple values joined with ", ")
  • study_field -- Required field of study (string or null; multiple values joined with ", ")

Application:

  • apply_url -- Application URL (Jobware tracked link)
  • apply_email -- Direct application email address
  • contact_salutation -- Herr/Frau
  • contact_firstname / contact_lastname -- Contact person name
  • contact_email / contact_phone -- Contact details (the email is filled whenever the advert text contains one, also when it equals apply_email)

Company:

  • company_url -- Company website
  • company_logo_url -- Company logo (when available)
  • company_benefits -- Benefits from the advert's benefit block or, if there is none, from its "Wir bieten" / "Benefits" section (array)

Metadata:

  • posted_at -- Publication date (ISO 8601)
  • expires_at -- Expiration date (ISO 8601)
  • source_url -- Original job posting URL
  • source_platform -- "jobware.de"
  • country -- "DE"
  • scraped_at -- Scraping timestamp

Usage Examples

Multiple Search Keywords
{
"searchQueries": ["Softwareentwickler", "Data Engineer", "DevOps"],
"city": "Berlin",
"radius": 50,
"maxResultsPerQuery": 50
}
Search for IT Jobs in Munich
{
"searchQueries": ["Softwareentwickler"],
"city": "Munchen",
"radius": 25,
"maxResultsPerQuery": 100
}
Healthcare Jobs in Berlin (Full-time only)
{
"searchQueries": ["Pflegefachkraft"],
"city": "Berlin",
"employmentType": "vollzeit",
"sortBy": "date",
"maxResultsPerQuery": 50
}
Fast SERP-Only (No Details)
{
"searchQueries": ["Marketing Manager"],
"city": "Hamburg",
"radius": 50,
"maxResultsPerQuery": 200,
"includeDetails": false
}
Monitor Specific Job Listings
{
"directUrls": [
"https://www.jobware.de/job/pflegefachkraft-m-w-d.1943234145.html",
"https://www.jobware.de/job/softwareentwickler-m-w-d.1945483745.html"
]
}

API Integration

curl -X POST https://api.apify.com/v2/acts/santamaria~jobware-de-scraper/runs \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"searchQueries": ["Softwareentwickler", "Data Engineer"],
"city": "Munchen",
"radius": 25,
"maxResultsPerQuery": 100,
"maxResults": 0
}'

Performance

MetricValue
Speed~10 jobs/min with details
Memory128-512 MB (no browser needed)
Cost~0.01 CU per 20 jobs with details
ProxyBuilt-in, nothing to configure

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/jobware-de-scraper

Example prompt once connected:

"Use jobware-de-scraper to scrape job listings from jobware 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.

Deutsch

Scraper fur Stellenanzeigen von Jobware.de, Deutschlands Premium-Jobportal fur Fach- und Fuhrungskrafte. Uber 100.000 aktive Stellenanzeigen in IT, Ingenieurwesen, Gesundheit, Finanzen und Management.

Schneller HTTP-only Scraper -- kein Chrome notig. Extrahiert vollstandige Beschreibungen, Bewerbungs-E-Mails, Ansprechpartner und Firmeninfos uber Jobwares interne API.

Funktionen

  • Multi-Query Unterstutzung -- mehrere Suchbegriffe in einem Lauf, dedupliziert
  • Suche nach Stichworten, Stadt und Radius
  • Filter nach Beschaftigungsart (Vollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung)
  • Sortierung nach Datum oder Relevanz
  • Vollstandige Details: Beschreibung, Bewerbungs-E-Mail, Ansprechpartner
  • Anforderungen (Berufserfahrung, Berufsfeld, Hierarchie)
  • Remote-/Hybrid-Erkennung aus Stellendaten
  • Gehaltsextraktion aus Stellenbeschreibungen
  • Direkter URL-Modus zur Uberwachung einzelner Anzeigen
  • Deduplizierung nach Job-ID uber alle Suchanfragen
  • Pro-Anfrage und Gesamt-Limits
  • maxAgeHours Abschneide-Grenze -- Stopp nach Jobs alter als N Stunden (ideal fur Cron-Zeitplane)
  • Pay-per-Result Preisgestaltung
  • Geringer Speicherbedarf: 128-512 MB

Eingabeparameter

ParameterTypErforderlichStandardBeschreibung
searchQueriesstring[]Nein--Mehrere Suchbegriffe, dedupliziert
searchQuerystringNein--Einzelner Suchbegriff (abwartskompatibel)
citystringNein--Stadt (z.B. "Berlin", "Munchen"). Leer = ganz Deutschland
radiusintegerNein25Suchradius in km (0-200)
employmentTypeselectNeinAlleVollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung
sortByselectNeinStandardSortierung: Datum, Relevanz. Die Jobware-API hat keinen funktionierenden Datums-Sortierparameter; date sortiert die gesammelten Treffer je Suchbegriff im Actor (neueste zuerst)
maxResultsPerQueryintegerNein100Max. Ergebnisse pro Suchbegriff
maxResultsintegerNein0Gesamtlimit. 0 = unbegrenzt
maxAgeHoursintegerNein--Nur Jobs der letzten N Stunden. Altere Jobs (und Jobs ohne Datum) werden vor Speichern und Abrechnung verworfen; funktioniert mit jeder sortBy. Leer = deaktiviert
postedWithinDaysintegerNein--Wie maxAgeHours, in Tagen (Tage x 24 Stunden). Sind beide gesetzt, gilt das kurzere Fenster. Leer = deaktiviert
includeDetailsbooleanNeintrueVollstandige Beschreibungen und Kontaktinfos laden
directUrlsstring[]Nein--Direkte Job-URLs (uberspringt Suche)

maxAgeHours -- Datumsbasierter Abbruch fur Cron-Zeitplane

Taglicher Cron (alle 26 Stunden, mit Uberlappungssicherheit):

{
"searchQueries": ["Softwareentwickler", "Data Engineer"],
"sortBy": "date",
"maxAgeHours": 26,
"maxResults": 0,
"includeDetails": false
}

Wochentlicher Cron (192 Stunden = 8 Tage, mit Uberlappungssicherheit):

{
"searchQueries": ["Softwareentwickler"],
"sortBy": "date",
"maxAgeHours": 192,
"maxResults": 0,
"includeDetails": false
}

Ausgabeschema

Jede Stellenanzeige enthalt:

Kernfelder:

  • id -- Eindeutige Stellen-ID (z.B. "jw-1943234145")
  • title -- Stellenbezeichnung
  • company -- Firmenname
  • location -- Arbeitsort (Stadt)
  • canton -- Bundesland-Kurzel (BW, BY, BE, etc.)
  • search_query -- Welcher Suchbegriff diese Stelle gefunden hat

Stellendetails:

  • employment_type -- Vollzeit, Teilzeit, Befristet, Praktikum, Ausbildung
  • salary_text -- Gehaltsangabe aus der Beschreibung
  • description_full -- Vollstandige Stellenbeschreibung
  • requirements -- Anforderungen aus dem Profil-Abschnitt der Anzeige (Array)
  • experience_level -- Geforderte Berufserfahrung (Text oder null; mehrere Werte mit ", " verbunden)
  • position_level -- Hierarchieebene (Text oder null; mehrere Werte mit ", " verbunden)
  • category -- Jobware-Berufsfelder (Text oder null; mehrere Werte mit ", " verbunden)
  • study_field -- Studienrichtung (Text oder null; mehrere Werte mit ", " verbunden)

Bewerbung:

  • apply_url -- Bewerbungs-URL
  • apply_email -- Direkte Bewerbungs-E-Mail
  • contact_salutation -- Herr/Frau
  • contact_firstname / contact_lastname -- Ansprechpartner

Metadaten:

  • posted_at -- Veroffentlichungsdatum (ISO 8601)
  • expires_at -- Ablaufdatum (ISO 8601)
  • source_url -- Original-Stellenanzeigen-URL
  • source_platform -- "jobware.de"
  • country -- "DE"

Verwendungsbeispiele

Mehrere Suchbegriffe
{
"searchQueries": ["Softwareentwickler", "Data Engineer", "DevOps"],
"city": "Berlin",
"radius": 50,
"maxResultsPerQuery": 50
}
IT-Stellen in Munchen
{
"searchQueries": ["Softwareentwickler"],
"city": "Munchen",
"radius": 25,
"maxResultsPerQuery": 100
}
Pflegekrafte in Berlin (nur Vollzeit)
{
"searchQueries": ["Pflegefachkraft"],
"city": "Berlin",
"employmentType": "vollzeit",
"sortBy": "date",
"maxResultsPerQuery": 50
}

Leistung

MetrikWert
Geschwindigkeit~10 Stellen/Min mit Details
Speicher128-512 MB (kein Browser notig)
Kosten~0,01 CU pro 20 Stellen mit Details
ProxyIntegriert, keine Konfiguration noetig

FAQ and changelog

What happens if the website blocks the run? The actor tries several kinds of connection, from the cheapest to the strongest, with a time limit on each. If the website still refuses every one of them and nothing was found, the run ends cleanly with a short message and you are not charged.

Changelog

  • 1.0.46: respects the run timeout you set: shortly before it ends the actor stops starting new pages, delivers and charges every job already scraped, and finishes with exit code 0 and a status message instead of being killed (TIMED-OUT).
  • 1.0.43: new input postedWithinDays (days, same filter as maxAgeHours, shorter window wins); the age filter now works with any sort order; proxy ladder v2.4 with exact data-volume counting.
  • 1.0.42: the 24 h filter no longer drops new jobs from later searches, location works as city, clearer status message.
  • 1.0.40: proxy ladder (datacenter, residential, unblocker) with bounded timeouts; exits cleanly without charge when the site blocks every tier.

If this actor works well for you, a rating on Apify helps other users find it.

Working across the German job market? These complement Jobware.de:

Germany

Switzerland

Austria

Global

Enrich your job data


Part of the Santamaria Job Scrapers Suite -- Professional-grade job data for the DACH region and beyond.