Poland IT Jobs Scraper: Tech Jobs & Developer Jobs, 3 Boards avatar

Poland IT Jobs Scraper: Tech Jobs & Developer Jobs, 3 Boards

Pricing

from $1.10 / 1,000 job scrapeds

Go to Apify Store
Poland IT Jobs Scraper: Tech Jobs & Developer Jobs, 3 Boards

Poland IT Jobs Scraper: Tech Jobs & Developer Jobs, 3 Boards

Scrape Poland IT jobs, tech jobs and developer jobs from justjoin.it, pracuj.pl and NoFluffJobs in one run. One actor, one normalized schema, parsed salaries, cross-board dedup. A job scraper for salary benchmarks and recruiting. Pay-per-event.

Pricing

from $1.10 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Atlas Dataworks

Atlas Dataworks

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

4 days ago

Last modified

Share

Poland IT Jobs Scraper: Tech Jobs & Developer Jobs from justjoin.it, pracuj.pl, NoFluffJobs

Scrape IT jobs, tech jobs and developer jobs in Poland from the three job boards that matter, justjoin.it, it.pracuj.pl and nofluffjobs.com, in a single run. This job scraper returns every job offer in one normalized schema, with parsed salaries and cross-board deduplication. $1.50 per 1,000 jobs, and you pay only for jobs delivered.

What does this Poland jobs scraper do?

  • Reads three boards in one run: justjoin.it, the IT section of pracuj.pl and NoFluffJobs. Pick any of them.
  • Parses salaries from each board's own format into {min, max, currency, period, gross}, so "13 000–15 000 zł / mies." and a NoFluffJobs salary object land in the same fields.
  • Merges duplicates across boards: a job posted on two boards comes back once, with every board and URL it appeared on.
  • Normalizes the rest: company, locations, remote, hybrid or onsite, seniority, contract types (B2B, permanent), tech stack, posted and expiry dates.
  • Adds full job descriptions when you switch on Fetch full details (justjoin.it and NoFluffJobs).

Who uses it

  • Salary benchmarking. Median salary by role, seniority and contract type in the Polish IT market, refreshed on a schedule.
  • Recruiters and staffing agencies. Which companies are hiring for which stacks, and where, in one feed instead of three.
  • Job-market analytics and HR tech. Demand by technology over time from the three main boards.
  • Job boards and aggregators. One normalized feed to build on.
  • AI agents. Call it as an MCP tool and get typed JSON back (see below).

How much does it cost to scrape Polish IT jobs?

Pay per event: you pay per job delivered (job-scraped, $0.0015), plus $0.005 per job when you ask for its full description (job-detail), not for run time, proxies or compute.

What you scrapeJobsCost
The prefilled run (20 per board, three boards)up to 60up to $0.09
1,000 jobs1,000$1.50
1,000 jobs, each with its full description1,000$6.50 ($1.50 + $5.00)

The table shows the Free-plan price. On Apify's paid plans each job costs less: $1.40 per 1,000 on Bronze, $1.25 on Silver, $1.10 on Gold and above, and full descriptions $4.50, $4.00 and $3.50.

Set Budget cap (USD) and the run stops at it: it delivers what fits, tells you how much of the result set that was, and never charges past the cap.

How to scrape IT jobs in Poland

  1. Click Try for free (or Start). The input is prefilled with all three boards and 20 jobs per board, so one click returns data.
  2. Add a keyword (python, data engineer, devops) and raise the per-board limit.
  3. Run it, then download the results as JSON, CSV, Excel, XML or HTML, or read them through the Apify API, a schedule, or an integration (Make, Zapier, n8n, Google Sheets, webhooks).

Why this Poland jobs scraper

  • 3 boards, 1 schema. Every existing scraper covers a single board with its own field names. This one returns identical records regardless of source, so your pipeline has exactly one shape to handle.
  • Salary normalization. "13 000–15 000 zł / mies. (zal. od umowy)", NoFluffJobs salary objects, and schema.org baseSalary blocks all become {min, max, currency, period, gross}. Currency is recorded as published, no FX guessing.
  • Cross-board dedup. The same job posted on two or three boards becomes one record with a sources[] array listing every board and URL it appeared on.
  • Freshness. Runs read the boards live; postedAt / expiresAt come from the boards themselves.

Output schema

One record per job, pushed to the default dataset:

FieldTypeNotes
sourcejustjoin | pracuj | nofluffjobsBoard the record came from (first board, if merged)
sourceUrlstringCanonical offer URL
externalIdstringBoard-native id / slug
titlestringJob title
companystringEmployer name
locations{city?, country?}[]All named workplaces; country normalized to ISO alpha-2 (best effort, unrecognized values pass through as published)
remoteremote | hybrid | onsite | unknownNormalized work mode
senioritystring?junior / mid / senior / expert / manager / intern when derivable
contractTypesstring[]?e.g. b2b, permanent, mandate
salary{min?, max?, currency, period, gross?}?Only when the board discloses it; one-sided offers ("od 8 000 zł") keep only the disclosed bound
techStackstring[]?Technologies named by the board
postedAt / expiresAtISO date?As published
descriptionstring?Full description, only with Fetch full details
scrapedAtISO dateRun timestamp
sources{source, sourceUrl}[]?Present when boards were merged by dedup

Input

{
"boards": ["justjoin", "pracuj", "nofluffjobs"],
"keyword": "python",
"maxJobsPerBoard": 100,
"fetchDetails": false
}
  • keyword: server-side search on NoFluffJobs; title/company/tech-stack match on justjoin.it and pracuj.pl.
  • maxJobsPerBoard: strict per-board cap.
  • fetchDetails: adds full descriptions (justjoin.it JSON-LD, NoFluffJobs detail API) and fires the premium job-detail event.
  • proxyConfiguration: used only for pracuj.pl; the default (Apify datacenter group BUYPROXIES94952) is the cheapest tier that passes.

Pricing (pay-per-event)

EventFiresPrice
job-scrapedper normalized job record delivered$0.0015 ($1.50 / 1,000 jobs) on Free; $1.40 Bronze, $1.25 Silver, $1.10 Gold and above
job-detailper record enriched with a full description$0.005 ($5.00 / 1,000 details) on Free; $4.50 Bronze, $4.00 Silver, $3.50 Gold and above
Actor Startper run, one per GB of memory (the default 2 GB is two), charged by the platform$0.00005 ($0.05 / 1,000 runs)
Resultper record stored, charged by the platform$0.00005 ($0.05 / 1,000 records)

job-detail is charged in addition to job-scraped, not instead of it: a job delivered with its full description costs $0.0065. Details are charged after deduplication, over records actually delivered.

The last two rows are Apify platform events rather than ours. They are small (a 10,000-job run pays about $0.50 across both; a run at the default 2 GB pays two starts, $0.0001) and they are listed here so this table matches the pricing shown on the Store page exactly. Platform usage, compute and proxies, is bundled: there is no separate usage line on your bill.

You pay for delivered records, not runtime. Runs respect your budget cap (maxTotalChargeUsd): when the cap is reached the actor stops delivering, reports how much of the result set was delivered, and never charges past it.

Using it from an AI agent (MCP)

The actor is callable as an MCP tool via Apify's MCP server. Example agent prompt:

Call cee-tech-jobs-scraper with {"keyword": "data engineer", "maxJobsPerBoard": 50} and summarize median salary by seniority.

Or via the API:

curl -X POST "https://api.apify.com/v2/acts/atlasdataworks~cee-tech-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword": "python", "maxJobsPerBoard": 100}'

FAQ

Is it legal to scrape job boards? The actor reads public job listings that the boards show to any visitor without a login, and it collects job and company data, not personal profiles. Check the boards' terms for your own use of the data.

Does it cover all of pracuj.pl? It covers the IT section, it.pracuj.pl. Jobs outside IT are not in scope.

Why did a keyword run return fewer jobs than my limit? justjoin.it and pracuj.pl filter the keyword on our side after reading their listing pages, so a narrow keyword can return fewer jobs than the per-board limit. NoFluffJobs searches on its own side and has no such limit.

Are salaries gross or net? As published: gross is set only when the board says brutto or netto. B2B rates carry no gross or net flag by nature. Currency is kept as published (almost always PLN).

Can I get only new jobs each day? Schedule the actor and compare on externalId and sources: each record carries the board's own id and its posted date.

Also from Atlas DataWorks

Honest limits

  • justjoin.it depth: one listing page yields ~100 offers per run (the listing is an infinite-scroll app). Enough for fresh-offers monitoring; not a full-board dump.
  • pracuj.pl descriptions: listing-level data only in this version; full pracuj descriptions are on the roadmap.
  • Dedup key is normalized company+title, matched across boards. Two consequences to know about: (a) false negatives: the same employer often spells its name differently per board ("Acme" vs "Acme Sp. z o.o."), and those records will NOT merge; (b) over-merges: distinct openings sharing both company and title (e.g. the same role posted separately per city) merge into one record, with every posting's URL kept in sources[] and all locations unioned. sources[] can therefore also list the same board twice.
  • Keyword runs on pracuj.pl and justjoin.it filter client-side (title/company/tech match) after fetching listing pages, so a keyword run can return fewer than maxJobsPerBoard records from those boards even when more matches exist deeper in the listing. NoFluffJobs applies the keyword server-side and does not have this limit.
  • Salary gross is only set when the board says brutto/netto explicitly; B2B rates carry no gross/net flag by nature.
  • No FX conversion by design: currency is reported as published (almost always PLN).
  • Boards change their markup; the pracuj extractor has a built-in DOM fallback, but a board redesign can still degrade a run. Scheduled test runs guard freshness.