Pracuj.pl Scraper | Poland Job Offers + Salaries avatar

Pracuj.pl Scraper | Poland Job Offers + Salaries

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Pracuj.pl Scraper | Poland Job Offers + Salaries

Pracuj.pl Scraper | Poland Job Offers + Salaries

Pracuj.pl scraper & API for Poland job offers: search by keyword, city and filters (contract, work mode, seniority, salary) and export title, company, salary, location, remote status, coordinates and apply URL. Polish job-market data and recruitment leads — fast, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pracuj.pl Scraper

Export job offers from Pracuj.pl — Poland's #1 job board — as clean, structured data: title, company, salary, seniority, contract type, work mode, every location, coordinates and the apply URL. No login, no code, no captcha.

Apify Poland Jobs No-code Export


⚡ At a glance

🇵🇱 CoverageEvery job offer on Pracuj.pl — Poland's largest job board (1.5M+ visits/day)
💰 SalariesParsed salaryMin / salaryMax / currency / period / gross-net when the employer publishes pay
🏢 Full detailTitle, company (name, ID, logo, profile), seniority, contract, work mode, all locations + coordinates
🏠 Remote-readyRemote / hybrid / office / mobile flags, plus a salaryOnly filter
🔎 TargetingBy keyword, city, contract type, work mode, seniority and posting date
🚫 No barriersNo login, no captcha, no browser — straight from Pracuj's live search feed
Fast & cheap~50 offers/second, pennies per thousand records

What is the Pracuj.pl Scraper?

Pracuj.pl Scraper turns Poland's biggest job board into a clean, structured dataset you can actually use. For each keyword (and optional city + filters) it returns a ready-to-use list of job offers: the position and company, the parsed salary, the seniority and contract type, the work mode, every location the role is offered in with coordinates, the publish date and a direct apply link.

Whether you're a recruitment agency building a candidate-facing feed, a job board or aggregator filling Polish roles, a market-research or HR-tech team benchmarking salaries and hiring demand, or a sales team prospecting companies that are actively hiring, this scraper gives you the raw material in seconds — no login, no captcha, no page-by-page clicking.

💡 Why it stands out: most job scrapers give you a title and a company. This one returns parsed salary bands, the work mode, every location a role is posted in (with lat/lon), the seniority and contract type, and both an AI summary and a direct apply URL — clean and analysis-ready.


✨ Key features

  • 🇵🇱 All of Pracuj.pl — search any keyword (python, księgowa, kierowca, sales manager) across Poland, or narrow to a city.
  • 💰 Parsed salaries — when pay is published, you get salaryMin, salaryMax, salaryCurrency, salaryPeriod and gross/net — not just a text blob.
  • 🧭 Rich filters — contract type, work mode, seniority level, salary-only and "posted within N days", all combinable.
  • 🏠 Work mode & remote — remote / hybrid / office / mobile, plus an isRemote flag.
  • 📍 Every location — a role posted in 4 cities gives you all 4, each with coordinates for mapping.
  • 🏢 Company data — name, ID, logo and profile URL for lead generation.
  • 🔗 Direct apply links — deep link to each offer, ready to send or store.
  • 📤 Export anywhere — JSON, CSV, Excel or HTML, or pull straight from the Apify API into Sheets, Airtable, a dashboard or a webhook.

🎯 Use cases


🚀 How it works

  1. Enter keywords — one or many (each is searched separately). Leave empty for a nationwide sample.
  2. Narrow it down (optional) — city, contract type, work mode, seniority, salary-only, posting date.
  3. Run it — the Actor reads Pracuj's live search feed and returns clean, de-duplicated offers.
  4. Export — JSON, CSV, Excel or API.

No accounts, captchas or scripts — just fill in the form and press Start.


📥 Input

FieldTypeDescription
keywordslistJob keywords, e.g. ["python", "accountant"]. Each searched separately. Empty = nationwide sample.
locationtextOptional Polish city, e.g. warszawa, kraków, wrocław.
contractTypeslistemployment, b2b, mandate, task, replacement, agency.
workModeslistremote, hybrid, office, mobile.
seniorityLevelslisttrainee, junior, mid, senior, expert, manager.
salaryOnlybooleanOnly offers that publish a salary.
postedWithinDaysselectAny time / 1 / 3 / 7 / 14 / 30 days.
scrapeDetailsbooleanAlso fetch each offer's full description (slower).
maxItemsnumberMax offers across all keywords (0 = unlimited).
maxPagesPerSearchnumberCap pages per keyword (50 offers/page).
proxyConfigurationproxyDatacenter by default; auto-escalates to PL residential if needed.

Example inputs

1. Python jobs across Poland

{
"keywords": ["python"],
"maxItems": 200
}

2. Remote senior roles with a published salary in Warsaw

{
"keywords": ["java", "golang"],
"location": "warszawa",
"workModes": ["remote", "hybrid"],
"seniorityLevels": ["senior", "expert"],
"salaryOnly": true,
"maxItems": 300
}

3. B2B contracts posted in the last week

{
"keywords": ["devops"],
"contractTypes": ["b2b"],
"postedWithinDays": "7"
}

📤 Output

Each job offer is one row. Example:

