Pricing
from $1.19 / 1,000 results
OLX.pl Jobs Scraper
Extract job listings from OLX.pl — Poland's largest job classifieds platform. Salary, contract type, workplace mode, full descriptions. No account required.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
16
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share
Extract job listings from OLX.pl — Poland's largest classifieds platform — including salary, contract type, workplace mode, GPS coordinates, and full job descriptions. No account required.
Why this scraper?
🗺️ Nationwide, regional, city, and radius search
Target all 16 voivodeships, a specific city like Warszawa, Kraków, or Gdańsk, or set a kilometre radius around any city to capture nearby listings.
💰 Structured salary data
Extracts minimum, maximum, currency (PLN), pay period (monthly/hourly), and gross/net flag whenever the employer chooses to display it.
📋 Full job descriptions
Delivers the complete description in HTML, plain text, and Markdown — ready for your pipeline without post-processing.
📍 GPS coordinates
Every listing includes latitude and longitude from OLX's own location data, enabling map visualisations and geo-analytics.
🔄 Cross-run deduplication
A 90-day fingerprint cache detects reposts and marks them with isRepost: true, so scheduled runs never double-count the same listing.
⏱️ Date-range filtering
Use daysOld to build daily or weekly job feeds without processing the entire backlog.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | "" | Keyword(s) to search for, e.g. programista, kierowca, sprzedawca |
region | select | all | Polish voivodeship to filter by, or all for nationwide |
citySlug | string | "" | City name, e.g. Warszawa, Kraków, Gdańsk. Overrides region. Polish characters auto-normalised. |
radiusKm | integer | — | Search radius in km around the city (applies when citySlug is set). OLX values: 5, 10, 15, 25, 50, 75. |
maxResults | integer | 5 | Maximum results to return (1–1,000) |
daysOld | integer | — | Only return jobs posted or refreshed within this many days |
skipReposts | boolean | false | Skip listings already seen in previous runs |
startUrls | array | [] | Specific OLX.pl job search or city URLs to scrape |
Input priority: startUrls → citySlug → query + region. Only the first matching mode runs.
Available regions
dolnoslaskie · kujawsko-pomorskie · lubelskie · lubuskie · lodzkie · malopolskie · mazowieckie · opolskie · podkarpackie · podlaskie · pomorskie · slaskie · swietokrzyskie · warminsko-mazurskie · wielkopolskie · zachodniopomorskie
Output
Each result is saved to the default dataset, sorted newest-first.
| Field | Type | Description |
|---|---|---|
id | string | Unique OLX offer identifier |
url | string | Direct link to the job listing |
title | string | Job title as posted |
descriptionHtml | string|null | Full description in raw HTML |
descriptionText | string|null | Full description as plain text |
descriptionMarkdown | string|null | Full description in Markdown |
publishDate | string | Date posted — YYYY-MM-DD, Warsaw timezone |
publishDateISO | string | ISO 8601 timestamp of original posting |
lastRefreshDate | string | Date of last refresh — YYYY-MM-DD |
lastRefreshDateISO | string | ISO 8601 timestamp of last refresh |
expiresAt | string|null | ISO 8601 expiry timestamp of the listing |
salaryMin | number|null | Minimum salary (null if not disclosed by employer) |
salaryMax | number|null | Maximum salary (null if not disclosed) |
salaryCurrency | string|null | Currency code, typically PLN |
salaryPeriod | string|null | Pay period: MONTH, HOUR, DAY, WEEK, YEAR |
salaryGross | boolean|null | true = gross; false = net; null = not specified |
contractType | string|null | Contract type label, e.g. Umowa o pracę (may be comma-separated for multiple) |
workType | string|null | Pełny etat (full-time) or Część etatu (part-time) |
workplaceType | string|null | Workplace mode label, e.g. Praca zdalna, Praca hybrydowa |
availability | string|null | Availability label, e.g. Elastyczny czas pracy |
city | string|null | City name |
region | string|null | Polish voivodeship name |
latitude | number|null | GPS latitude of the job location |
longitude | number|null | GPS longitude of the job location |
isFeatured | boolean | true if the listing is a promoted or top ad |
categoryId | number|null | OLX category ID (4 = all jobs; subcategories e.g. 2515 = IT) |
companyName | string|null | Employer company name (business accounts only; private postings return null) |
isBusiness | boolean | true if posted by a verified business account |
summary | string|null | First 300 characters of the plain-text description |
source | string | Always olx.pl |
scrapedAt | string | ISO 8601 timestamp of when this item was scraped |
contentHash | string | 16-character MD5 fingerprint for change detection |
isRepost | boolean | true if this listing was seen in a previous run |
originalPublishDate | string|null | ISO timestamp from the first time this listing was seen |
originalUrl | string|null | URL from the first time this listing was seen |
Example output
{"id":"1068495670","url":"https://www.olx.pl/oferta/praca/wewnetrzny-automation-specialist-CID4-ID1ajix8.html","title":"Automation Specialist / Wdrożeniowiec No-code","descriptionHtml":"<p><strong>O firmie</strong></p><p>Sieć klinik stomatologicznych...</p>","descriptionText":"O firmie Sieć klinik stomatologicznych...","descriptionMarkdown":"## O firmie\n\nSieć klinik stomatologicznych...","publishDate":"2026-04-21","publishDateISO":"2026-04-21T16:00:41+02:00","lastRefreshDate":"2026-04-24","lastRefreshDateISO":"2026-04-24T16:02:24+02:00","expiresAt":"2026-05-21T16:00:41+02:00","salaryMin":7000,"salaryMax":9000,"salaryCurrency":"PLN","salaryPeriod":"MONTH","salaryGross":true,"contractType":"Umowa o pracę, Samozatrudnienie","workType":"Pełny etat","workplaceType":"Praca hybrydowa, W siedzibie firmy","availability":"Elastyczny czas pracy","city":"Kalisz","region":"Wielkopolskie","latitude":51.75766,"longitude":18.08934,"isFeatured":false,"categoryId":4,"companyName":null,"isBusiness":true,"summary":"O firmie Sieć klinik stomatologicznych. Realizujemy autorską strategię cyfryzacji...","source":"olx.pl","scrapedAt":"2026-04-24T17:30:00.000Z","contentHash":"a1b2c3d4e5f60001","isRepost":false,"originalPublishDate":null,"originalUrl":null}
Examples
1 — IT jobs in Warszawa:
{"query":"programista","citySlug":"Warszawa","maxResults":200}
2 — Driver jobs within 50 km of Katowice:
{"query":"kierowca","citySlug":"Katowice","radiusKm":50,"maxResults":200}
3 — All jobs in Śląskie (region-wide):
{"region":"slaskie","maxResults":500}
4 — Daily new jobs nationwide, deduplicated:
{"query":"","region":"all","maxResults":1000,"daysOld":1,"skipReposts":true}
5 — Scrape a specific city or category URL:
{"startUrls":[{"url":"https://www.olx.pl/praca/gdansk/"}],"maxResults":200}
6 — IT jobs in Mazowieckie, weekly deduplicated feed:
{"query":"programista","region":"mazowieckie","maxResults":500,"daysOld":7,"skipReposts":true}
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Approximate time |
|---|---|
| 50 results (API mode) | ~10–20 seconds |
| 500 results | ~2–4 minutes |
| 1,000 results | ~4–8 minutes |
Known limitations
- The OLX.pl API exposes a maximum of 1,000 results per keyword + region combination. For broader coverage, combine multiple queries across different keywords or regions.
- Salary data is only present when the employer chooses to display it (approximately 30–40% of listings).
companyNameis only populated for verified business accounts; private postings returnnull.- Results are sorted newest-first by default.
- GPS coordinates are the city-level coordinates provided by OLX, not the precise address.
Technical details
- Source: olx.pl — Poland's largest job classifieds platform, public API
- Memory: 512 MB
- Repost storage: KeyValueStore
olx-pl-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Related scrapers
Other scrapers in our Jobs — Poland collection:
Run it on a schedule
This actor is built for repeat use. Set it to run daily, weekly, or hourly, and the data keeps flowing without you touching it.
- Schedule runs — open the actor, go to Schedules, and pick a cadence. Each run only charges you for the results it returns.
- Connect it to your stack — push results straight to Google Sheets, Slack, a webhook, or your database using Apify Integrations. No glue code needed.
- Pull results via API — every run writes a clean dataset you can fetch with one API call, ready for whatever you build on top of it.
Set it once and it runs on its own.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl
