Jobware.de Scraper - German Professional Jobs
Pricing
from $3.75 / 1,000 job search results
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
Maintained by CommunityActor stats
1
Bookmarked
72
Total users
20
Monthly active users
18 hours ago
Last modified
Categories
Share
Jobware.de Job Scraper - German Professional Jobs
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | No | -- | Multiple search keywords. Each runs as a separate search, results deduplicated |
searchQuery | string | No | -- | Single search keyword (backward compatible). Use searchQueries for multiple |
city | string | No | -- | City to search in (e.g., "Berlin", "Munchen"). Leave empty for all of Germany |
radius | integer | No | 25 | Search radius in km around the city (0-200) |
employmentType | select | No | All | Filter: Vollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung |
sortBy | select | No | Default | Sort 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) |
maxResultsPerQuery | integer | No | 100 | Maximum results per search keyword |
maxResults | integer | No | 0 | Total cap across all queries. 0 = unlimited |
maxAgeHours | integer | No | -- | Stop after 3 consecutive jobs older than N hours. Requires sortBy=date. Leave empty to disable |
includeDetails | boolean | No | true | Fetch full descriptions and contact info (slower but more data) |
directUrls | string[] | 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 titlecompany-- Company namelocation-- Job location (city)canton-- German state code (BW, BY, BE, etc.), derived from the location or, if that is not enough, from the postal codesearch_query-- Which search keyword found this job
Job Details:
employment_type-- full-time, part-time, contract, internship, apprenticeshipworkload_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 descriptiondescription_snippet-- Short description (500 chars)description_full-- Complete job description with structured headerrequirements-- 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 addresscontact_salutation-- Herr/Fraucontact_firstname/contact_lastname-- Contact person namecontact_email/contact_phone-- Contact details (the email is filled whenever the advert text contains one, also when it equalsapply_email)
Company:
company_url-- Company websitecompany_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 URLsource_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
| Metric | Value |
|---|---|
| Speed | ~10 jobs/min with details |
| Memory | 128-512 MB (no browser needed) |
| Cost | ~0.01 CU per 20 jobs with details |
| Proxy | Built-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-scraperto 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
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
searchQueries | string[] | Nein | -- | Mehrere Suchbegriffe, dedupliziert |
searchQuery | string | Nein | -- | Einzelner Suchbegriff (abwartskompatibel) |
city | string | Nein | -- | Stadt (z.B. "Berlin", "Munchen"). Leer = ganz Deutschland |
radius | integer | Nein | 25 | Suchradius in km (0-200) |
employmentType | select | Nein | Alle | Vollzeit, Teilzeit, Werkstudent, Praktikum, Ausbildung |
sortBy | select | Nein | Standard | Sortierung: Datum, Relevanz. Die Jobware-API hat keinen funktionierenden Datums-Sortierparameter; date sortiert die gesammelten Treffer je Suchbegriff im Actor (neueste zuerst) |
maxResultsPerQuery | integer | Nein | 100 | Max. Ergebnisse pro Suchbegriff |
maxResults | integer | Nein | 0 | Gesamtlimit. 0 = unbegrenzt |
maxAgeHours | integer | Nein | -- | Stopp nach 3 aufeinanderfolgenden Jobs alter als N Stunden. Erfordert sortBy=date. Leer = deaktiviert |
includeDetails | boolean | Nein | true | Vollstandige Beschreibungen und Kontaktinfos laden |
directUrls | string[] | 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-- Stellenbezeichnungcompany-- Firmennamelocation-- Arbeitsort (Stadt)canton-- Bundesland-Kurzel (BW, BY, BE, etc.)search_query-- Welcher Suchbegriff diese Stelle gefunden hat
Stellendetails:
employment_type-- Vollzeit, Teilzeit, Befristet, Praktikum, Ausbildungsalary_text-- Gehaltsangabe aus der Beschreibungdescription_full-- Vollstandige Stellenbeschreibungrequirements-- 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-URLapply_email-- Direkte Bewerbungs-E-Mailcontact_salutation-- Herr/Fraucontact_firstname/contact_lastname-- Ansprechpartner
Metadaten:
posted_at-- Veroffentlichungsdatum (ISO 8601)expires_at-- Ablaufdatum (ISO 8601)source_url-- Original-Stellenanzeigen-URLsource_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
| Metrik | Wert |
|---|---|
| Geschwindigkeit | ~10 Stellen/Min mit Details |
| Speicher | 128-512 MB (kein Browser notig) |
| Kosten | ~0,01 CU pro 20 Stellen mit Details |
| Proxy | Integriert, keine Konfiguration noetig |
Related Actors
Working across the German job market? These complement Jobware.de:
Germany
- StepStone.de Scraper -- a German general job board.
- Stellenmarkt.de Scraper -- a German national job board (generalist).
- Stellenanzeigen.de Scraper -- German national job board (generalist).
- Arbeitsagentur.de Scraper -- Germany's federal employment agency (Bundesagentur fur Arbeit) public listings.
- Meine Stadt Scraper -- German local/regional jobs by city.
- Nicejob.de Scraper -- German job board with company-culture focus.
- E-Fellows Scraper -- German student/graduate jobs and internships.
Switzerland
Austria
Global
Enrich your job data
- Website Job Extractor -- Extract jobs directly from company career pages
- Website Contact Extractor -- Get emails and phone numbers from company websites
- Website Email & Phone Scraper -- Fast email and phone extraction (no AI needed)
Part of the Santamaria Job Scrapers Suite -- Professional-grade job data for the DACH region and beyond.