Pracuj.pl Scraper
Pricing
$15.00/month + usage
Pracuj.pl Scraper
Automated web scraper for extracting job listings from Pracuj.pl, Poland's leading job portal. This actor collects comprehensive job data including titles, companies, locations, salary information, and detailed job descriptions.
Pricing
$15.00/month + usage
Rating
0.0
(0)
Developer

Paweł
Actor stats
0
Bookmarked
6
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
Pracuj.pl Job Scraper
A fast and efficient Apify Actor for scraping job listings from Pracuj.pl, Poland's leading job search portal. Extract comprehensive job data including salaries, locations, company information, work modes, and detailed job descriptions.
Features
- Flexible Search Options - Use direct URLs or build searches with keyword and location
- Advanced URL Filtering - Apply Pracuj.pl filters via URL parameters (seniority, work mode, contract type, working time)
- Automatic Pagination - Scrape multiple pages automatically with configurable item limits
- Full Job Details - Optional extraction of complete job descriptions, requirements, responsibilities, and benefits
- Salary Information - Capture salary ranges when disclosed
- Work Mode Detection - Automatically extract work mode (remote, hybrid, office, mobile)
- Company Data - Extract company names and profile links
- Text Normalization - Clean formatting with capitalized first letters for all text fields
- Cost-Effective - Minimal compute usage with smart concurrency settings
Input Configuration
The actor accepts the following input parameters:
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
startUrls | Array | Direct URLs to Pracuj.pl search results | No | - |
keyword | String | Job search keyword (e.g., "python developer", "marketing manager") | No | - |
location | String | City or location (e.g., "warszawa", "krakow", "wroclaw") | No | - |
seniorityLevel | Array of Strings | Filter by seniority level - URL param values (e.g., ["1", "2"]) | No | [] |
workMode | Array of Strings | Filter by work mode - URL param values (e.g., ["1", "2"]) | No | [] |
contractType | Array of Strings | Filter by contract type - URL param values (e.g., ["1", "3"]) | No | [] |
workingTime | Array of Strings | Filter by working time - URL param values (e.g., ["1"]) | No | [] |
maxItems | Integer | Maximum items to scrape (0 = unlimited) | No | 100 |
extractFullDetails | Boolean | Extract detailed sections (responsibilities, requirements, benefits) - requires residential proxies! | No | false |
maxConcurrency | Integer | Max parallel requests (1-100) | No | 10 |
minConcurrency | Integer | Min parallel requests (1-100) | No | 1 |
maxRequestRetries | Integer | Max retries for failed requests | No | 3 |
maxRequestsPerMinute | Integer | Max requests per minute | No | 120 |
proxyConfiguration | Object | Proxy settings - required only when extractFullDetails: true | No | - |
How Search & Filters Work
The scraper can work in two modes:
1. Direct URLs (startUrls)
- Provide complete Pracuj.pl URLs with all filters already applied
- Fastest and most reliable method
- Example:
"https://www.pracuj.pl/praca/python;kw?et=1&ct=2"
2. Build from keyword/location + filters
- Provide
keywordand/orlocation(both are optional) - Optionally add filter parameters
- Scraper builds the URL automatically
Available Filter Parameters
Filters can be provided as text values (Polish or English) or numeric URL parameter values. The scraper automatically converts text values to the appropriate URL parameters.
Seniority Level (seniorityLevel)
| Polish | English | URL Value |
|---|---|---|
| praktykant, stażysta | intern, trainee | 1 |
| asystent | assistant | 17 |
| junior, młodszy specjalista | junior | 4 |
| mid, regular, specjalista | mid, specialist | 16 |
| senior, starszy specjalista | senior | 18 |
| ekspert | expert | 5 |
| kierownik, koordynator | manager | 6 |
| menedżer | manager | 7 |
| dyrektor | director | 8 |
| prezes | ceo | 9 |
Contract Type (contractType)
| Polish | English | URL Value |
|---|---|---|
| umowa o pracę, uop | employment contract, permanent | 1 |
| kontrakt b2b, b2b | contract | 3 |
| umowa zlecenie, uz | mandate contract | 5 |
| umowa o dzieło, uod | specific task contract | 6 |
| umowa na zastępstwo | temporary replacement | 13 |
| umowa agencyjna | agency contract | 14 |
| umowa o pracę tymczasową | temporary work | 15 |
| umowa o staż, praktyki | internship | 16 |
Working Time (workingTime)
| Polish | English | URL Value |
|---|---|---|
| pełny etat, full time | full-time, fulltime | 1 |
| część etatu, part time | part-time, parttime | 2 |
| dodatkowa, tymczasowa | additional, temporary | 3 |
Work Mode (workMode)
| Polish | English | URL Value |
|---|---|---|
| stacjonarna, praca stacjonarna, biuro | office, on-site, onsite | 1 |
| hybrydowa, praca hybrydowa | hybrid | 2 |
| zdalna, praca zdalna | remote | 3 |
| mobilna, praca mobilna | mobile | 4 |
Usage Examples:
{"seniorityLevel": ["senior", "mid"],"contractType": ["b2b", "umowa o pracę"],"workMode": ["remote", "hybrid"],"workingTime": ["full-time"]}
Or with numeric values:
{"seniorityLevel": ["18", "16"],"contractType": ["3", "1"],"workMode": ["3", "2"],"workingTime": ["1"]}
Note: Text values are case-insensitive. Both Polish and English are accepted interchangeably.
Example Input - Using Direct URL
{"startUrls": [{"url": "https://www.pracuj.pl/praca/senior%20software%20engineer;kw"}],"maxItems": 50,"extractFullDetails": false}
Example Input - Using Keyword and Filters (Text Values)
{"keyword": "python developer","location": "warszawa","seniorityLevel": ["senior", "mid"],"workMode": ["remote", "hybrid"],"contractType": ["b2b", "umowa o pracę"],"workingTime": ["full-time"],"maxItems": 100,"extractFullDetails": true}
Example Input - Using English Text Values
{"keyword": "software engineer","location": "krakow","seniorityLevel": ["senior", "mid"],"workMode": ["remote"],"contractType": ["contract", "permanent"],"workingTime": ["full-time"],"maxItems": 50,"extractFullDetails": false}
Example Input - Using Numeric URL Values
{"keyword": "data analyst","seniorityLevel": ["18", "16"],"workMode": ["3", "2"],"contractType": ["1"],"maxItems": 200,"extractFullDetails": true}
Output Format
Default Output (extractFullDetails: false)
Each job listing contains comprehensive data extracted from listing pages:
{"jobTitle": "QA Automation Test Engineer","companyName": "PRETIUS SOFTWARE SP. Z O.O.","companyId": 20298218,"companyUrl": "https://pracodawcy.pracuj.pl/company/20298218","location": "Warszawa","locations": ["Warszawa"],"salary": "110–140 zł netto (+ VAT) / godz.","workMode": "Praca zdalna","employmentType": "Kontrakt B2B","seniorityLevel": "Starszy specjalista (Senior)","workingHours": "Pełny etat","publishedDate": "2025-11-18T15:07:00Z","expirationDate": "2025-11-21T22:59:59Z","isFeatured": true,"isRemoteAllowed": true,"aiSummary": "<ul><li>Masz doświadczenie jako <b>QA Automation Test Engineer</b> i znasz narzędzia do automatyzacji testów.</li><li>Posiadasz umiejętność <b>testowania API</b> oraz znajomość języków skryptowych, np. JavaScript i Playwright.</li><li>Pracujesz z <b>CI/CD</b> oraz narzędziami jak Jenkins lub GitLab.</li><li>Cenisz <b>benefity</b> takie jak prywatna opieka medyczna, Multisport oraz elastyczne godziny pracy.</li><li>Chcesz rozwijać i utrzymywać <b>automatyczne testy</b> oraz usprawniać procesy testowania.</li></ul>","jobDescription": "Your responsibilities, Develop and execute automated test scripts using standard tools and frameworks., Perform API testing to validate the functionality, performance, and reliability of our software., Design, implement, and maintain automated...","jobUrl": "https://www.pracuj.pl/praca/qa-automation-test-engineer-warszawa,oferta,1004436512","allOfferUrls": ["https://www.pracuj.pl/praca/qa-automation-test-engineer-warszawa,oferta,1004436512"],"scrapedAt": "2025-11-18T15:10:33.335Z"}
Note: The default mode provides comprehensive job information including AI-generated summaries. Fast, reliable, works without proxies!
Full Details Output (extractFullDetails: true)
When enabled, all data is merged into a single record including detailed sections:
{"jobTitle": "Node.js Developer","companyName": "PRETIUS SOFTWARE SP. Z O.O.","companyId": 20298218,"companyUrl": "https://pracodawcy.pracuj.pl/company/20298218","location": "Rzeszów","locations": ["Rzeszów"],"salary": "150–180 zł netto (+ VAT) / godz.","workMode": "Praca zdalna","employmentType": "Kontrakt B2B","seniorityLevel": "Starszy specjalista (Senior)","workingHours": "Pełny etat","publishedDate": "2025-11-18T15:07:00Z","expirationDate": "2025-11-21T22:59:59Z","isFeatured": false,"isRemoteAllowed": true,"aiSummary": "<ul><li>Masz doświadczenie w budowaniu aplikacji z użyciem <b>Node.js</b>...</li></ul>","jobDescription": "Rozwój modułu zarządzania kartami płatniczymi, budżetami i transakcjami...","responsibilities": ["Rozwój modułu zarządzania kartami płatniczymi, budżetami i transakcjami","Tworzenie nowych funkcjonalności, budowa zupełnie nowego API integracyjnego","Architektura mikroserwisów, 100% cloud w AWS (50+ serwisów)"],"requirementsExpected": ["Doświadczenie w budowaniu aplikacji z użyciem Node","Doświadczenie w pisaniu testów automatycznych","Jęz. angielski na poziomie B2"],"benefits": ["Stawiamy na długofalowe relacje oparte na uczciwych zasadach i rzetelności","Dofinansowanie karty sportowej Multisport i opieki zdrowotnej Medicover","Możliwość pracy w nowoczesnym biurze"],"jobUrl": "https://www.pracuj.pl/praca/node-js-developer-rzeszow,oferta,1004436512","allOfferUrls": ["https://www.pracuj.pl/praca/node-js-developer-rzeszow,oferta,1004436512"],"scrapedAt": "2025-11-18T15:10:33.335Z"}
Output Fields Reference
Always extracted (no proxies needed) with extractFullDetails: false (DEFAULT):
jobTitle- Position titlecompanyName- Employer namecompanyId- Unique company identifiercompanyUrl- Link to company profile on Pracuj.pllocation- Primary job location (e.g., "Warszawa")locations- Array of all locations for multi-location offerssalary- Salary information when disclosed (cleaned - nbsp replaced with spaces)workMode- Work arrangement (e.g., "Praca zdalna", "Praca hybrydowa")employmentType- Contract type (e.g., "Kontrakt B2B", "Umowa o pracę")seniorityLevel- Position level (e.g., "Starszy specjalista (Senior)")workingHours- Working time (e.g., "Pełny etat")publishedDate- ISO 8601 timestamp when postedexpirationDate- ISO 8601 timestamp when offer expiresisFeatured- Boolean indicating promoted/super offer statusisRemoteAllowed- Boolean indicating if remote work is allowedaiSummary- AI-generated HTML summary with highlighted keywords (very comprehensive!)jobDescription- Brief job description text snippetjobUrl- Primary direct URL to the job listingallOfferUrls- Array of all URLs for multi-location grouped offersscrapedAt- ISO 8601 timestamp of scraping time
Additional fields with extractFullDetails: true (REQUIRES RESIDENTIAL PROXIES ⚠️):
These fields are merged into the same record with all basic fields above:
responsibilities- Array of job responsibilities (Twój zakres obowiązków)requirementsExpected- Array of required qualificationsrequirementsOptional- Array of optional qualifications (Mile widziane)benefits- Array of company benefits (To oferujemy)
Notes:
- Fields may be empty strings or arrays if information is not available
- Not all jobs have salary information (~40-60% don't disclose)
- Multi-location offers are grouped - check
locationsandallOfferUrlsarrays - Non-breaking spaces (nbsp) are automatically cleaned from salary field
- The
aiSummaryfield provides comprehensive information for most use cases!
Use Cases
- Job Market Analysis - Analyze salary trends and in-demand skills across Poland
- Career Research - Find job opportunities matching specific criteria
- Recruitment Intelligence - Track competitor hiring patterns and job market trends
- Remote Work Monitoring - Identify companies offering remote and hybrid positions
- Salary Benchmarking - Compare salary ranges across different positions and locations
- Skills Analysis - Identify most requested skills and requirements in your field
- Company Research - Track hiring activity of specific companies
- Location Analysis - Understand job market dynamics in different Polish cities
Performance & Best Practices
Performance Tips
- Use
extractFullDetails: false(default) for fast, cost-effective scraping- Default mode: ~0.5-1 second per listing (listing pages only)
- Full details mode: ~2-3 seconds per listing (visits each job page)
- Default mode is recommended for 99% of use cases
- Set
maxItemsto control the number of jobs scraped and limit run duration - Adjust concurrency carefully:
- Higher concurrency without proxies = guaranteed 429 errors!
- Use specific filters to narrow down results before scraping
- Monitor costs when using
extractFullDetails: truewith proxies
Important Notes
- Pracuj.pl has strict rate limiting - respect it to avoid blocks
- The scraper extracts publicly available data from Pracuj.pl
- Not all job listings have complete information:
- Salary is often not disclosed (~40-60% of listings)
- Some detailed fields may be empty even with
extractFullDetails: true
- The
isFeaturedflag marks promoted/super offer listings - Filter values are Pracuj.pl-specific and may change over time
Related Actors
Check out our other scrapers for Polish e-commerce, automotive, and job market data:
- Pracuj.pl Job Scraper - Extract job listings from Poland's leading job portal
- Empik Product Search Scraper - Search and scrape products from Empik.com
- Fast VIN Decoder - Decode vehicle VIN numbers to get detailed specifications
- Sinsay Scraper - Extract fashion products from Sinsay online store
- Autoplac.pl Scraper - Scrape vehicle listings from Autoplac.pl marketplace
Your Feedback
We are always working to improve Actors' performance. So, if you have any technical feedback about Pracuj.pl Job Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.