Pracuj.pl Jobs Scraper - New Jobs Monitor (Poland) avatar

Pracuj.pl Jobs Scraper - New Jobs Monitor (Poland)

Pricing

from $1.79 / 1,000 job returneds

Go to Apify Store
Pracuj.pl Jobs Scraper - New Jobs Monitor (Poland)

Pracuj.pl Jobs Scraper - New Jobs Monitor (Poland)

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.

Pricing

from $1.79 / 1,000 job returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

For recruiters, staffing agencies, job alert bots and anyone tracking hiring in Poland: the newest jobs on Pracuj.pl (nowe oferty pracy) with the company, location, work mode, contract type, level, the salary as listed (plus the amounts in PLN when they can be read), the publish date and the job link.

Schedule it with monitor mode on → each run returns only new jobs. Run it hourly or daily on a Pracuj.pl search and each run returns only the jobs published since the last run, plus salary changes and removed jobs, so you pay for what changed, not for the whole list again.

Start with just a keyword, a city or a pasted Pracuj.pl search URL. Export as JSON, CSV or Excel, or send the new jobs to Slack, email or a sheet with an Apify integration.

What you get

  • New jobs only, on a schedule (monitorMode). Each row says what happened in changeType: new (published since the last run), changed (the salary changed; the previous salary is in previousSalaryLabel, previousSalaryMin, previousSalaryMax, and salaryDirection says up or down when both salaries are comparable amounts), or removed (a job you received is no longer in the newest-first list on two checks in a row; jobs near the bottom of the window are not judged). The first run returns the newest maxResultsPerSearch jobs (default 100, charged) as the starting point; a search added to an existing watch starts the same way.
  • Newest first, 100 jobs per search by default, up to 2,000.
  • Salary you can sort. salaryLabel keeps the text exactly as listed (20 000–25 000 zł netto (+ VAT) / mies., 35–45 zł brutto / godz.). salaryMin, salaryMax, salaryPeriod (month or hour) and salaryBasis (gross for brutto, net for netto) are read from it, with salaryCurrency PLN. When a job shows no pay, or the text is not one clear range in zł, these stay empty; nothing is guessed.
  • The filters Pracuj.pl has: keywords, city with distance, region (województwo, or abroad), remote work (praca zdalna) and other work modes, contract type (umowa o pracę, B2B, umowa zlecenie and more), position level (junior, mid, senior, manager and more), working time, posted within 1-30 days, and jobs with salary only. Or paste any Pracuj.pl search URL with your filters already set.
  • Each job once. A job found by two searches of the same run is returned and charged once. In monitor mode, a job you already received is not returned as new again (each watch remembers the 4,000 jobs it saw most recently), even when it shows up under another search of the same watch, and older jobs that only moved up the list are not returned as new.
  • Nothing new? You get a free row saying so, and no job is charged.

Output

One row per job. Main columns:

ColumnMeaning
statusok for a job row. Other values are free rows (below)
changeTypeMonitor mode: new, changed, removed or unchanged (only with includeUnchanged). Empty in a normal search. removed rows carry the title, company, last salary, date and link only
isFirstChecktrue on the first run of a watch, when the current jobs are returned as the starting point
id, urlPracuj.pl job ID and the job page
offerIds, offerUrlsOne offer number and link per city the job is posted in
titleJob title
companyName, companyId, companyProfileUrl, logoUrlThe employer as listed
location, locations, remoteWorkAllowedWhere the job is, and whether remote work is allowed
workModes, contractTypes, workSchedules, positionLevelsAs listed on Pracuj.pl, in Polish (Praca zdalna, Kontrakt B2B, Pełny etat, Specjalista (Mid / Regular))
salaryLabel, salaryMin, salaryMax, salaryPeriod, salaryBasis, salaryCurrencySalary text as listed, and the amounts read from it
previousSalaryLabel, previousSalaryMin, previousSalaryMax, previousSalaryPeriod, previousSalaryBasis, salaryDirectionMonitor mode, changed rows: the salary before the change, and up or down when both are amounts per the same period and gross/net basis
descriptionSnippetThe short text shown in the search results
publishedAt, firstPublishedAt, isRepublished, expiresAtLast publish date, first publish date, whether it was published again, and the closing date (UTC)
oneClickApply, cvOptionalOne-click apply, and whether a CV is optional
positionInSearch, jobsInSearchPosition in the newest-first list, and the number of jobs Pracuj.pl reports for the search
searchKeywords, searchCity, searchRegion, searchUrlThe search the row came from; searchUrl opens the same search on Pracuj.pl
watchName, checkedAtThe watch name you gave, and the time of the check
noteFree rows only: what happened and what to do

Free rows (never charged)

No jobs, no changes or a spending limit come back as a free row that says why. If Pracuj.pl refuses every request, the run ends as failed and says so.

