Pracuj Scraper - Poland Jobs, Salaries, B2B & Companies avatar

Pracuj Scraper - Poland Jobs, Salaries, B2B & Companies

Pricing

from $1.44 / 1,000 job delivereds

Go to Apify Store
Pracuj Scraper - Poland Jobs, Salaries, B2B & Companies

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

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

WhatPrice
Job deliveredUS$ 1.90 per 1,000 jobs (US$ 0.0019 each)
Run startUS$ 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. maxItems is 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

FieldWhat it does
searchQueriesKeywords or job titles, one search each. English and Polish both work (power bi, księgowa, kierowca)
cityPolish city or voivodeship (Wrocław, Gdańsk, mazowieckie). Empty = all of Poland
radiusKmAlso jobs up to 10, 20, 30, 50 or 100 km from the city
positionLevelsinternship, assistant, junior, mid, senior, expert, team leader, manager, director, president, blue-collar
contractTypesemployment 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
workSchedulesfull time, part time, additional / temporary
workModesoffice, hybrid, remote, mobile (field work)
itOnlySearch only the IT section of Pracuj.pl
startUrlsSearch links copied from pracuj.pl or it.pracuj.pl (every filter in the link is kept, categories included) or links to single job offers
includeDetailsOn by default: full description, requirements, benefits, technologies, salary per contract, category, office address. Off: faster, search-result fields only
labelsLanguageen (default) or pl: language of the fixed labels such as level, contract, work mode and category
maxItemsCap for the whole run (default 50, 0 = no cap)
onlyNewDeliver 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

FieldWhat it is
jobId, offerIdPracuj.pl job id (stable across cities) and offer number
title, url, offerUrlsJob title, offer link, and one link per city when the job is posted in several
companyName, companyId, companyProfileUrl, companyLogoUrlThe employer and its Pracuj.pl profile
location, locations, region, countryCity (with district), all cities of the job, voivodeship and country
officeStreet, officePostalCode, officeDistrict, latitude, longitudeThe workplace address the employer published
isWholePoland, isRemoteAllowed, workModesRecruiting across Poland, remote work allowed, office / hybrid / remote / mobile
positionLevels, contractTypes, workSchedulesLevel, contract types and schedule as tagged by the employer
salaryTextSalary as shown on the site, for example 10 000–15 000 zł gross / mth.
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTypeFirst salary range as numbers, period (hour, month...) and gross, net or net + VAT
salariesOne range per contract type when the employer gives different pay for B2B and employment contract
category, categoryParent, categoriesMain category, its parent and every category of the offer
itSpecializations, technologiesRequired, technologiesNiceToHave, operatingSystems, developmentPracticesIT details when the offer has them
responsibilities, requirements, niceToHave, offered, benefits, recruitmentStagesThe offer sections as lists, one item per bullet
requiredLanguages, workingHours, workDays, salaryComponents, paycheckPeriodExtra attributes the employer filled in
shiftWork, nightWork, companyCar, noBusinessTripsPresent (true) when the offer says so
immediateStart, noExperienceRequired, manyVacancies, ukrainianFriendlyHighlights shown on the offer
isPromoted, isOneClickApply, isCvOptional, isRemoteRecruitment, isDirectEmployerOffer flags
aboutProject, aboutCompanyProject and company descriptions written by the employer
summary, descriptionSnippet, descriptionShort summary of the offer, the snippet from the results page and the full offer text
applyUrlDirect apply link (the employer's own form when it has one)
publishedAt, firstPublishedAt, expiresAt, isActiveLast refresh, first publication, expiry (UTC) and status
language, sourceQuery, scrapedAtLanguage 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:

errorCodeMeaning
INVALID_INPUTA filter has a value that is not in the list, or Pracuj.pl did not accept a combination of filters in a link
INVALID_URLNot a Pracuj.pl search or offer link
NOT_FOUNDThe offer link points to an offer that was removed
NO_RESULTSPracuj.pl has no job for this search; try fewer filters, another spelling of the city or a broader keyword
BLOCKEDPracuj.pl refused every attempt for this search; run it again in a few minutes
UNEXPECTEDSomething 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 onlyNew on: 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 includeDetails off only salaryText is 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.