Praca.pl Scraper - Polish Job Listings · $1.5/1K
Pricing
from $0.75 / 1,000 result items
Praca.pl Scraper - Polish Job Listings · $1.5/1K
Extract job postings from Praca.pl (Poland) by keyword and location: title, employer, place, contract type, salary range, posting date, URL, newest first.
Pricing
from $0.75 / 1,000 result items
Rating
0.0
(0)
Developer
Yusuke Suda
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Praca.pl Scraper — Polish job listings by keyword and town
Extract job postings from Praca.pl (Poland) by keyword and location: title, employer, place, contract type, salary range, posting date, URL, newest first.
Praca.pl is one of Poland's established job boards, with around 18,000 live postings: over 1,300 in Kraków alone, and large numbers in Warszawa, Wrocław, Poznań and Gdańsk. This Actor turns its search results into a clean table: the job title, the employer, the workplace, the contract and working time, the salary the employer states, the day the posting went online, and the link to the posting.
Press Start. The prefilled input searches for kierowca (driver) in Warszawa,
so the first run needs no configuration.
What a row looks like
{"title": "Operator wózka widłowego (K/M)","company": "Operis HR sp. z o.o.","location": "Warszawa","employment_type": "umowa o pracę, pełny etat","salary_min": 11000,"salary_max": 15000,"salary_currency": "PLN","salary_period": "month","posted_at": "2026-09-22","source_url": "https://www.praca.pl/operator-wozka-widlowego-k-m_11492461.html","external_id": "11492461"}
company is the employer as the list shows it. When the employer hides its
name (the site then shows "Klient portalu Praca.pl"), company is empty.
Contact persons, email addresses and phone numbers are never collected. This
Actor reads the search results only and never opens the job text.
location is the workplace the posting names: a town, a district
("Warszawa, Ursynów"), a voivodeship, or the employer's street address. A
posting offered in several places ("3 regiony" on the site) is several postings,
each with its own ID and link, and each becomes its own row. remote is true
when the posting says fully remote work ("praca zdalna"), and empty otherwise.
employment_type is the contract and the working time as praca.pl writes them,
in Polish: umowa o pracę (employment contract), umowa zlecenie (civil-law
contract), kontrakt B2B, pełny etat (full-time), część etatu
(part-time). salary_* is the pay the employer states, in złoty, per month or
per hour as the posting says. Where the employer states nothing, the columns
are empty.
Posting dates
praca.pl shows each posting's age ("3 godz.", "2 dni"), not a date. posted_at
is the Polish calendar day on which that age began. Because the site rounds
ages down, a posting shown as "1 dni" gets the later of its two possible days.
A "posted after" filter therefore never drops a posting that may belong inside
it. The filter compares days, not times.
What people use it for
- Tracking which companies in a Polish city are hiring, week by week.
- Salary benchmarking from the ranges employers state, by contract type.
- Feeding a job board or a newsletter with Polish openings in a niche, such as drivers, warehouse staff or accountants.
- Research on the Polish labour market that needs structured rows rather than a page of links.
Input
| Field | What it does |
|---|---|
searchTerms | Keywords, e.g. kierowca, księgowa, magazynier. Each keyword is its own search. Leave empty for everything. |
location | A Polish town or voivodeship, with or without Polish letters: Warszawa, Kraków, Bielsko-Biała, mazowieckie. Leave empty for the whole country. |
postedAfter | Only postings from this day on, e.g. 2026-09-20. |
maxItems | A hard stop, so your bill is predictable. |
proxyConfiguration | Off by default. Most runs do not need a proxy. |
How much one run returns
praca.pl serves 50 cards per page, newest first, and the run follows the site's
own "next page" link until the list ends or maxItems is reached. The site
states how many postings a search holds, and the run report shows that number
next to the rows delivered. The site's pager stops at page 255. A search larger
than that is reported as capped, and more keywords or towns reach the rest. If
you search several keywords, a posting that matches more than one is delivered
only once per run.
Pricing
$1.50 per 1,000 postings, falling to $0.75 per 1,000 on higher Apify plans, plus $0.005 each time a run starts. Platform usage is not passed on to you.
You are charged only for rows you actually receive. If you set a maximum charge for the run, it stops cleanly at that limit instead of going over it.
Scope and limits
The Actor reads public listings only, from the search results pages. praca.pl's robots.txt allows these for all crawlers. No API is called, and job pages are not opened. The promoted "week offers" above the results and the labour-office list below them are not part of your search and are not delivered.
A town that praca.pl does not recognise fails the run with a clear message. On the site, an unknown town looks like a search with no results, and this Actor will not report that as an honest zero.
Every page is checked against what you asked for: keyword, town, page number and date order. If the site answered something else, the run fails rather than return rows you did not ask for and charge you for them.
If praca.pl changes its page structure, the run goes red. It does not return zero rows and report success. A silent scraper is worse than a broken one, because you only find out weeks later.
A run that is blocked or cut short partway also goes red, even though the rows it did collect are in the dataset and yours to keep. Red here means "this is not the complete answer", not "you lost the data". On a schedule, a run that quietly came back short is the thing you most need to hear about.
Same shape, other sites
This Actor shares its output shape with:
- the Jobware Scraper (Germany)
- the jobs.ch, jobup.ch and JobScout24 Scrapers (Switzerland)
- the Jobindex Scraper (Denmark)
- the Jobs.cz Scraper (Czech Republic)
- the BestJobs Scraper (Romania)
A parser you write for one keeps working on the others, and on the countries added next.
Support
Open an issue on this Actor with the run ID and your input. We answer within one business day.