Pracuj.pl Scraper

Pracuj.pl Scraper

by trev0n

Automated web scraper for extracting job listings from Pracuj.pl, Poland's leading job portal. This actor collects comprehensive job data including ti...

179 runs
9 users
Try This Actor

Opens on Apify.com

About 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.

What does this actor do?

Pracuj.pl Scraper is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

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 keyword and/or location (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: json { "seniorityLevel": ["senior", "mid"], "contractType": ["b2b", "umowa o pracę"], "workMode": ["remote", "hybrid"], "workingTime": ["full-time"] } Or with numeric values: json { "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 json { "startUrls": [ { "url": "https://www.pracuj.pl/praca/senior%20software%20engineer;kw" } ], "maxItems": 50, "extractFullDetails": false } ### Example Input - Using Keyword and Filters (Text Values) json { "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 json { "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 json { "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: json { "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: json { "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 title - companyName - Employer name - companyId - Unique company identifier - companyUrl - Link to company profile on Pracuj.pl - location - Primary job location (e.g., "Warszawa") - locations - Array of all locations for multi-location offers - salary - 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 posted - expirationDate - ISO 8601 timestamp when offer expires - isFeatured - Boolean indicating promoted/super offer status - isRemoteAllowed - Boolean indicating if remote work is allowed - aiSummary - AI-generated HTML summary with highlighted keywords (very comprehensive!) - jobDescription - Brief job description text snippet - jobUrl - Primary direct URL to the job listing - allOfferUrls - Array of all URLs for multi-location grouped offers - scrapedAt - 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 qualifications - requirementsOptional - 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 locations and allOfferUrls arrays - Non-breaking spaces (nbsp) are automatically cleaned from salary field - The aiSummary field 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 maxItems to 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: true with 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 isFeatured flag 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.

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Pracuj.pl Scraper now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
trev0n
Pricing
Paid
Total Runs
179
Active Users
9
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support