{
  "openapi": "3.0.1",
  "info": {
    "title": "Pracuj.pl Jobs Scraper - New Jobs Monitor (Poland)",
    "description": "For recruiters, staffing agencies, job alert bots and hiring trackers: Pracuj.pl jobs (oferty pracy) with company, location, work mode, contract, level and salary as listed. With monitor mode on, each scheduled run returns only new jobs, salary changes and removed jobs. JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "vcfXXD2ILdXy3Qhve"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~pracuj-new-jobs-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-pracuj-new-jobs-monitor",
        "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/neverempty~pracuj-new-jobs-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-pracuj-new-jobs-monitor",
        "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/neverempty~pracuj-new-jobs-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-pracuj-new-jobs-monitor",
        "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 (słowa kluczowe)",
            "type": "array",
            "description": "Schedule it with monitor mode on to get only new jobs and changes. Type what you would search on Pracuj.pl, for example python, księgowa, kierowca, data analyst. Each keyword is searched in each city and region. No keyword, city, region, URL or filter at all = python jobs in all of Poland.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities (miasto)",
            "type": "array",
            "description": "Polish towns or cities as you would type them on Pracuj.pl, for example Warszawa, Kraków, Wrocław, Gdańsk. Empty = the whole country.",
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Distance from the city (km)",
            "enum": [
              "0",
              "10",
              "20",
              "30",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Also include jobs this far around each city. Empty = the site's own default for a city search."
          },
          "regions": {
            "title": "Regions (województwo)",
            "type": "array",
            "description": "Whole voivodeships. Each region is one search, like each city. Empty = no region filter.",
            "items": {
              "type": "string",
              "enum": [
                "dolnośląskie",
                "kujawsko-pomorskie",
                "lubelskie",
                "lubuskie",
                "łódzkie",
                "małopolskie",
                "mazowieckie",
                "opolskie",
                "podkarpackie",
                "podlaskie",
                "pomorskie",
                "śląskie",
                "świętokrzyskie",
                "warmińsko-mazurskie",
                "wielkopolskie",
                "zachodniopomorskie",
                "abroad"
              ],
              "enumTitles": [
                "Dolnośląskie (Wrocław)",
                "Kujawsko-pomorskie (Bydgoszcz, Toruń)",
                "Lubelskie (Lublin)",
                "Lubuskie (Zielona Góra)",
                "Łódzkie (Łódź)",
                "Małopolskie (Kraków)",
                "Mazowieckie (Warszawa)",
                "Opolskie (Opole)",
                "Podkarpackie (Rzeszów)",
                "Podlaskie (Białystok)",
                "Pomorskie (Gdańsk, Gdynia)",
                "Śląskie (Katowice)",
                "Świętokrzyskie (Kielce)",
                "Warmińsko-mazurskie (Olsztyn)",
                "Wielkopolskie (Poznań)",
                "Zachodniopomorskie (Szczecin)",
                "Abroad (zagranica)"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only (praca zdalna)",
            "type": "boolean",
            "description": "Only jobs Pracuj.pl lists as remote work. The same as ticking home-office under Work mode."
          },
          "workModes": {
            "title": "Work mode (tryb pracy)",
            "type": "array",
            "description": "Keep only jobs with any of these work modes. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "full-office",
                "hybrid",
                "home-office",
                "mobile"
              ],
              "enumTitles": [
                "Office (praca stacjonarna)",
                "Hybrid (praca hybrydowa)",
                "Remote (praca zdalna)",
                "Mobile (praca mobilna)"
              ]
            }
          },
          "contractTypes": {
            "title": "Contract type (rodzaj umowy)",
            "type": "array",
            "description": "Keep only jobs with any of these contract types. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "employment-contract",
                "contract-for-specific-work",
                "mandate-contract",
                "b2b",
                "replacement-contract",
                "agency-contract",
                "temporary-work",
                "internship"
              ],
              "enumTitles": [
                "Employment contract (umowa o pracę)",
                "Contract for specific work (umowa o dzieło)",
                "Mandate contract (umowa zlecenie)",
                "B2B contract (kontrakt B2B)",
                "Replacement contract (umowa na zastępstwo)",
                "Agency contract (umowa agencyjna)",
                "Temporary work (umowa o pracę tymczasową)",
                "Internship (umowa o staż / praktyki)"
              ]
            }
          },
          "positionLevels": {
            "title": "Position level (poziom stanowiska)",
            "type": "array",
            "description": "Keep only jobs at any of these levels. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "trainee",
                "assistant",
                "junior",
                "mid",
                "senior",
                "expert",
                "team-leader",
                "manager",
                "director",
                "president",
                "manual-worker"
              ],
              "enumTitles": [
                "Trainee (praktykant / stażysta)",
                "Assistant (asystent)",
                "Junior",
                "Mid / Regular (specjalista)",
                "Senior (starszy specjalista)",
                "Expert (ekspert)",
                "Team leader (kierownik / koordynator)",
                "Manager (menedżer)",
                "Director (dyrektor)",
                "President (prezes)",
                "Manual worker (pracownik fizyczny)"
              ]
            }
          },
          "workSchedules": {
            "title": "Working time (wymiar pracy)",
            "type": "array",
            "description": "Keep only jobs with any of these working times. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "temporary"
              ],
              "enumTitles": [
                "Full time (pełny etat)",
                "Part time (część etatu)",
                "Temporary / extra work (dodatkowa / tymczasowa)"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within",
            "enum": [
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Keep only jobs published within this many days. Empty = any date."
          },
          "salaryOnly": {
            "title": "Only jobs that show a salary",
            "type": "boolean",
            "description": "Keep only jobs whose listing shows pay (Pracuj.pl's own salary filter)."
          },
          "searchUrls": {
            "title": "Or paste Pracuj.pl search URLs",
            "type": "array",
            "description": "Set up a search on pracuj.pl with any filters, then paste the address here, for example https://www.pracuj.pl/praca/python;kw/warszawa;wp. Each URL is one more search. Single job pages are refused.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Newest first. Up to 2000 per search. Empty = 100. In monitor mode this is the most rows a check can return for one search, and also the size of the window that is compared."
          },
          "monitorMode": {
            "title": "Monitor mode: return only what changed",
            "type": "boolean",
            "description": "Schedule it and get only new jobs. The first run returns the current list as the baseline; each later run returns only jobs that are new, whose salary changed, or that disappeared. A check with nothing new returns one free no-changes row."
          },
          "includeChanged": {
            "title": "Return salary changes",
            "type": "boolean",
            "description": "Monitor mode only. Return a changed row with the previous salary when the salary of a job already returned changes. Empty = on."
          },
          "includeRemoved": {
            "title": "Return removed jobs",
            "type": "boolean",
            "description": "Monitor mode only. Return a removed row when a job already returned is missing from two checks in a row. Empty = on."
          },
          "includeUnchanged": {
            "title": "Also return unchanged jobs",
            "type": "boolean",
            "description": "Monitor mode only. Also return jobs that did not change (charged like any job row). Empty = off."
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Monitor mode only. Give each schedule its own name (letters, digits, dot, dash, underscore) so two schedules with the same searches keep separate memories. Empty = default."
          },
          "resetMonitoringState": {
            "title": "Start the watch again",
            "type": "boolean",
            "description": "Monitor mode only. Forget what this watch has seen; this run returns a new baseline. Untick it again for the next scheduled run."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}