Jobs.cz Scraper avatar

Jobs.cz Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Jobs.cz Scraper

Jobs.cz Scraper

Turn Jobs.cz into structured Czech hiring data. Pull salary ranges, benefits, geo coordinates, required languages and full descriptions from any search or position URL. Handles every Jobs.cz page type, one clean row per job. JSON or CSV out, billed per result.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Extract structured job listings from Jobs.cz, the largest job board in the Czech Republic. Turn any search, profession, or direct position URL into clean rows carrying title, employer, salary, location, benefits, required education and languages, and the full job description — ready for market research, salary benchmarking, and recruitment analytics.

How it works

How the Jobs.cz Scraper works

✨ Why use this scraper?

  • Rich structured output — salary min/max with currency and period, map coordinates, benefits, required education, and required languages, not just a title and a blob of text.
  • Every page type handled — Jobs.cz serves positions through three different templates (interactive widget, classic server-rendered, and employer-branded micro-sites). This scraper detects and parses all three, so you never get empty rows.
  • Direct + search URLs — paste a filtered search URL, a profession/location route, or a direct /rpd/{id}/ position URL. They're auto-classified and can be mixed in one run.
  • Recency filter — restrict a run to positions published in the last N hours for lightweight daily monitoring.
  • Clean, deduplicated rows — one row per position, deduped by ID, normalised into a stable column layout.
  • Optional employer email enrichment — opt-in, best-effort contact-email discovery per employer.

🎯 Use cases

AudienceWhat they get
Market analystsTrack hiring demand by profession, city, and region across the Czech market.
Compensation teamsBenchmark salary ranges by role, employer, and location using structured min/max values.
Recruiters & sourcersMonitor competitor hiring, high-volume employers, and fresh postings.
Job boards & aggregatorsFeed normalised Jobs.cz listings into an internal search product or pipeline.
Data teamsBuild datasets with geo coordinates, benefits, and language requirements for modelling.

📥 Supported inputs

Input patternExampleHandled as
Profession / location routehttps://www.jobs.cz/prace/programator/Listing
Filtered search URLhttps://www.jobs.cz/prace/praha/?q[]=vývojářListing
Direct position URLhttps://www.jobs.cz/rpd/2001279170/Position detail

Not supported: logged-in recruiter areas, candidate accounts, or any content behind a Jobs.cz login. Only publicly available position pages are accessed.

⚠️ Proxy note

Jobs.cz works over direct connections and residential proxies; Apify datacenter proxies are blocked by the site. The input defaults to a residential proxy pinned to the Czech Republic, which is recommended for larger runs.

🔄 How it works

  1. Classify each start URL as a listing/search page or a direct position URL.
  2. Walk pagination on listing pages (?page=N), collecting position IDs until the results run out or maxItems is reached.
  3. Detect the page type for each position: interactive widget, classic server-rendered, or employer-branded micro-site.
  4. Extract the structured data — via the site's own position-detail GraphQL API for widget pages, or by parsing the DOM for classic/branded pages.
  5. Normalise & push one clean row per position to the dataset.

⚙️ Input parameters

ParameterTypeDefaultDescription
startUrlsarray["https://www.jobs.cz/prace/programator/"]Jobs.cz listing/search and/or direct position URLs.
enrichEmailsbooleanfalseOpt-in employer contact-email discovery (billed per email found).
postedWithinHoursinteger24 (prefill)Keep only positions published within the last N hours; 0/empty = all.
maxItemsinteger1000Hard cap on positions collected.
maxConcurrencyinteger10Max position detail requests in parallel.
proxyobjectResidential (CZ)Proxy configuration.

📊 Output overview

Each dataset item is one job position. Fields common to all Jobs.cz positions (title, employer, location, apply URL, description) are always present; the richer structured block (salary, coordinates, benefits, required education/languages, suitability flags) is populated from the site's position-detail API when available. A small share of employer-branded listings expose core fields (title, company, teaser, apply URL) but not the full structured block — those rows carry detailSource: "branded" so you can tell them apart.

📦 Output sample

