Jobvector.de Scraper
Pricing
Pay per usage
Jobvector.de Scraper
Scrape jobvector.de for structured German STEM job data: titles, companies, salaries, skills & locations. 2,900+ listings for engineers, IT professionals, scientists & medical staff. Deduplication & repost detection included.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
12
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share

Extract STEM job listings from jobvector.de at scale, with structured salary, company details, skills, geo-coordinates and repost detection. Jobvector is Germany's leading job board for engineers, IT professionals, scientists and medical staff. No API key required.
Why this scraper?
🎯 Built for German STEM hiring
A dedicated jobvector.de scraper, not a global tool with a country dropdown. Salary parsing, location handling and currency (EUR) are tuned for the German market and jobvector's own listing structure.
📄 Complete job data
Full job title, teaser description in HTML, plain text and Markdown, apply URL, and publish date — plus the exact date each job first appeared.
💶 Structured salary
Minimum, maximum, pay period and currency, parsed from the listing. Estimated figures are flagged so you can filter them out.
🧠 Skills and job signals
Every record carries the listed skills as an array, plus quick-apply and top-job flags so you can spot priority and easy-to-apply postings at a glance.
📍 Location and remote work
City, region, full location string and a remote-work flag on every record. Latitude and longitude are added when full descriptions are fetched.
🔁 Repost detection
Built-in deduplication across runs. Each record is hashed, so you can skip listings already seen in a previous run and keep a clean daily feed.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | string | "Softwareentwickler" | Job title or skill to search for (e.g. Ingenieur, Arzt). Leave empty to scrape all listings. |
location | string | (empty) | City or region to filter by (e.g. München, Berlin). Leave empty to search all of Germany. |
radius | integer | 50 | Search radius around the location, in kilometres. Options: 25, 50, 75, 100, 150. |
maxResults | integer | 500 | Maximum number of listings to return. Set to 0 for unlimited. |
daysOld | integer | 30 | Only return listings published within the last N days. Leave empty for all listings regardless of age. |
skipReposts | boolean | false | Exclude listings already scraped in a previous run. |
startUrls | array | (empty) | Specific jobvector.de search URLs to scrape instead of using the keyword/location inputs. |
fetchDetails | boolean | false | Fetch each job's detail page to extract the full description, employment type and geo-coordinates. Adds roughly 1–2 seconds per job. |
Output schema
Every field in the Always present table appears on every record. Fields the source does not publish for a given job are returned as null rather than omitted. The With fetchDetails: true fields are populated only when that option is enabled.
Always present
| Field | Type | Description |
|---|---|---|
id | string | Stable unique identifier for the listing. |
url | string | Canonical URL of the job listing on jobvector.de. |
title | string | Job title (null if not published). |
company | string | Hiring company name (null if not published). |
companyUrl | string | Link to the company's profile or page (null if not published). |
location | string | Full location string as published. |
locationCity | string | City parsed from the location. |
locationState | string | Region or state parsed from the location (null if not present). |
isRemote | boolean | Whether the listing is flagged as remote work. |
publishDate | string | Publish date as shown on the listing. |
publishDateISO | string | Publish date in ISO 8601 format. |
salaryRaw | string | Raw salary text as published (null if not published). |
salaryMin | number | Minimum salary (null if not published). |
salaryMax | number | Maximum salary (null if not published). |
salaryPeriod | string | Pay period, e.g. year or month (null if not published). |
salaryCurrency | string | Salary currency code, defaults to EUR. |
salaryIsEstimated | boolean | Whether the salary is an estimate rather than a stated figure. |
skills | array | List of skills associated with the listing. |
isQuickApply | boolean | Whether the listing supports jobvector's quick-apply. |
isTopJob | boolean | Whether the listing is promoted as a top job. |
description | string | Teaser description as HTML (null if not published). |
descriptionText | string | Teaser description as plain text (null if not published). |
descriptionMarkdown | string | Teaser description as Markdown (null if not published). |
contentHash | string | Hash of the listing, used for change and repost detection. |
source | string | Source identifier for the listing. |
scrapedAt | string | ISO 8601 timestamp of when the record was scraped. |
summary | string | One-line human-readable summary of the listing. |
isRepost | boolean | Whether this listing was already seen in a previous run. |
originalPublishDate | string | Publish date of the original listing when a repost is detected (null otherwise). |
originalUrl | string | URL of the original listing when a repost is detected (null otherwise). |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string | Full job description as HTML, replacing the teaser. |
descriptionText | string | Full job description as plain text. |
descriptionMarkdown | string | Full job description as Markdown. |
latitude | number | Latitude of the job location (null if not published). |
longitude | number | Longitude of the job location (null if not published). |
applyUrl | string | Direct application URL from the detail page (null if not published). |
employmentType | string | Employment type, e.g. full-time or part-time (null if not published). |
salaryMinDetail | number | Minimum salary parsed from the detail page (null if not published). |
salaryMaxDetail | number | Maximum salary parsed from the detail page (null if not published). |
Example record
{"id": "a1b2c3d4e5","url": "https://www.jobvector.de/stellenangebote/softwareentwickler-muenchen/a1b2c3d4e5/","title": "Softwareentwickler (m/w/d) Backend","company": "Siemens AG","companyUrl": "https://www.jobvector.de/unternehmen/siemens-ag/","location": "München, Bayern","locationCity": "München","locationState": "Bayern","isRemote": false,"publishDate": "12.06.2026","publishDateISO": "2026-06-12","salaryRaw": "65.000 – 85.000 € pro Jahr","salaryMin": 65000,"salaryMax": 85000,"salaryPeriod": "year","salaryCurrency": "EUR","salaryIsEstimated": false,"skills": ["Java", "Spring Boot", "Kubernetes", "REST"],"isQuickApply": true,"isTopJob": false,"description": "<p>Wir suchen einen erfahrenen Backend-Entwickler ...</p>","descriptionText": "Wir suchen einen erfahrenen Backend-Entwickler ...","descriptionMarkdown": "Wir suchen einen erfahrenen Backend-Entwickler ...","contentHash": "9f8e7d6c5b4a","source": "jobvector.de","scrapedAt": "2026-06-14T09:21:00.000Z","summary": "Softwareentwickler (m/w/d) Backend at Siemens AG — München, Bayern (12.06.2026)","isRepost": false,"originalPublishDate": null,"originalUrl": null}
Examples
1. Keyword and location search
{"keyword": "Ingenieur","location": "Stuttgart","radius": 50,"maxResults": 200}
2. Recent listings only
{"keyword": "Data Scientist","daysOld": 7,"maxResults": 100}
3. Wider radius across a region
{"keyword": "Arzt","location": "Hamburg","radius": 150,"maxResults": 500}
4. Daily feed with full descriptions, skipping reposts
{"keyword": "Softwareentwickler","daysOld": 1,"skipReposts": true,"fetchDetails": true,"maxResults": 0}
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Maximum results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Enabling fetchDetails adds roughly 1–2 seconds per job.
Known limitations
- Salary is only present when the employer publishes it, which is a minority of listings on jobvector.de.
- Geo-coordinates, employment type and the full description are only available when
fetchDetailsis enabled. - Company depth varies by employer; some listings carry only a name and link.
- Results are capped by jobvector's own paging depth for very broad searches.
Technical details
- Source: jobvector.de — German STEM job listings
- Coverage: nationwide, filterable by location and radius
- Repost detection: dedup store with hashing across runs
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl