Pracuj.pl Job Scraper — Poland Jobs, Salaries & Companies avatar

Pracuj.pl Job Scraper — Poland Jobs, Salaries & Companies

Pricing

from $1.90 / 1,000 results

Go to Apify Store
Pracuj.pl Job Scraper — Poland Jobs, Salaries & Companies

Pracuj.pl Job Scraper — Poland Jobs, Salaries & Companies

Scrape pracuj.pl, Poland's #1 job board. Export structured job offers with salary (min/max/currency), contract type, work mode, tech stack, requirements, benefits, company data, apply links and AI summaries. Incremental monitoring + notifications built in.

Pricing

from $1.90 / 1,000 results

Rating

0.0

(0)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

5

Monthly active users

14 hours ago

Last modified

Share

What does Pracuj.pl Job Scraper do?

Turn every live pracuj.pl job offer into clean, structured data — in seconds, at scale.

Scrape job offers from pracuj.pl, Poland's #1 job board, and get back everything that matters: structured salary (min / max / currency), contract type, work mode, tech stack, requirements, benefits, company details and the direct apply link. Search by keyword and filters or paste your own pracuj.pl URL — no code required. Export to JSON, CSV, Excel or the API, or pipe it straight into Google Sheets, n8n, Make or an AI agent (MCP).

Why this scraper

  • Fast & low-cost — pure HTTP, no headless browser, so large runs stay cheap.
  • 🧾 Rich, typed records — 30+ structured fields per offer, not raw HTML.
  • ♻️ Cheap to monitor — incremental mode re-scrapes only what changed (see below).
  • 🔔 Notifications built in — Telegram, Slack, Discord, WhatsApp or any webhook.
  • 🤖 AI- & API-ready — compact output, MCP-friendly, one-click integrations.

📚 What data can you extract from Pracuj.pl?

  • Core — id, title, URL, company, location / city / region / country, remote flag, categories, posted & expiration dates.
  • Salary — raw text plus structured salaryFrom / salaryTo / salaryCurrency, time unit and gross-vs-net kind.
  • Details (with Fetch full details) — description (text / HTML / Markdown), responsibilities, required & optional requirements, benefits offered, tech stack (required + optional), required languages, position levels, contract types, work modes and the employer's AI summary.
  • Company & apply — company ID, profile URL, logo, direct-employer flag, direct apply link, reference number and one-click-apply flag.

Every field is present in standard mode (missing values are null); compact mode returns the core fields only, for lean AI/MCP payloads.


✨ Key features

  • 🇵🇱 The whole of pracuj.pl — search across every category and all 16 voivodeships, or paste a ready-made pracuj.pl search URL and let the scraper page through it.
  • 💰 Structured salary — not just the raw text: salaryFrom, salaryTo, salaryCurrency, time unit and gross/net kind, broken out for instant benchmarking.
  • 🧠 Full job details — description (text / HTML / Markdown), responsibilities, required & optional requirements, benefits, tech stack, required languages, IT specializations and the employer's own AI summary of the role.
  • 🏢 Company & apply data — company name, ID, profile URL, logo, direct-employer flag, the direct apply link, reference number and one-click-apply flag.
  • 🎚️ Rich filters — keyword, region, category, seniority, contract type (B2B, employment, mandate…), work mode (remote / hybrid / on-site), work schedule, "posted within" and salary-only.
  • ♻️ Incremental monitoring — schedule a run and get only what changed (NEW / UPDATED / EXPIRED), with reposted-offer detection; unchanged offers are skipped before their page is fetched.
  • 🔔 Notifications — push new offers to Telegram, Slack, Discord, WhatsApp or any webhook (n8n / Make / Zapier).
  • 🤖 AI-ready — compact mode + drop-empty-fields mode keep payloads lean for LLMs and MCP.
  • Fast & cheap — pure HTTP, no headless browser.

🚀 How to scrape Pracuj.pl

  1. Enter a search keyword (e.g. python developer) and/or pick filters — or paste a pracuj.pl URL.
  2. Set Max results and choose whether to fetch full details.
  3. (Optional) Turn on incremental mode and a notification channel, then Schedule it.
  4. Click Start.
  5. Download the data as JSON, CSV or Excel, or pull it from the API.

New to Apify? Create a free account — it comes with monthly credit, no credit card required.


⚙️ Input

Configure it in the visual editor — no code needed — or pass JSON via the API.

FieldWhat it does
queryOne or more keywords; each runs as its own search, merged & de-duplicated.
startUrlsPaste ready-made pracuj.pl search URLs or individual offer URLs.
region / category / positionLevel / contractType / workMode / workScheduleMulti-select filters applied on the site.
postedWithin / withSalaryNarrow to fresh or salaried offers only.
includeDetailsOff = fast listing-only; on = full description, requirements, benefits, structured salary, apply link.
incrementalModeEmit only what changed since the previous run.
maxResultsCap records per run (0 = unlimited).
proxyConfigurationOptional — works without a proxy at typical volumes.

…and 31 inputs in total — the table shows the essentials; the rest cover description formatting (descriptionFormat, descriptionMaxLength), AI/compact output (compact, excludeEmptyFields), notification channels (Telegram / Slack / Discord / webhook) and advanced tuning, all in the visual editor.

Example inputs

{ "query": "python developer", "region": ["mazowieckie"], "maxResults": 100 }
{ "query": "data engineer", "workMode": ["Praca zdalna"], "withSalary": true, "includeDetails": true }
{ "query": "devops", "incrementalMode": true, "stateKey": "devops-pl", "telegramToken": "...", "telegramChatId": "..." }

📤 Output

{
"id": "1004957230",
"title": "Senior Software Engineer (Python, GenAI & Agentic AI)",
"url": "https://www.pracuj.pl/praca/senior-software-engineer-python-genai-agentic-ai-warszawa,oferta,1004957230",
"company": "IN4GE sp. z o.o.",
"companyProfileUrl": "https://pracodawcy.pracuj.pl/company/1074095560",
"location": "Warszawa",
"city": "Warszawa",
"region": "mazowieckie",
"country": "Polska",
"isRemote": true,
"salaryText": "140–170 zł netto (+ VAT) / godz.",
"salaryFrom": 140.0,
"salaryTo": 170.0,
"salaryCurrency": "PLN",
"salaryTimeUnit": "godzinowo",
"salaryKind": "netto (+ VAT)",
"contractTypes": ["Kontrakt B2B"],
"workModes": ["Praca zdalna"],
"positionLevels": ["Starszy specjalista / Starsza specjalistka (senior)"],
"technologies": ["Python"],
"technologiesOptional": ["LangGraph", "LangChain", "Agentic AI", ".NET"],
"requiredLanguages": ["angielski"],
"requirements": ["Minimum 5 lat doświadczenia komercyjnego w obszarze Software Engineering.", "Bardzo dobra znajomość Python."],
"responsibilities": ["Projektowanie, rozwój i utrzymanie rozwiązań opartych o Generative AI, Agentic AI oraz RAG."],
"offered": ["możliwość pracy zdalnej", "elastyczny czas pracy"],
"categories": ["Programowanie", "Architektura"],
"aiSummary": "Masz minimum 5 lat doświadczenia w software engineering oraz praktyczną znajomość Python...",
"applyUrl": "https://www.pracuj.pl/aplikuj/...,oferta,1004957230",
"postedDate": "2026-08-05T15:00:00Z",
"expirationDate": "2026-08-08T21:59:59Z",
"source": "pracuj.pl"
}

Descriptions are also available as HTML and Markdown, not just plain text.


♻️ How to monitor Pracuj.pl with incremental mode

Schedule the actor and turn on incremental mode: each run compares against the last and emits only NEW / UPDATED / EXPIRED offers — unchanged offers are skipped before their page is even fetched, so a daily watch costs a fraction of a full re-scrape.

Daily churnof 1,000 trackedbillable offersyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

The first run seeds the baseline and bills in full; every run after that bills only the delta.


🔔 How to set up Pracuj.pl alerts

Get pinged the moment a matching record appears. Fill in only the channels you want:

ChannelWhat to configure
✈️ TelegramtelegramToken (from @BotFather) + telegramChatId
💬 SlackslackWebhookUrl (Incoming Webhook URL)
🎮 DiscorddiscordWebhookUrl (channel webhook URL)
🪝 WebhookwebhookUrl receives structured JSON — ideal for n8n / Make / Zapier

Credentials are secret inputs — encrypted at rest, masked in the UI and never written to the run log. Every channel fires independently, so a broken channel can't stop the scrape or the others. Pair incremental mode with notify only about changes to hear only about genuinely new records, with no duplicates across runs.

💡 What can you do with Pracuj.pl data?

  • Recruitment & sourcing — build a live feed of open roles and companies hiring in Poland, filtered to your niche.
  • Salary benchmarking — aggregate salaryFrom / salaryTo by role, seniority, region, contract type or tech stack.
  • Lead generation — find companies actively hiring (a strong buying signal) with their profile URLs and apply channels.
  • Market & talent research — track demand for skills, technologies and languages across the Polish market over time.
  • Job boards & aggregators — enrich your own listings with structured pracuj.pl data.

💰 How much does it cost to scrape Pracuj.pl?

This Actor uses Apify's pay-per-event model: a small fee when a run starts, plus a per-record fee. See the Actor's Pricing tab for the current numbers — they're rendered live, so this page never goes stale.

Two things cut your bill further:

  • Site-side filters — records you filtered out are never fetched and never billed.
  • Incremental mode — after the baseline run you pay only for what actually changed.
Daily churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

🔌 Integrations & export

Export to JSON, CSV, Excel or an HTML table, or pull from the REST API and the JavaScript / Python clients. Runs on a schedule, connects to Google Sheets, Slack, Make, Zapier and n8n, and works as an MCP tool for AI agents — compact mode plus descriptionMaxLength keeps token usage small.


🔗 Using the API

Run this Actor from your own code. Example with the Apify Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("corvuslab/pracuj-scraper").call(run_input={
"query": "example",
"maxResults": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

It also works with the JavaScript/TypeScript client, the Apify CLI and the REST API.

❓ FAQ

Do I need to log in or provide a proxy? No — it works out of the box with no proxy. Apify Proxy is available under Advanced if you ever want it for very high-volume runs.

Can I get only new offers on a schedule? Yes — turn on incremental mode and schedule the actor. Each run emits only NEW / UPDATED (and optionally EXPIRED) offers, and can notify your Telegram / Slack / Discord / WhatsApp / webhook.

What formats can I export? JSON, CSV, Excel, HTML table, or via the API.

Is the description available as HTML / Markdown? Yes — choose plain text, HTML, Markdown, or all three, with an optional length cap.

How many offers can I get? As many as the search returns — set maxResults (0 = unlimited). Leave the keyword and location empty to sweep the whole board.

Is scraping this legal? The scraper collects only publicly available job-posting data. You are responsible for how you use it, including compliance with the GDPR and pracuj.pl's terms.


This actor accesses only publicly available data on pracuj.pl. You are responsible for how you use the extracted data — in particular any personal information — and for complying with the site's terms and applicable law (including the GDPR where it applies). Not affiliated with, endorsed by, or sponsored by Grupa Pracuj S.A.


Keywords: pracuj scraper · pracuj.pl scraper · pracuj api · poland jobs scraper · polish job board · praca scraper · oferty pracy scraper · IT jobs poland · salary data poland · recruitment sourcing · lead generation · labour market research · job monitoring · export to CSV/Excel/JSON · no-code job scraper · MCP tool for AI agents