Pracuj Scraper - Poland Jobs, Salaries, B2B & Companies
Pricing
from $1.44 / 1,000 job delivereds
Pracuj Scraper - Poland Jobs, Salaries, B2B & Companies
Scrape Pracuj.pl jobs in Poland by keyword, city, radius, level, contract, schedule and work mode: title, company, salary per contract, category, requirements, benefits, technologies, office address and apply link. Schedule it with onlyNew for daily alerts. Error rows are free.
Pricing
from $1.44 / 1,000 job delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pracuj Scraper: Poland jobs from Pracuj.pl with salaries, contracts, companies and full offer details
Pracuj Scraper collects job offers from Pracuj.pl, one of the main job boards in Poland, without an account, cookies or a browser. Search by keyword (English or Polish), city or voivodeship with a radius, position level, contract type, work schedule and work mode, or paste any search link from pracuj.pl or it.pracuj.pl. Each job comes back as one clean row: title, company, every location, salary per contract type (min, max, currency, period, gross or net), category, responsibilities, requirements, nice-to-have skills, benefits, technologies, required languages, office address with coordinates, publication and expiry dates, and the direct apply link.
It is used for job alerts and job-matching tools, salary benchmarks for the Polish market (B2B versus employment contract), recruitment market research, lead lists of companies that are hiring, and datasets for AI job agents.
At a glance
| What | Price |
|---|---|
| Job delivered | US$ 1.90 per 1,000 jobs (US$ 0.0019 each) |
| Run start | US$ 0.005 per run |
- 500 jobs with full details = US$ 0.96. A daily alert of 30 new jobs costs about US$ 0.06 a day.
- One row per job: a job posted in several cities is one row with all its
locations, so you never pay twice for the same offer. - Error rows, duplicates and jobs already delivered in earlier runs (
onlyNew) are never charged.maxItemsis a hard cap, and a spending limit set on the run stops it cleanly with everything delivered so far. - Fast: 50 jobs with full details in about 6 seconds.
Quick start
{"searchQueries": ["power bi"],"city": "Gdańsk","maxItems": 50}
More examples:
{"searchQueries": ["magazynier", "operator wózka widłowego"],"city": "Poznań","radiusKm": 30,"contractTypes": ["employment contract"],"maxItems": 200}
{"searchQueries": ["devops engineer"],"positionLevels": ["senior", "expert"],"contractTypes": ["B2B contract"],"workModes": ["remote"],"itOnly": true,"onlyNew": true,"maxItems": 100}
{"startUrls": ["https://www.pracuj.pl/praca/python;kw/krak%C3%B3w;wp?rd=10&et=18&wm=hybrid","https://www.pracuj.pl/praca/data-analyst-operational-controlling-reporting-team-wroclaw-legnicka-16,oferta,1005146712"]}
Input
| Field | What it does |
|---|---|
searchQueries | Keywords or job titles, one search each. English and Polish both work (power bi, księgowa, kierowca) |
city | Polish city or voivodeship (Wrocław, Gdańsk, mazowieckie). Empty = all of Poland |
radiusKm | Also jobs up to 10, 20, 30, 50 or 100 km from the city |
positionLevels | internship, assistant, junior, mid, senior, expert, team leader, manager, director, president, blue-collar |
contractTypes | employment contract (umowa o pracę), B2B contract, mandate contract (umowa zlecenie), contract for specific work (umowa o dzieło), temporary employment, replacement contract, agency contract, internship contract |
workSchedules | full time, part time, additional / temporary |
workModes | office, hybrid, remote, mobile (field work) |
itOnly | Search only the IT section of Pracuj.pl |
startUrls | Search links copied from pracuj.pl or it.pracuj.pl (every filter in the link is kept, categories included) or links to single job offers |
includeDetails | On by default: full description, requirements, benefits, technologies, salary per contract, category, office address. Off: faster, search-result fields only |
labelsLanguage | en (default) or pl: language of the fixed labels such as level, contract, work mode and category |
maxItems | Cap for the whole run (default 50, 0 = no cap) |
onlyNew | Deliver only jobs not delivered in earlier runs of the same search (for schedules) |
Filters of the same kind are combined with OR (senior or expert); different filters are combined with AND.
Output
| Field | What it is |
|---|---|
jobId, offerId | Pracuj.pl job id (stable across cities) and offer number |
title, url, offerUrls | Job title, offer link, and one link per city when the job is posted in several |
companyName, companyId, companyProfileUrl, companyLogoUrl | The employer and its Pracuj.pl profile |
location, locations, region, country | City (with district), all cities of the job, voivodeship and country |
officeStreet, officePostalCode, officeDistrict, latitude, longitude | The workplace address the employer published |
isWholePoland, isRemoteAllowed, workModes | Recruiting across Poland, remote work allowed, office / hybrid / remote / mobile |
positionLevels, contractTypes, workSchedules | Level, contract types and schedule as tagged by the employer |
salaryText | Salary as shown on the site, for example 10 000–15 000 zł gross / mth. |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryType | First salary range as numbers, period (hour, month...) and gross, net or net + VAT |
salaries | One range per contract type when the employer gives different pay for B2B and employment contract |
category, categoryParent, categories | Main category, its parent and every category of the offer |
itSpecializations, technologiesRequired, technologiesNiceToHave, operatingSystems, developmentPractices | IT details when the offer has them |
responsibilities, requirements, niceToHave, offered, benefits, recruitmentStages | The offer sections as lists, one item per bullet |
requiredLanguages, workingHours, workDays, salaryComponents, paycheckPeriod | Extra attributes the employer filled in |
shiftWork, nightWork, companyCar, noBusinessTrips | Present (true) when the offer says so |
immediateStart, noExperienceRequired, manyVacancies, ukrainianFriendly | Highlights shown on the offer |
isPromoted, isOneClickApply, isCvOptional, isRemoteRecruitment, isDirectEmployer | Offer flags |
aboutProject, aboutCompany | Project and company descriptions written by the employer |
summary, descriptionSnippet, description | Short summary of the offer, the snippet from the results page and the full offer text |
applyUrl | Direct apply link (the employer's own form when it has one) |
publishedAt, firstPublishedAt, expiresAt, isActive | Last refresh, first publication, expiry (UTC) and status |
language, sourceQuery, scrapedAt | Language of the offer, the keyword or link that found it, and when it was collected |
Fields that come from the full offer (salary numbers, sections, category, address) need includeDetails on. Fields
an employer did not fill in are empty.
One real row (lists and long texts shortened):
{"type": "job","jobId": "6c290000-56be-0050-f928-08df2544ad48","offerId": 1005147764,"title": "Project Manager","companyName": "Aplitt Sp. z o.o.","companyProfileUrl": "https://pracodawcy.pracuj.pl/company/20302439","url": "https://www.pracuj.pl/praca/kierowniczka-kierownik-projektu-gdansk-arkonska-11,oferta,1005147764","location": "Gdańsk","region": "pomorskie","workModes": ["Hybrid work"],"positionLevels": ["Manager / Supervisor"],"contractTypes": ["Contract of employment"],"workSchedules": ["Full-time"],"salaryText": "10 000–12 000 zł gross / mth.","salaryMin": 10000.0,"salaryMax": 12000.0,"salaryCurrency": "PLN","salaryPeriod": "month","salaryType": "gross","category": "Administration of systems","categoryParent": "IT-Administration","itSpecializations": ["Project Management"],"technologiesRequired": ["VPN", "Veeam", "VMware", "PostgreSQL", "Microsoft SQL Server"],"requirements": ["Masz doświadczenie w samodzielnym prowadzeniu projektów IT po stronie dostawcy usług...", "..."],"benefits": ["dofinansowanie zajęć sportowych", "prywatna opieka medyczna", "..."],"officeStreet": "Arkońska 11","officePostalCode": "80-387","latitude": 54.405094146728516,"longitude": 18.57805061340332,"isDirectEmployer": true,"applyUrl": "https://aplitt.traffit.com/public/form/a/37?uid=...","publishedAt": "2026-10-20T09:30:13.867Z","expiresAt": "2026-11-08T22:59:59Z","language": "pl","sourceQuery": "power bi"}
Errors you may see
Every error is a row with errorCode and is never charged:
| errorCode | Meaning |
|---|---|
INVALID_INPUT | A filter has a value that is not in the list, or Pracuj.pl did not accept a combination of filters in a link |
INVALID_URL | Not a Pracuj.pl search or offer link |
NOT_FOUND | The offer link points to an offer that was removed |
NO_RESULTS | Pracuj.pl has no job for this search; try fewer filters, another spelling of the city or a broader keyword |
BLOCKED | Pracuj.pl refused every attempt for this search; run it again in a few minutes |
UNEXPECTED | Something unexpected stopped the run; what was delivered before stays in the dataset |
An empty input runs the example search (power bi) so you can see the output format right away.
Integrations, scheduling and AI agents
- Schedule the same search every morning in Apify schedules with
onlyNewon: each run delivers only jobs posted since the last one, and the skipped ones are free. - Export as JSON, CSV, Excel or XML, or read the dataset from the Apify API.
- Connect it to Make, n8n, Zapier, Slack or Google Sheets through Apify integrations to post new jobs to a channel or a sheet.
- AI agents: call it as a tool through the Apify MCP server in Claude, ChatGPT, Cursor or any MCP client, for example "find remote senior Python jobs on Pracuj.pl with a B2B rate above 150 PLN per hour and rank them against my CV".
FAQ
Do I need a Pracuj.pl account? No. Everything comes from public job offers, without login or cookies.
Can I search in English? Yes. Keywords work in English and Polish, and labelsLanguage: "en" (the default) gives
the levels, contracts, work modes and categories in English. Text written by the employer stays in the language of
the offer; the language field tells you which one it is.
How do I get the salary in numbers? Keep includeDetails on. salaryMin, salaryMax, salaryCurrency,
salaryPeriod and salaryType hold the first range, and salaries lists one range per contract type. Around a
quarter to a third of offers publish a salary; salaryText is empty when the employer did not.
How many jobs can I get? All the results of a search: set maxItems to 0. A broad search such as all IT jobs
in Warsaw can return thousands of jobs.
What about jobs posted in many cities? They are one row with every city in locations and every offer link in
offerUrls, and you pay for one job.
Can I use the filters of the site that are not in the input, like categories? Yes. Set them on pracuj.pl, copy
the link from the address bar and paste it in startUrls.
Is it legal? The Actor reads public job offers only and returns company and job data, not data about
candidates. Recruiter phone numbers are not collected, and emails or phone numbers inside the offer text are replaced
by [contact removed]. You are responsible for how you use the data under the laws that apply to you.
Something broke or a field is missing? Open an issue on the Actor page; issues are answered within a day.
Limitations
- Poland only: Pracuj.pl offers abroad that appear in a search come with the fields the site gives for them.
- Salary numbers come from the full offer; with
includeDetailsoff onlysalaryTextis filled. - The order of results is the site's own (most recently refreshed first).
- Data is what Pracuj.pl shows at the moment of the run; offers expire on
expiresAt.
Changelog
- 21 Oct 2026: first version: keyword, city, radius, level, contract, schedule, work mode and IT filters, search and offer links, full offer details with salary per contract, English or Polish labels, onlyNew for schedules.