{
"type": "job",
"source": "jobs.cz",
"jobId": "2001279170",
"jobUrl": "https://www.jobs.cz/rpd/2001279170/",
"title": "Senior Data Science, Python Developer",
"companyName": "Agnostix, s.r.o.",
"location": "Hybernská, Nové Město, Praha, Hlavní město Praha, Česká republika",
"remote": false,
"salary": { "currency": "CZK", "min": 140000, "max": 180000, "unit": "měsíc", "raw": "140000–180000 Kč/měsíc" },
"salaryRaw": "140000–180000 Kč/měsíc",
"categories": ["IS/IT: Vývoj aplikací a systémů", "Machine Learning Engineer", "Python vývojář"],
"employmentTypes": ["Práce na plný úvazek"],
"contractType": "pracovní smlouva, práce na živnostenský list (IČO)",
"requiredEducation": "Vysokoškolské / univerzitní",
"requiredLanguages": ["Čeština — Výborná"],
"benefits": ["Firemní akce", "Možnost občasné práce z domova", "Nadstandardní lékařská péče"],
"coordinates": { "latitude": 50.08714305470315, "longitude": 14.433809200686099 },
"postedDate": "2026-06-12T16:22:22+02:00",
"companyPhone": "+420 774 527 762",
"description": "<p>🧐 <strong>Hledáme Data Science se znalostí Pythonu…</strong></p>",
"descriptionText": "🧐 Hledáme Data Science se znalostí Pythonu pro projekt v oblasti Telco…",
"applyType": "internal",
"applyUrl": "https://www.jobs.cz/jof/2001279170/",
"detailSource": "graphql",
"scrapedAt": "2026-07-12T03:44:48.167Z"
}

🗂 Key output fields

CategoryFields
IdentityjobId, jobUrl, title, source
EmployercompanyName, companyPhone, companyEmail, employerHost
Locationlocation, addressLocality, addressRegion, postcode, country, coordinates
Compensationsalary (currency, min, max, unit, raw), salaryRaw
Classificationcategories, employmentTypes, contractType, contractDuration, hours, requiredEducation, requiredLanguages, benefits, remote
SuitabilitysuitableForGraduate, suitableForDisabled, suitableForPensioner, suitableForMaternityLeave
DatespostedDate, closingDate
Contentdescription (HTML), descriptionText (plain), teaser
ApplyapplyType, applyUrl, applyEmail
MetadetailSource (graphql / classic / branded), scrapedAt

❓ FAQ

Why do some rows have less data than others? Jobs.cz renders positions through three templates. Widget and classic pages yield the full structured block. A minority of employer-branded micro-sites expose only core fields (title, company, teaser, apply URL); those rows are tagged detailSource: "branded".

Does it return salary for every job? No — many Czech listings don't publish a salary. When the site shows one, it's parsed into salary.min/salary.max with currency and period.

Can I scrape a specific search? Yes. Run your search on jobs.cz with any keyword, location, or filter, then copy the resulting address-bar URL into startUrls.

How do I get only fresh jobs? Set postedWithinHours (e.g. 24). Positions without a published date are always kept.

Does it need a proxy? Direct connections work, but a residential proxy (Czech Republic) is recommended for larger runs. Apify datacenter proxies are blocked by the site.

💬 Support

Found a bug or need a new field? Open an issue on the actor's Issues tab and it'll be looked at.

🛠 Additional services

Need a custom scraper for another job board, directory, or listing site? Custom builds, scheduled runs, and enrichment pipelines are available on request.

🔎 Explore more scrapers

Looking for other markets? Check out the other job-board scrapers in the same style, covering boards across Europe and beyond.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Jobs.cz, Alma Career, LMC s.r.o., or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available job-listing pages — no authenticated endpoints, recruiter-only features, or content behind a Jobs.cz login. Users are responsible for ensuring their use complies with Jobs.cz's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.


SEO Keywords

jobs.cz scraper, scrape jobs.cz, jobs.cz api, jobs.cz job scraper, czech job board scraper, czech republic jobs data, prague jobs scraper, jobs.cz crawler, apify jobs.cz, czech jobs api, salary benchmark czech republic, recruitment data czech, hiring trends czech republic, alma career scraper, lmc jobs scraper, jobs.cz salary data, czech vacancy scraper, job listings czech republic, jobs.cz alternative api, praha jobs scraper