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

Scrape job listings from Jobware.de, Germany's premium job portal for professionals. Extract full descriptions, apply emails, contact persons, salary, and requirements. HTTP-only, 128MB, fast and affordable.

Pricing

from $3.75 / 1,000 job search results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

1

Bookmarked

72

Total users

20

Monthly active users

18 hours ago

Last modified

Share

Jobware.de Job Scraper - German Professional Jobs

English | Deutsch


English

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

Fast HTTP-only scraper -- no Chrome needed. Extracts full descriptions, apply emails, contact persons, and company info via 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--Stop after 3 consecutive jobs older than N hours. Requires sortBy=date. 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: With sortBy=date (newest first), the scraper tracks the age of each job. Once 3 consecutive jobs older than N hours are seen, it stops and discards no items already collected. The 3-job buffer tolerates promoted/re-posted listings that occasionally appear out of strict chronological order.

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: maxAgeHours is ignored when sortBy is not date. 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--Stopp nach 3 aufeinanderfolgenden Jobs alter als N Stunden. Erfordert sortBy=date. 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

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.