OLX.pl Jobs Scraper
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
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
19
Total users
8
Monthly active users
10 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 |
experience | string|null | Experience requirement label, e.g. Wymagane doświadczenie |
remoteRecruitment | string|null | Rekrutacja online when the employer offers online recruitment |
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","experience": "Wymagane doświadczenie","remoteRecruitment": "Rekrutacja online","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
- Push notifications: get new results delivered to Telegram, Discord, Slack, WhatsApp or any webhook the moment a scheduled run finds them
- 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.
Rate this actor
If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.
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