Czech Job Ads API - Úřad práce ČR (MPSV open data) avatar

Czech Job Ads API - Úřad práce ČR (MPSV open data)

Pricing

from $0.80 / 1,000 job ads

Go to Apify Store
Czech Job Ads API - Úřad práce ČR (MPSV open data)

Czech Job Ads API - Úřad práce ČR (MPSV open data)

$1 per 1,000 job ads. Czech job vacancies (volná pracovní místa, nabídky práce) from Úřad práce ČR via MPSV's official open data. Filter by keyword, region (kraj), district, town, CZ-ISCO, salary, contract type and foreign-worker eligibility; English labels and daily alerts.

Pricing

from $0.80 / 1,000 job ads

Rating

0.0

(0)

Developer

Fast Agent

Fast Agent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Price: $1 per 1,000 job ads ($0.90 on Apify Scale, $0.80 on Business and above) · official MPSV open data, free to reuse · no key, browser or proxy

Česky

Volná pracovní místa z evidence Úřadu práce ČR jako strukturovaná data. Actor stahuje oficiální otevřená data MPSV „Volná pracovní místa“ (data.mpsv.cz) a dodává nabídky práce ve formátu JSON, CSV nebo Excel. Podle podmínek užití MPSV data nejsou chráněna autorským ani databázovým právem a lze je volně používat; každý záznam přesto uvádí zdroj a datum stažení. Filtrujte podle klíčových slov (bez ohledu na diakritiku), kraje, okresu, obce, kódu CZ-ISCO, mzdy, typu pracovního vztahu, vzdělání a vhodnosti pro cizince (zaměstnanecká karta, modrá karta). Volba Only new ads since last run při denním spuštění vrací jen nové nabídky. Příklad: "keywords": "programátor", "regions": ["Praha"] vrátí nabídky pro programátory v Praze. Cena: 1 $ za 1 000 nabídek plus 0,00005 $ za spuštění. S AI asistenty: Funguje také v ChatGPT, Claude a Cursoru přes MCP server Apify – viz Use it from ChatGPT, Claude or Cursor níže.

Get Czech job vacancies (volná pracovní místa) from the national register of Úřad práce ČR (the Czech Labour Office), as clean JSON, CSV or Excel. The Actor reads the official "Volná pracovní místa" open-data export published daily by the Ministry of Labour and Social Affairs (MPSV) at data.mpsv.cz. MPSV's terms say the data is not protected by copyright or database rights, so you can reuse it freely. There's no scraping, no browser and no proxies.

Filter about 40,000 current vacancies by keyword, region (kraj), district (okres), town (obec), CZ-ISCO occupation code, salary, contract type, education, employer (name or IČO), public sector and foreign-worker eligibility (Employee Card, EU Blue Card, open to non-EU citizens). Codes are turned into readable names with English labels, and alert mode returns only new ads each day.

What you get for each ad

  • Job title, Úřad práce link and reference number
  • Employer name and IČO (company ID), employer website, number of positions
  • CZ-ISCO occupation code and name
  • Salary from/to in CZK per month or per hour
  • Contract type (full-time, part-time, DPP, DPČ), shift pattern, hours per week, start and end date
  • Minimum education, required languages and level, skills, benefits, and who the job is suitable for (graduates, people with disabilities…)
  • Municipality, district, region, NUTS3 code, street and postcode, or all workplaces when there are several
  • Flags: open to non-EU citizens, Employee Card (zaměstnanecká karta), EU Blue Card, asylum holders, public administration, also on EURES
  • The ad's free-text details, with e-mail addresses and phone numbers removed by default
  • English versions of the labels (…En fields)

Use cases

  • Job alerts: schedule a daily run with Only new ads and send new vacancies to Slack, e-mail or Google Sheets.
  • Recruitment and staffing lead generation: find companies (with IČO) hiring for specific roles and regions.
  • Hiring foreign workers and relocation: list Employee Card and Blue Card vacancies with English labels.
  • Labour-market and salary analysis: track demand and offered pay by occupation, region or district.
  • Job boards and aggregators: feed official Czech vacancies into your own site or app.

Use it from ChatGPT, Claude or Cursor