statusWhen
no-resultsPracuj.pl lists no job for this search.
no-changesMonitor mode: no new jobs, salary changes or removed jobs since the last run.
none-matchingPracuj.pl has jobs, but each one was already returned by an earlier search of the same run or watch.
more-not-returnedFewer jobs came back than maxResultsPerSearch, because one search reads at most its newest 2,000 listings; the row says how many jobs the search has. Every job row also has that total in jobsInSearch. Monitor mode: more changes than maxResultsPerSearch (a later run returns them), or on the first run, how many jobs became the starting point.
more-new-than-readableMonitor mode: more jobs were published since the last run than this run read, so some new ones may have been missed. Run the watch more often or raise maxResultsPerSearch.
incompleteA page of the list could not be read. The jobs before it were returned; in monitor mode nothing is judged and nothing is remembered, and the next run checks again.
not-foundPracuj.pl could not use the search (for example a pasted address that is not a search page).
blockedPracuj.pl showed a check page or refused the request each time it was asked, from different IP addresses. The run stops, says which searches were not run, and remembers nothing; running it again later usually works.
unreadableA page could not be read, even after asking again. Nothing is guessed.
budget-reachedThe run reached the maximum total charge you set; the rest was not returned and not charged (in monitor mode the next run returns them).
bad-inputThe input could not be used (for example a region name that is not a voivodeship). Nothing was requested.

Input

FieldWhat it does
keywordsWhat you would type into Pracuj.pl: 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.
cities, radiusKmPolish towns or cities: Warszawa, Kraków, Wrocław, Gdańsk; optionally 0-100 km around them. Empty = the whole country.
regionsVoivodeships, for example mazowieckie, małopolskie, śląskie, or abroad for jobs outside Poland. Each region is one search.
remoteOnlyOnly jobs listed as remote work (praca zdalna).
workModesOffice, hybrid, remote, mobile. Empty = all.
contractTypesEmployment contract, contract for specific work, mandate contract, B2B, replacement, agency, temporary work, internship. Empty = all.
positionLevelsTrainee, assistant, junior, mid, senior, expert, team leader, manager, director, president, manual worker. Empty = all.
workSchedulesFull time, part time, temporary. Empty = all.
postedWithinDaysOnly jobs published within 1, 3, 7, 14 or 30 days.
salaryOnlyOnly jobs that show a salary.
searchUrlsPracuj.pl search pages copied from the browser, for example https://www.pracuj.pl/praca/python;kw/warszawa;wp. Each is read newest first with its own filters.
maxResultsPerSearchNewest jobs to read per search, 1-2000. Empty = 100. In monitor mode, the window checked for new jobs and changes on each run.
monitorModeReturn only jobs that are new since the last run, salary changes and removed jobs.
includeChanged, includeRemovedMonitor mode: return salary changes and removed jobs. Empty = yes.
includeUnchangedMonitor mode: also return jobs already received that did not change (each one is charged). Empty = no.
watchNameGive each schedule its own name so separate schedules keep separate memories.
resetMonitoringStateForget what this watch remembered; this run is a first check again.

Up to 10 searches per run (keywords times cities and regions, plus search URLs).

Examples

New Python jobs in Kraków or remote, every hour:

{ "keywords": ["python"], "cities": ["Kraków"], "remoteOnly": true, "monitorMode": true, "watchName": "py-krakow" }

Senior B2B jobs in Warszawa published in the last 3 days:

{ "cities": ["Warszawa"], "contractTypes": ["b2b"], "positionLevels": ["senior"], "postedWithinDays": "3" }

The newest 1,000 jobs in a region:

{ "regions": ["mazowieckie"], "maxResultsPerSearch": 1000 }

Monitor mode, step by step

  1. First run: reads the newest maxResultsPerSearch jobs of each search, returns them once (changeType: new, isFirstCheck: true) and remembers them as the starting point.
  2. Later runs: read the same window again and return only jobs published since the last run (new), jobs you received whose salary changed (changed, with the previous salary), and jobs you received that are gone from the list two runs in a row (removed). When nothing moved, one free no-changes row comes back and only the run start fee is charged.
  3. Jobs not returned because of maxResultsPerSearch or a spending limit come back first in the next run. Nothing is judged from a list that could not be read in full.

Keep one schedule per input and watchName. Two overlapping runs of the same watch can both return the same new job.

Pricing

You pay per job row returned, plus a small start fee once per run. In monitor mode the start fee pays for the check, also when nothing changed. Free rows are never charged, and unchanged jobs are not returned or charged unless you turn on includeUnchanged.

The first run of a watch returns and charges up to maxResultsPerSearch jobs per search (default 100) as the starting point; set it lower for a cheap first run.

FAQ

How do I get new job offers from Pracuj.pl automatically? Turn on monitorMode, enter your keywords, city or a pasted search URL, and add a schedule (hourly or daily). Each run returns only the jobs published since the last run.

Is there a Pracuj.pl API for job listings? This Actor gives you the Pracuj.pl search results as structured rows (JSON, CSV, Excel) through the Apify API, with the same filters the site has.

How often should I schedule it? Hourly or daily. A busy search (for example a keyword across all of Poland) can get more new jobs in a day than a 100-job window holds; run it more often or raise maxResultsPerSearch, and a free row tells you when that happened.

What counts as a salary change? Any change of the salary text the job shows, including a salary added to a job that had none. A salary that disappears is not reported as a change.

Can I watch remote jobs only (praca zdalna)? Yes. Tick remoteOnly, or choose work modes, with or without a city.

Good to know

  • Works without a Pracuj.pl account, and reads only what the site shows anyone without logging in.
  • Unofficial and not affiliated with Pracuj.pl.
  • Personal contact details (names, phone numbers, emails) are not returned; the company is.
  • Polski: monitor nowych ofert pracy z Pracuj.pl. Ustaw harmonogram, a każde uruchomienie zwróci tylko nowe oferty, zmiany wynagrodzenia i oferty usunięte.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.