{
  "openapi": "3.0.1",
  "info": {
    "title": "Úřad práce Scraper ($0.95/1K): Czech Labour Office Jobs",
    "description": "All Czech Labour Office vacancies (Úřad práce, MPSV open data) with salary, region, profession, shifts and foreigner flags. Track new, changed and filled jobs. Optional ARES company data. Unofficial.",
    "version": "0.0",
    "x-build-id": "8ZMnrats2rvXXKitz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~urad-prace-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-urad-prace-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/tsutseisoftware~urad-prace-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-urad-prace-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/tsutseisoftware~urad-prace-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-urad-prace-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Vacancies whose job title or CZ-ISCO profession name contains one of these words at the start of a word, e.g. \"řidič\", \"svářeč\", \"účetní\". Typed with diacritics, the word must match them (\"řidič\" does not find \"řídící\"); typed without, any accents match (\"ridic\" finds \"řidič\"). Empty = all vacancies.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip vacancies whose title or profession contains any of these words (same matching as Keywords), e.g. \"brigáda\".",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Only vacancies with a place of work in these regions (kraj). With Districts or Municipalities too, a vacancy in any of them is kept.",
            "items": {
              "type": "string",
              "enum": [
                "praha",
                "stredocesky-kraj",
                "jihocesky-kraj",
                "plzensky-kraj",
                "karlovarsky-kraj",
                "ustecky-kraj",
                "liberecky-kraj",
                "kralovehradecky-kraj",
                "pardubicky-kraj",
                "kraj-vysocina",
                "jihomoravsky-kraj",
                "olomoucky-kraj",
                "zlinsky-kraj",
                "moravskoslezsky-kraj"
              ],
              "enumTitles": [
                "Hlavní město Praha",
                "Středočeský kraj",
                "Jihočeský kraj",
                "Plzeňský kraj",
                "Karlovarský kraj",
                "Ústecký kraj",
                "Liberecký kraj",
                "Královéhradecký kraj",
                "Pardubický kraj",
                "Kraj Vysočina",
                "Jihomoravský kraj",
                "Olomoucký kraj",
                "Zlínský kraj",
                "Moravskoslezský kraj"
              ]
            }
          },
          "districts": {
            "title": "Districts",
            "type": "array",
            "description": "Only vacancies in these districts (okres), e.g. \"Brno-venkov\", \"Praha-východ\", \"Ostrava-město\", \"Kladno\" (diacritics optional). Vacancies listed for several districts match any of them.",
            "items": {
              "type": "string"
            }
          },
          "municipalities": {
            "title": "Municipalities",
            "type": "array",
            "description": "Only vacancies in these municipalities (obec), e.g. \"Brno\", \"Mladá Boleslav\", \"Plzeň\", or 6-digit ČSÚ codes. A name shared by several municipalities matches all of them (add a District to narrow it).",
            "items": {
              "type": "string"
            }
          },
          "includeNationwide": {
            "title": "Include vacancies for the whole country",
            "type": "boolean",
            "description": "With Regions, Districts or Municipalities: also keep vacancies whose place of work is the whole Czech Republic (often driving or field jobs).",
            "default": false
          },
          "professionCodes": {
            "title": "Profession codes (CZ-ISCO)",
            "type": "array",
            "description": "CZ-ISCO codes or their first digits: \"8332\" (truck drivers), \"2512\" (software developers), \"25\" (all ICT professionals), \"93\" (labourers), \"2221\" (nurses).",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Only vacancies in these fields of activity (obor činnosti of the profession, MPSV code list).",
            "items": {
              "type": "string",
              "enum": [
                "Administrativa",
                "Doprava",
                "Finance",
                "Informační technologie",
                "Právo",
                "Kultura a sport",
                "Management",
                "Obchod a cestovní ruch",
                "Obrana a ochrana",
                "Stavebnictví",
                "Věda a výzkum",
                "Výchova a vzdělávání",
                "Výroba a provoz",
                "Služby",
                "Zdravotnictví",
                "Zemědělství a lesnictví"
              ],
              "enumTitles": [
                "Administrativa (Administration)",
                "Doprava (Transport)",
                "Finance (Finance)",
                "Informační technologie (IT)",
                "Právo (Law)",
                "Kultura a sport (Culture and sport)",
                "Management (Management)",
                "Obchod a cestovní ruch (Trade and tourism)",
                "Obrana a ochrana (Defence and security)",
                "Stavebnictví (Construction)",
                "Věda a výzkum (Science and research)",
                "Výchova a vzdělávání (Education)",
                "Výroba a provoz (Production and operations)",
                "Služby (Services)",
                "Zdravotnictví (Healthcare)",
                "Zemědělství a lesnictví (Agriculture and forestry)"
              ]
            }
          },
          "minSalary": {
            "title": "Minimum salary (CZK per month)",
            "minimum": 0,
            "type": "integer",
            "description": "Only vacancies whose top of the salary range is at least this much a month, e.g. 40000. Hourly wages count as 160 hours a month. Every vacancy in the data has a salary."
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Only these employment relationships. Several values = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "dpp",
                "dpc",
                "civilService"
              ],
              "enumTitles": [
                "Full-time (plný úvazek)",
                "Part-time (zkrácený úvazek)",
                "Agreement to complete a job, DPP (dohoda o provedení práce)",
                "Agreement to perform work, DPČ (dohoda o pracovní činnosti)",
                "Civil service (služební poměr)"
              ]
            }
          },
          "shiftPatterns": {
            "title": "Shift pattern",
            "type": "array",
            "description": "Only vacancies with one of these shift patterns.",
            "items": {
              "type": "string",
              "enum": [
                "singleShift",
                "twoShifts",
                "threeShifts",
                "fourShifts",
                "splitShifts",
                "continuous",
                "night",
                "flexibleHours",
                "rotation",
                "unspecified"
              ],
              "enumTitles": [
                "Single shift (jednosměnný)",
                "Two shifts (dvousměnný)",
                "Three shifts (třísměnný)",
                "Four shifts (čtyřsměnný)",
                "Split shifts (dělené směny)",
                "Continuous operation (nepřetržitý)",
                "Night (noční)",
                "Flexible hours (pružná pracovní doba)",
                "Rotation (turnusové služby)",
                "Not specified (neurčeno)"
              ]
            }
          },
          "minEducation": {
            "title": "Education: at least",
            "enum": [
              "none",
              "elementary",
              "lowerSecondary",
              "apprenticeship",
              "maturita",
              "higherVocational",
              "bachelor",
              "master",
              "doctorate"
            ],
            "type": "string",
            "description": "Only vacancies whose minimum required education is at least this level (e.g. Bachelor's for jobs that need a degree)."
          },
          "maxEducation": {
            "title": "Education: at most",
            "enum": [
              "none",
              "elementary",
              "lowerSecondary",
              "apprenticeship",
              "maturita",
              "higherVocational",
              "bachelor",
              "master",
              "doctorate"
            ],
            "type": "string",
            "description": "Only vacancies whose minimum required education is at most this level (jobs a person with this education can apply for)."
          },
          "foreigners": {
            "title": "Suitable for foreigners",
            "type": "array",
            "description": "Only vacancies the employer opened to foreigners: non-EU citizens, employee card holders (zaměstnanecká karta) or EU Blue Card holders. Several values = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "openToNonEu",
                "employeeCard",
                "blueCard"
              ],
              "enumTitles": [
                "Open to non-EU citizens",
                "Employee card (zaměstnanecká karta)",
                "EU Blue Card (modrá karta)"
              ]
            }
          },
          "suitableFor": {
            "title": "Suitable for",
            "type": "array",
            "description": "Only vacancies the employer marked as suitable for these groups.",
            "items": {
              "type": "string",
              "enum": [
                "graduates",
                "under18",
                "disabled",
                "severelyDisabled",
                "wheelchairAccessible",
                "healthDisadvantaged",
                "refugees"
              ],
              "enumTitles": [
                "Graduates (absolventi)",
                "Under 18 (mladiství)",
                "Disabled, up to 2nd degree (OZP)",
                "Disabled, 3rd degree (OZP, dříve TZP)",
                "Wheelchair users (bezbariérový přístup)",
                "Health disadvantaged (zdravotně znevýhodnění)",
                "Asylum holders (azylanti)"
              ]
            }
          },
          "benefits": {
            "title": "Benefits",
            "type": "array",
            "description": "Only vacancies offering one of these benefits.",
            "items": {
              "type": "string",
              "enum": [
                "accommodation",
                "meals",
                "extraHoliday",
                "bonuses",
                "travel",
                "inKind",
                "kindergarten",
                "outsideHomeDistrict",
                "abroad",
                "other"
              ],
              "enumTitles": [
                "Accommodation (ubytování)",
                "Meals (stravování)",
                "Extra holiday (dovolená navíc)",
                "Bonuses (prémie)",
                "Travel (jízdní výhody)",
                "Benefits in kind (naturální výhody)",
                "Kindergarten (předškolní zařízení)",
                "Outside home district (mimo okres bydliště)",
                "Abroad (v zahraničí)",
                "Other (jiné výhody)"
              ]
            }
          },
          "employerType": {
            "title": "Employer type",
            "enum": [
              "any",
              "directEmployer",
              "agency"
            ],
            "type": "string",
            "description": "Direct employers only, or employment agencies (agentury práce) only.",
            "default": "any"
          },
          "publicSector": {
            "title": "Public sector",
            "enum": [
              "any",
              "only",
              "exclude"
            ],
            "type": "string",
            "description": "Civil service and local government positions (státní správa a samospráva) only, or without them.",
            "default": "any"
          },
          "postedWithinDays": {
            "title": "Posted in the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Only vacancies entered in the last N days (by date). 0 = any time."
          },
          "changedWithinDays": {
            "title": "Changed in the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Only vacancies changed in the register in the last N days (the Labour Office updates many vacancies every night). 0 = any time."
          },
          "employerIcos": {
            "title": "Employer IČO",
            "type": "array",
            "description": "Only vacancies of these employers, by IČO (company ID), e.g. \"00177041\". Employers hidden as private persons never match.",
            "items": {
              "type": "string"
            }
          },
          "excludeEmployerIcos": {
            "title": "Exclude employer IČO",
            "type": "array",
            "description": "Skip vacancies of these employers (IČO), e.g. agencies or your own company.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Company name contains",
            "type": "array",
            "description": "Only vacancies of employers whose name contains one of these texts (case and diacritics don't matter).",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude company names",
            "type": "array",
            "description": "Skip vacancies of employers whose name contains any of these texts.",
            "items": {
              "type": "string"
            }
          },
          "vacancyIds": {
            "title": "Vacancy IDs or URLs",
            "type": "array",
            "description": "Only these vacancies: IDs (e.g. \"67256333\") or portal URLs (https://up.gov.cz/volna-mista-v-cr#/volna-mista-detail/67256333). Handy to check whether given vacancies are still open.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max vacancies",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of vacancies saved. You pay per saved vacancy. 0 = no limit (the whole register has about 40 000 vacancies).",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recentlyChanged",
              "newest",
              "salary",
              "positions"
            ],
            "type": "string",
            "description": "Order of the saved vacancies. Recently changed is the order of the data, so the run can stop reading as soon as Max vacancies is reached; the other orders read the whole file (about a minute longer).",
            "default": "recentlyChanged"
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "The employer's free text (upřesňující informace), with e-mails and phone numbers removed and the contact person's name masked.",
            "default": true
          },
          "descriptionMaxLength": {
            "title": "Description length limit",
            "minimum": 0,
            "type": "integer",
            "description": "Shorten the description to about this many characters (e.g. 300 for a snippet). 0 = full text.",
            "default": 0
          },
          "includeCompanyInfo": {
            "title": "Add company data from ARES (extra charge)",
            "type": "boolean",
            "description": "Add data about the employer from ARES, the public register of economic subjects of the Czech Ministry of Finance, found by the IČO from the Labour Office data: legal form, registered office, employee count range, main activity (CZ-NACE) and founding date. Off by default: when off, the actor never contacts ARES. Extra charge only for vacancies that got company data. Natural persons (sole traders) never get any and their name is hidden too. About 1-2 seconds per new employer.",
            "default": false
          },
          "includeRecruiterContacts": {
            "title": "Include contact person (personal data)",
            "type": "boolean",
            "description": "Off by default. Adds recruiterName, recruiterPhone and recruiterEmail of the person to contact, as the Labour Office portal shows them. Never for private employers, vacancies without employer data or people who objected. These are personal data: use them only to respond to that vacancy, never for marketing (see the README). No extra charge.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed vacancies",
            "type": "boolean",
            "description": "Return only vacancies that are new or whose title, employer, salary, place, contract, hours, shifts, positions or education changed since the previous run with the same Monitoring key. Unchanged vacancies are free.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring: key",
            "type": "string",
            "description": "Name of the saved state. Use a different key for each watched search (e.g. 'ridic-praha'). Empty = \"default\". The value is stored encrypted."
          },
          "includeRemovedJobs": {
            "title": "Monitoring: include removed vacancies",
            "type": "boolean",
            "description": "With \"Monitoring: only new or changed vacancies\": also return vacancies from the previous run with the same Monitoring key that are no longer in the Labour Office data (filled or withdrawn), as rows with changeType \"removed\", removedAt, daysOnline and the last known title, employer, place and salary. Checked only when the run read the whole file (set Max vacancies to 0 or high enough).",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}