Ask your AI assistant about live Czech job vacancies from Úřad práce ČR, with English labels, salaries in CZK and foreign-worker eligibility.

This Actor works as a tool in any AI assistant that supports the Model Context Protocol (MCP), through the official Apify MCP server. You ask in plain language; the assistant fills in the filters, runs the Actor and answers from the results.

MCP server URL (this Actor only):

https://mcp.apify.com?tools=orange_briefcase_hrj/czech-job-ads-urad-prace

Set it up once (you need a free Apify account):

  • Claude (claude.ai and Claude Desktop): open Settings → Connectors → Add → Add custom connector. Enter a name (for example Czech jobs), paste the URL above as the Remote MCP server URL, select Continue, keep the detected settings and select Add. Sign in to Apify when your browser opens. On Team and Enterprise plans, an Owner adds the connector for the organisation.
  • ChatGPT: custom connectors need ChatGPT Developer mode (beta). Go to Settings → Apps & Connectors → Create, paste the URL above as the MCP Server URL, choose OAuth authentication and select Create, then sign in to Apify. In a new chat, select + → More and pick the connector.
  • Cursor: add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project). Cursor opens your browser to sign in to Apify:
{
"mcpServers": {
"czech-job-ads-urad-prace": {
"url": "https://mcp.apify.com?tools=orange_briefcase_hrj/czech-job-ads-urad-prace"
}
}
}
  • VS Code, Windsurf and other MCP clients: add the same URL as a remote (Streamable HTTP) MCP server. If a client can't do OAuth, send the header Authorization: Bearer <YOUR_APIFY_TOKEN> instead (token from Apify Console → Settings → API & Integrations).