{
"offerId": "1005009123",
"jobTitle": "Python Developer (M/K)",
"companyName": "ASTEK Polska",
"companyId": "20012345",
"companyProfileUrl": "https://pracodawcy.pracuj.pl/company/20012345",
"companyLogoUrl": "https://logos.gpcdn.pl/loga-firm/…_280x280.jpeg",
"salaryText": "18 000–24 000 zł brutto / mies.",
"salaryMin": 18000,
"salaryMax": 24000,
"salaryCurrency": "PLN",
"salaryPeriod": "month",
"salaryGrossNet": "gross",
"seniority": "Specjalista / Specjalistka (mid / Regular)",
"contractTypes": ["Kontrakt B2B"],
"workModes": ["Praca hybrydowa"],
"workSchedules": ["Pełny etat"],
"isRemote": false,
"locations": ["Kraków", "Warszawa"],
"isWholePoland": false,
"latitude": 50.0614,
"longitude": 19.9366,
"publishedAt": "2026-08-10T08:04:00Z",
"expiresAt": "2026-09-09T21:59:59Z",
"aiSummary": "Backend role building data services in Python…",
"offerCount": 2,
"url": "https://www.pracuj.pl/praca/python-developer-m-k-krakow,oferta,1005009123"
}

Output fields

Coverage key: 🟢 almost every offer · 🟡 when the employer provides it

🧑‍💼 Job

FieldCoverageDescription
jobTitle🟢Position title
seniority / seniorityList🟢Seniority level(s)
contractTypes🟢Contract types (employment, B2B…)
workModes / isRemote🟢Work mode + remote flag
workSchedules🟢Full-time / part-time
description / aiSummary🟢Short description + AI summary
descriptionFull🟡Long description (with scrapeDetails)

💰 Salary

FieldCoverageDescription
salaryText🟡Raw salary text (Pracuj hides pay on many offers)
salaryMin / salaryMax🟡Parsed numeric band
salaryCurrency / salaryPeriod / salaryGrossNet🟡Currency, period, gross/net

🏢 Company & location

FieldCoverageDescription
companyName / companyId🟢Employer
companyLogoUrl / companyProfileUrl🟢Logo + profile
locations🟢All cities the role is posted in
latitude / longitude🟡Coordinates of the primary location
isWholePoland🟢Nationwide flag

🔗 Meta

FieldCoverageDescription
offerId / groupId🟢Stable identifiers
publishedAt / expiresAt🟢Dates
url / allOfferUrls🟢Apply link(s)
isSuperOffer / isOneClickApply🟢Promotion / quick-apply flags

🔎 Sample searches

GoalHow
🐍 Python jobs nationwidekeywords: ["python"]
🏙️ Roles in one citylocation: "wrocław"
🏠 Remote onlyworkModes: ["remote"]
💰 Only offers with paysalaryOnly: true
🆕 Posted this weekpostedWithinDays: "7"
🧑‍💼 Senior + B2BseniorityLevels: ["senior"], contractTypes: ["b2b"]

🔌 Integrations & automation

  • Google Sheets / Excel — one-click export or scheduled sync.
  • Airtable, Notion, BI tools — via Apify integrations or webhooks.
  • Zapier / Make — trigger flows on new matching offers.
  • API & webhooks — pull the dataset into your ATS, CRM or warehouse.
  • Schedules — run daily to track new postings and salary trends.

❓ FAQ

Which offers can I get? Any job on Pracuj.pl — search by keyword and optionally a city and filters. A busy keyword returns thousands of offers.

Do I get salaries? When the employer publishes pay, yes — parsed into salaryMin, salaryMax, currency, period and gross/net. Pracuj hides pay on many listings, so expect salary on a subset of offers (use salaryOnly: true to keep only those).

Do I get every location? Yes — a role posted in several cities returns all of them in locations, with coordinates for the primary one.

Can I filter by contract, work mode or seniority? Yes, all combinable — plus salary-only and "posted within N days".

Do I need proxies? Datacenter proxies are used by default (fast and low-cost) and the Actor auto-escalates to Polish residential only if a block is detected. You can also pin your own proxy.

How many results can I get? Set maxItems (0 = unlimited). Pagination pulls 50 offers per page until your limit or the result set is exhausted.

In what formats can I export? JSON, CSV, Excel, HTML, plus the Apify API and integrations.


💡 Tips

  • Start with one keyword and maxItems: 150 to preview, then scale up.
  • Use salaryOnly: true for salary-benchmarking datasets.
  • Combine workModes: ["remote"] with a keyword to build a remote-jobs feed.
  • Run on a schedule and de-duplicate on offerId to capture only new postings.
  • Leave scrapeDetails off unless you need the long description — the search feed is already rich.

⚠️ Limitations & responsible use

  • Salary and some fields depend on what each employer publishes.
  • Listings are live and change constantly; a run is a snapshot at that moment.
  • Coordinates are provided for the primary location when available.
  • Use the data responsibly and in line with applicable laws and the source's terms. This tool is intended for recruitment, market research and job aggregation.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Pracuj.pl or Grupa Pracuj. All trademarks are the property of their respective owners.

Turn Poland's biggest job board into structured data in seconds. Enter a keyword, press Start. 🇵🇱