Jobs-cz Jobs Scraper
Pricing
from $0.40 / 1,000 job results
Jobs-cz Jobs Scraper
Scrapes job offers from jobs.cz: salaries, contract types, work mode, experience levels, locations and the full description. Same output schema as our other Polish job portal actors.
Pricing
from $0.40 / 1,000 job results
Rating
0.0
(0)
Developer
DataWatcher
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Features
Share
Scrape jobs.cz job offers as clean data, from the Apify Store or through the Apify API. Each row has a title, company, city, contract type and salary. Search by keyword, city, category, contract, work type or experience. Switch on one option to read each offer's own page for the full description.
🔎 What does Jobs-cz Jobs Scraper do?
- Reads job offers from jobs.cz and returns one row per offer.
- Searches by keywords, or reads a jobs.cz listing page or a single offer page that you give it.
- Filters by city, category, contract type, work type, experience level and "salary shown".
- Turns the pay text into numbers: minimum, maximum, currency and period.
- Can open each offer's page for the description, benefits, languages and extra details.
⭐ Why this one
1️⃣ One schema across job portals. All our job actors share one output schema and one input schema. Build your pipeline once: our other job actors (Nofluffjobs, Aplikuj, Bluelionjob, Bulldogjob, Hollylist, Just Join IT, Pracuj, Reed, RocketJobs.pl, Skillshot, theprotocol.it) take the same input and return the same fields, so adding a portal means changing the actor name, not your code.
- Six ways to start. Run it with no input, with keywords, with filters, with a listing URL, with one offer URL, or with a mix of URLs.
- Pay as numbers. Salary text becomes
min,max,currencyandperiod, so you can sort and compare it. - Cheap by default. A listing row costs $0.40 per 1,000 results. The median result price of the ten most-used job scrapers in the Store is $1.75 per 1,000.
- Details only when you ask. The extra charge for reading an offer's page applies only to offers whose page was read.
- Six filters. City, category, contract type, work type, experience and "salary shown" narrow the rows.
🚀 How to scrape jobs.cz jobs
- Open the actor on Apify and click Try for free.
- Type keywords, a city or a jobs.cz URL, or leave the input empty to read the default search. Turn on Extract full details if you want the description.
- Click Start.
- Download the jobs.cz jobs data as JSON, CSV or Excel from the Output tab, or fetch it with the Apify API.
Data
This actor returns only what the site shows publicly at run time. We don't store or keep that data and are not its controller — you decide how you use it.
This actor is not affiliated with or endorsed by jobs.cz. Salary and contract data appear only where the offer shows them.
🤖 Use with AI agents (MCP)
AI assistants (Claude, ChatGPT, Cursor…) can run this actor through Apify's MCP server. Connect the server in your assistant, then ask, for example:
Use the Jobs-cz Jobs Scraper to find 20 job offers for "python" in Praha on jobs.cz and show me the title, company and salary of each.
🔌 Run it your way
- Schedule it with Apify schedules.
- Call it from the Apify API and its clients (Python, JavaScript).
- Connect it to Make, n8n, Zapier, webhooks or Google Sheets.
- Ask an AI agent to run it: see Use with AI agents (MCP).
⚙️ Input
Every field is optional. Pick one of the modes below, or combine them.
{"searchQueries": ["python"],"locations": ["Praha"],"maxResults": 10,"extractFullDetails": false}
| Field | Default | Notes |
|---|---|---|
maxResults | 50 | Maximum number of offers returned, in total. Set 0 to remove the cap. |
startUrls | empty | A listing URL is read as that listing. An offer URL is read directly. The filters below still apply to these URLs. searchQueries is not applied to them. |
searchQueries | empty | Keywords, one search per line: a technology or a job title. |
locations | empty | City names. Accents and case do not matter. A city the portal does not know gives a warning and no search for it. |
categories | empty | One or more of backend, frontend, fullstack, mobile, devops, data, ai-ml, testing, security, it-admin, support, embedded, gamedev, erp, architecture, project-management, product, ux-ui, business-analysis, sales, marketing, hr, finance, customer-service, engineering, production, logistics, legal, administration, consulting, education, healthcare, construction, hospitality. |
contractTypes | empty | One or more of employment, b2b, mandate, specific-task, internship. |
workType | empty | One or more of remote, hybrid, onsite, mobile. |
experience | empty | One or more of intern, junior, mid, senior, expert, lead, manager, executive. |
withSalaryOnly | off | Keep only offers that show a salary. |
extractFullDetails | off | Read each offer's own page for the description, skills, benefits, languages and company details. An offer start URL is read either way. |
maxConcurrency | 1 | Searches and detail pages processed in parallel (1 to 10). |
maxRequestsPerMinute | 60 | Request rate for the whole run. |
proxyConfiguration | off | Optional proxy settings, useful when many detail pages are requested. |
maxRequestRetries | 2 | Retries after a failed request (0 to 10). |
When you filter by work type without extractFullDetails, rows that the listing alone cannot confirm are left out, and the run reports a warning. Turn on extractFullDetails to check them on each offer's page.
🧭 Input modes: what you give, what you get
Pick the mode that matches what you know. Each one runs with extractFullDetails off or on.
| Mode | You give | Rows | Offer pages read |
|---|---|---|---|
| 1. Default search | nothing | Offers from the default jobs.cz search | Only with extractFullDetails |
| 2. Keywords | searchQueries | Offers matching the keywords | Only with extractFullDetails |
| 3. Filtered search | locations, categories, contractTypes, workType, experience or withSalaryOnly | Offers matching the filters | With extractFullDetails, or when a filter needs the page |
| 4. Listing URL | a jobs.cz listing URL in startUrls | Offers from that listing | Only with extractFullDetails |
| 5. One offer URL | an offer URL in startUrls | That one offer, with full details | Yes, the offer page is read |
| 6. Mixed URLs | a listing URL and an offer URL in startUrls | Offers from the listing plus the offer | The offer URL is read directly, listing offers with extractFullDetails |
Copy one of the inputs below and change the values.
🔎 1. Default search
{"maxResults": 10}
🔤 2. Keywords
{"searchQueries": ["specialista"],"maxResults": 10}
🎯 3. Filtered search
{"locations": ["Praha"],"workType": ["hybrid"],"maxResults": 10,"extractFullDetails": true}
📄 4. Listing URL
{"startUrls": [{ "url": "https://www.jobs.cz/prace/" }],"maxResults": 10}
📌 5. One offer URL
{"startUrls": [{ "url": "https://www.jobs.cz/rpd/2001515826/" }]}
🔗 6. Mixed URLs
{"startUrls": [{ "url": "https://www.jobs.cz/prace/" },{ "url": "https://www.jobs.cz/rpd/2001515826/" }],"maxResults": 10}
Filters apply to URL modes too: rows that do not match are dropped.
📦 Output: jobs.cz jobs data
Each row is one job offer. It holds the title, company, locations, categories, contract types, work time, salaries, benefits, languages, dates and the description. Salaries are listed as min, max, currency, period and grossNet. Fields the offer does not show stay empty.
{"recordType": "job","source": "jobs.cz","id": "2001515826","url": "https://www.jobs.cz/rpd/2001515826/","title": "Staňte se srdcem naší farmy – HLEDÁME RECEPČNÍ!","company": {"name": "RODINNÁ FARMA A-04 s.r.o."},"locations": [{"city": "Praha","street": "Vinohradská 3217/167"}],"contractTypes": [{"value": "employment","original": "pracovní smlouva","source": "portal"}],"workTime": "full-time","salaries": [{"contractType": "employment","currency": "CZK","min": 35000,"max": 38000,"period": "month","isOriginal": true}],"benefits": ["Multisport karta"],"description": {"text": "Rodinná farma je síť prodejen s farmářskými produkty a výběrovými uzeninami. ..."},"dates": {"scraped": "2026-11-13T14:00:17Z"}}
Missing data is null, never a guess.
Run status. After each run, open the run's key-value store (Storage tab) to see how it went:
RUN_HEALTH:ok, ordegradedwith the reason (no rows, a failed request, a warning, or a row that broke a data rule).RUN_SUMMARY: the run's numbers: rows, requests, retries, failed requests, warnings and billed events.
💰 Pricing (Pay-Per-Event)
| Event | Price | Trigger |
|---|---|---|
Job result (job-scraped) | $0.40 per 1,000 events | One job offer returned by the Actor. |
Job details (job-details-scraped) | $1.50 per 1,000 events | Additional charge for a job offer whose detail page was read. |
There is no start fee. You pay for the offers returned, plus the extra event when an offer's page was read.
Free plan: each run returns up to 1,000 results.
🎯 Use cases
- Hiring demand. Count new offers by category or city over time.
- Employer watch. See which companies post the most offers.
- Pay research. Compare the minimum and maximum salary by role, city and contract type.
- Job boards. Fill a board with current Czech offers.
🩺 If a run fails
The run health (the RUN_HEALTH record, RUN_SUMMARY and the last line of the log) names the cause, for example site down: list request answered 500 x3. Find that start of the message in the table.
| Error in the log / run health | What it means | What you do |
|---|---|---|
site down: <request> answered 500, 502-504, 520-526 | The site is offline or has a fault. The actor waits longer between tries, then stops the run. | Try again later. |
blocked: <request> answered 401, 403, 1020 or a captcha page | The site refused the request or showed a captcha page. | The actor already retries once through the Apify proxy. If it still fails, turn on the Apify proxy in the input (use the RESIDENTIAL group if it is already on). |
rate limited: <request> answered 429 | The site asks for fewer requests. The actor waits and slows down by itself. | If it keeps happening, lower maxRequestsPerMinute. |
gone: <request> answered 404, 410 | The page or offer was removed. The actor skips it and it is not charged. | Nothing; this is normal. |
network error: <request> failed with timeout (or connection error, DNS error) | A timeout or a broken connection. The actor retries with a pause. | Try again later. |
wrong answer: <request> returned HTML instead of JSON (or an empty body) | The site answered with a page that is not data (HTML instead of JSON, an empty body). The site has probably changed. | Report it in the Issues tab; we fix it. |
❓ FAQ
How many jobs can I scrape per run?
Set maxResults to the number you want. The free plan returns up to 1,000 results per run.
How do I export jobs.cz jobs to Excel or CSV?
Run the actor, open the Output tab and pick Excel or CSV in the export options. JSON, XML and HTML are there too, and the Apify API returns the same data.
Can I scrape only offers that show a salary?
Yes. Turn on withSalaryOnly. Offers without a salary are dropped.
Can I combine it with other portals?
Yes. All our job actors share one output schema and one input schema, so rows from different portals fit one table. See the list below.
🔗 Other job scrapers (same schema)
- Nofluffjobs Jobs Scraper
- Aplikuj Job Scraper
- Bluelionjob Jobs Scraper
- Bulldogjob Jobs Scraper
- Hollylist Jobs Scraper
- Just Join IT Jobs Scraper
- Pracuj Job Scraper
- Reed Jobs Scraper
- RocketJobs.pl Jobs Scraper
- Skillshot Jobs Scraper
- theprotocol.it Jobs Scraper
💬 Feedback and custom work
Need another portal, a field or a custom feed? Open an issue on the Issues tab.