Already connected to the full Apify server (https://mcp.apify.com) or the Apify plugin for Cursor, Claude Code or VS Code? Just mention orange_briefcase_hrj/czech-job-ads-urad-prace in your request.

Try asking:

"Find programmer jobs in Prague with a monthly salary of at least 60,000 CZK, with employer and link, in English."

"List jobs in the South Moravian region (Jihomoravský kraj) open to foreign workers, published in the last 7 days."

"Which employers are hiring nurses (zdravotní sestra) in Brno right now?"

Cost: a run started by your assistant is a normal run of this Actor, billed to your Apify account at the usual pay-per-event price ($1 per 1,000 job ads, see the pricing section below). This Actor charges nothing extra for runs that come through an assistant. Asking for a small number of results (for example "the top 20") keeps runs cheap, and the Apify Free plan's monthly credit covers plenty of tests.

Screenshots

Real output from the saved example tasks (test runs on 26 October 2026):

IT and developer jobs in Prague: published date, job title, employer, IČO, CZ-ISCO occupation, salary, contract type and minimum education

Employee Card vacancies for foreign workers: job title, employer, town, region in English, salary, languages and foreign-worker flags

Ready-made example tasks

  • IT and developer jobs in Prague: CZ-ISCO 25, region Praha, posted in the last 30 days.
  • Truck driver jobs in Czechia (daily alert): CZ-ISCO 8332, including nationwide ads, only new ads.
  • Jobs in Czechia for foreigners: Employee Card vacancies posted in the last 7 days.

Input examples

Programmer jobs in Prague from the last 30 days:

{ "keywords": "programátor, vývojář, developer", "regions": ["Praha"], "publishedWithinDays": 30, "maxResults": 200 }

Daily alert for truck driver jobs in South Moravia paying at least 45,000 CZK a month:

{ "czIscoCodes": ["8332"], "regions": ["Jihomoravský kraj"], "minMonthlySalaryCzk": 45000, "onlyNew": true, "stateKey": "drivers-jmk" }

Full-time jobs open to non-EU citizens in Brno, needing at most an apprenticeship:

{ "municipalities": ["Brno"], "employmentTypes": ["fullTime"], "foreignWorkers": "openToNonEu", "maxEducationRequired": "stredOdborVyuc" }

Keywords ignore accents and case, so ridic finds řidič. All words in a phrase must appear, and commas separate alternatives. Regions accept Czech or English names, codes or NUTS3 codes (Praha, Prague, South Moravian, 116, CZ064). CZ-ISCO codes work as prefixes (25 = all ICT professionals).

Output example

{
"id": "67303687",
"referenceNumber": "35139600726",
"url": "https://mpsv.gov.cz/up-cz/volna-mista-v-cr#/volna-mista-detail/67303687",
"jobTitle": "Specialisté v oblasti bezpečnosti dat a příbuzní pracovníci",
"occupation": "Specialisté v oblasti bezpečnosti dat a příbuzní pracovníci",
"czIscoCode": "25290",
"employerName": "RFE/RL, Inc., odštěpný závod",
"employerIco": "61389269",
"numberOfVacancies": 1,
"salaryFrom": 90000,
"salaryTo": 135000,
"salaryUnit": "CZK/month",
"employmentTypes": [
"Pracovní poměr - plný úvazek"
],
"employmentTypesEn": [
"Full-time employment"
],
"shiftPatternEn": "Single shift",
"hoursPerWeek": null,
"minEducation": "Základní + praktická škola",
"minEducationEn": "Primary",
"startDate": "2027-01-04",
"publishedAt": "2026-10-19",
"updatedAt": "2026-10-19T16:21:59.727Z",
"municipality": "Praha",
"district": "území Hlavního města Prahy",
"region": "Hlavní město Praha",
"regionEn": "Prague",
"regionNuts3": "CZ010",
"postcode": "10000",
"benefitsEn": [],
"languagesEn": [
"English"
],
"openToNonEuCitizens": true,
"employeeCard": true,
"blueCard": false,
"publicSector": false,
"labourOffice": "Krajská pobočka pro hlavní město Prahu",
"description": "RFE/RL hledá zaměstnance na pozici Senior SecOps Engineer, který bude zodpovědný/á za správu, optimalizaci a rozvoj systémů bezpečnostního monitoringu …",
"isNew": false,
"retrievedAt": "2026-10-26T15:19:26Z",
"attribution": "Source: Ministerstvo práce a sociálních věcí / Úřad práce ČR, open data \"Volná pracovní místa\" (data.mpsv.cz), free to reuse under the MPSV open-data terms; retrieved 2026-10-26."
}

Salaries are as the employer entered them (salaryUnit is CZK/month or CZK/hour). Each run also saves a SUMMARY record with the filters used, how many vacancies were scanned and matched, and counts per region.

How it works

  • Official open data: MPSV publishes the complete register of vacancies reported to Úřad práce ČR as one daily export (Volná pracovní místa). The same data powers the Úřad práce job search.
  • One download per run: the Actor downloads the compressed export (about 18 MB) and MPSV's code lists (regions, districts, municipalities, CZ-ISCO, languages, skills), then filters everything in memory. A typical run takes 10–20 seconds.
  • Always complete: filters run over the whole register, so you're not limited to a few pages of search results. Sorting by newest, oldest, recently updated or highest salary works across all matches.
  • Alerts: ads already returned for a search are remembered in a named key-value store (stateStoreName / stateKey) until they leave the register.
  • Freshness: MPSV updates the export once a day, overnight Czech time. Running more often than daily won't find more ads.

Pricing

Pay per event, with Apify platform costs included:

Apify plan (Store discount tier)Price per job adPer 1,000
Free, Starter (Bronze)$0.001$1
Scale (Silver)$0.0009$0.90
Business (Gold) and above$0.0008$0.80

Each run also has an Actor start charge of $0.00005 (at the default 256 MB memory).

Worked examples (Free/Starter prices):

  • Daily alert with about 10 new ads a day: 30 runs × $0.00005 + 300 ads × $0.001 = about $0.30 a month.
  • One-off export of 1,000 ads (for example all IT jobs in the country): $0.00005 + 1,000 × $0.001 = about $1.00.
  • Monthly snapshot of the whole register (about 40,000 ads): $0.00005 + 40,000 × $0.001 = about $40.00.

The Apify Free plan includes $5 of platform usage every month (see apify.com/pricing), and pay-per-event charges are paid from that credit. That covers about 5,000 job ads a month, or the daily alert above several times over. Use Max results and Apify's maximum cost per run to cap spend.

Use via API (Python, JavaScript, cURL)

You can start the Actor from your own code with the official Apify API clients. Get your API token from Apify Console → Settings → API & Integrations.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("orange_briefcase_hrj/czech-job-ads-urad-prace").call(run_input={
"keywords": "programátor",
"regions": ["Praha"],
"publishedWithinDays": 30,
"maxResults": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Install with pip install apify-client.

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('orange_briefcase_hrj/czech-job-ads-urad-prace').call({
keywords: 'programátor',
regions: ['Praha'],
publishedWithinDays: 30,
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Install with npm install apify-client.

cURL

This runs the Actor and returns the dataset items in the same request (best for short runs):

curl -X POST "https://api.apify.com/v2/acts/orange_briefcase_hrj~czech-job-ads-urad-prace/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "programátor", "regions": ["Praha"], "publishedWithinDays": 30, "maxResults": 50}'

For longer runs, call POST /v2/acts/orange_briefcase_hrj~czech-job-ads-urad-prace/runs and read the dataset when the run finishes. You can also add the Actor to Zapier, Make, n8n or a webhook from the Integrations tab.

Data licence and attribution

The vacancies come from MPSV's open data. Its terms of use state that the datasets contain no copyrighted works and aren't protected by copyright or the database maker's right. Every record still includes an attribution field with the source and retrieval date. This Actor is not affiliated with MPSV or Úřad práce ČR.

Personal data (GDPR)

MPSV says the datasets contain no personal data, but in practice ads often name a contact person and give a phone number or e-mail address. By default, the Actor removes phone numbers and e-mail addresses from the ad text and leaves out contact persons. Names written in the ad text itself are kept. If you have a lawful basis, for example applying for the job, you can opt in with Include contact persons' details. You are responsible for complying with the GDPR, including not using contacts for unsolicited marketing.

Other tools from the same publisher, all built on official open-data APIs:

ToolWhat it does
UK Public Tender AlertsDaily alerts for new UK government tenders and contract awards from Find a Tender and Contracts Finder.
Netherlands Public Tender Alerts (TenderNed)Daily alerts for new Dutch government tenders from TenderNed, filtered by keyword, CPV and province.
Ukraine Prozorro Tender AlertsNew Ukrainian public tenders from the official Prozorro API, filtered by keyword, CPV, oblast and value.
Germany Public Tender Alerts (oeffentlichevergabe.de)Daily alerts for new German public tenders (Ausschreibungen) from the official Bekanntmachungsservice open data, filtered by keyword, CPV and federal state.
France Public Tender Alerts (BOAMP)Daily alerts for new French public tenders (appels d'offres) from BOAMP open data, filtered by keyword, CPV, department and contract type.
UK Company Check & Change MonitorBulk Companies House checks with a RED/AMBER/GREEN risk flag, plus a monitor mode that outputs only changes.
German Case Law Search & Ruling AlertsSearch BGH, BVerfG, BAG, BFH and other German federal court decisions, with full text and new-ruling alerts.
Austria Case Law Search & Ruling Alerts (RIS)Search OGH, VfGH, VwGH, BVwG and other Austrian court decisions from the official RIS API, with full text and new-ruling alerts.
Sweden Job Ads API (Platsbanken)Swedish job ads from Arbetsförmedlingen's official JobTech API, with English labels and daily alerts.

Tip: for Swedish vacancies in a similar format, use Sweden Job Ads API (Platsbanken).

FAQ

Is this legal? Yes. MPSV publishes this register as open data for reuse, and the Actor downloads the official export file rather than scraping the job portal.

Does Úřad práce have an API? It publishes the full register as a daily open-data file instead of a search API. This Actor adds the filtering, name resolution, English labels, alerts and contact masking on top.

Do I need an API key? No. The open data needs no registration. You only need an Apify account.

Can I export all Czech vacancies? Yes. Leave the filters empty and set Max results to 100,000. For exports over 2,000 ads, give the run 512 MB to 1 GB of memory so it finishes faster.

Does it include jobs.cz or prace.cz ads? No. It covers only vacancies reported to Úřad práce ČR. That's a different, official register, and it includes the vacancies employers want to fill with foreign workers (Employee Card and Blue Card positions).

Can I search in English? Ads are written in Czech. Use Czech keywords or CZ-ISCO codes; the output has English labels.

Where can I see what changed? See the Changelog tab. Each release is listed there.