Jenprace.Cz Scraper
Pricing
from $1.19 / 1,000 results
Jenprace.Cz Scraper
Extract job listings from JenPráce.cz — 23,000+ Czech vacancies with salary in CZK, contract type, CEFR language and education requirements, and full descriptions. Filter by keyword, location, job type and date. No API key required.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
5
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
JenPráce.cz Scraper

Extract job listings from JenPráce.cz, one of the Czech Republic's largest job boards, with over 23,000 active listings updated daily. No API key required.
Why this scraper?
🎯 Purpose-built for JenPráce.cz
A dedicated scraper tuned to the site's search, locations and salary formats — not a generic tool pointed at it.
📄 Complete job data
Titles, full descriptions in text and Markdown, salary in CZK, employment type, contract type and publish date for every record.
🇨🇿 Structured language and education requirements
Per-language requirements with CEFR level, plus minimum education, extracted from every detail page that publishes them.
🏷️ Suitability flags
Every record carries flags for foreigners, graduates, students, seniors, parents and remote work, so you can filter to the audience you care about.
🔁 Change detection
Every record carries a stable content hash and change status, so scheduled feeds return genuinely new jobs instead of duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | (empty) | Search keyword in Czech, e.g. skladnik, programator. Leave blank for all jobs. |
location | string | (empty) | City or region in Czech, e.g. Praha, Brno. |
jobType | string | prace | prace for regular jobs, brigady for part-time work. |
daysOld | integer | (empty) | Only return jobs published within the last N days. Leave blank for all. |
fetchDetails | boolean | false | ON: fetches full description, language requirements, education, contract type and duration. OFF: returns listing-level fields only (faster, lower cost). |
startUrls | array | (empty) | Direct JenPráce.cz listing URLs to scrape. Overrides keyword and location. |
maxResults | integer | 5 | Maximum number of jobs to scrape (0 = no limit). |
URL construction
When searchQuery and location are set, the scraper builds the search URL from your input:
- Location only →
https://www.jenprace.cz/nabidky/praha - Keyword only →
https://www.jenprace.cz/nabidky/programator - Both →
https://www.jenprace.cz/nabidky/praha/programator - Brigády →
https://www.jenprace.cz/brigady/brno
For full control, use startUrls with any valid JenPráce.cz listing URL, including filtered search URLs from your browser.
Output schema
Listing-level fields are present on every record. Detail-level fields are populated when fetchDetails is on and the source publishes them for that job; otherwise they are null.
Listing-level (always present)
| Field | Type | Description |
|---|---|---|
jobId | string | Unique listing ID from the source. |
title | string | Job title. |
url | string | Direct link to the listing. |
company | string | Employer name. |
companyUrl | string | Link to the employer's profile page. |
location | string | Location as displayed. |
salaryText | string | Salary as published. |
salaryMin | integer | Parsed minimum salary. |
salaryMax | integer | Parsed maximum salary. |
salaryCurrency | string | Salary currency (CZK). |
employmentTypes | array | Employment types as published. |
isFullTime | boolean | Full-time flag. |
isPartTime | boolean | Part-time flag. |
isForForeigners | boolean | Suitable for foreigners. |
isForGraduates | boolean | Suitable for graduates. |
isForStudents | boolean | Suitable for students. |
isForSeniors | boolean | Suitable for seniors. |
isForParents | boolean | Suitable for parents. |
isRemote | boolean | Remote work flag. |
publishedDate | string | Publish date (ISO). |
publishedDateText | string | Publish date as published. |
scrapedAt | string | ISO 8601 scrape timestamp. |
Detail-level (with fetchDetails on)
| Field | Type | Description |
|---|---|---|
description | string | Full job description in plain text. |
descriptionMarkdown | string | Full job description in Markdown. |
languageRequirements | array | Per-language requirements with CEFR level. |
educationRequired | string | Minimum education, when specified. |
contractType | string | Contract type, e.g. Pracovní smlouva (HPP). |
employmentDuration | string | Employment duration, when specified. |
Each entry in languageRequirements contains the language and its level.
Example record
{"jobId": "ad75np","title": "Skladník / řidič VZV/retrak (m/ž) - Jažlovice","url": "https://www.jenprace.cz/nabidka/ad75np/skladnik-ridic-vzv-retrak-m-z-jazlovice","company": "L7 a.s.","companyUrl": "https://www.jenprace.cz/firmy/l7-a-s","location": "Praha","salaryText": "38 000 – 42 000 Kč","salaryMin": 38000,"salaryMax": 42000,"salaryCurrency": "CZK","employmentTypes": ["Plný úvazek"],"isFullTime": true,"isPartTime": false,"isForForeigners": false,"isForGraduates": false,"isForStudents": false,"isForSeniors": false,"isForParents": false,"isRemote": false,"publishedDate": "2026-07-07","publishedDateText": "dnešní","description": "L7 a.s. patří k významným logistickým společnostem na českém i evropském trhu.","languageRequirements": [{ "language": "Český jazyk", "level": "Expert C2" }],"educationRequired": "Základní","contractType": "Pracovní smlouva (HPP)","employmentDuration": "na dobu neurčitou","scrapedAt": "2026-07-07T10:50:41.775Z"}
Examples
All warehouse roles with full details:
{"searchQuery": "skladnik","fetchDetails": true,"maxResults": 100}
Jobs in Prague from the last 3 days:
{"location": "praha","daysOld": 3,"maxResults": 100}
Part-time work (brigády) in Brno:
{"location": "brno","jobType": "brigady","maxResults": 100}
Daily feed (run on a schedule):
{"daysOld": 1,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149 |
Subscription tiers lower the rate at higher volumes. Use the Max results cap in the input to control spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Detail fetching adds one request per job, so runs with fetchDetails on take longer.
Known limitations
- Salary is returned only when the employer publishes it; many listings carry
nullsalary fields. - Detail-level fields such as education, contract duration and language requirements are returned when the source publishes them for a given job, and are
nullwhen it does not. - Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
What we do not collect
This scraper returns company-level and job-level data only. It does not collect recruiter names, personal emails or personal phone numbers, even where the source publishes them.
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