Pracuj.pl Search Scraper
Pricing
from $2.99 / 1,000 pracuj.pl job records
Pracuj.pl Search Scraper
Scrape job listings from Pracuj.pl, Poland's largest job board. Extract job titles, companies, locations, salary ranges, contract types, and descriptions for Polish recruitment and job market analysis.
Pricing
from $2.99 / 1,000 pracuj.pl job records
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pracuj.pl public jobs scraper
This Actor retrieves publicly visible Pracuj.pl vacancies with bounded native HTTPS requests. It parses official JobPosting JSON-LD, embedded Pracuj.pl state, and semantic HTML from the search and detail pages, then writes only complete, detail-verified records to the default dataset.
The current local audit run reached the official host but received Cloudflare 403 Just a moment challenge pages. The Actor fails closed in that case: the dataset remains empty and the response receipt is retained in RUN_DIAGNOSTICS. It does not use a reader proxy, Apify proxy, browser automation, fingerprint spoofing, CAPTCHA/WAF bypass, private endpoint, apify call, or cloud push.
Modes
search: one official search page followed by detail enrichment.searchMultiple: bounded, deduplicated searches fromsearchQueriesorqueries.single: one exact official job URL fromjobUrl.multiple: exact official job URLs fromjobUrlsorjobs.startUrls: a mixed list of official search and job URLs.jobUrls: compatibility mode that maps tosingleormultiple.
Every search/detail request is bounded by maxPages, maxCandidates, maxRequests, timeoutMs, and retries. Optional source fields are omitted rather than emitted as null, blank, placeholder, or empty values. Application links are retained only when Pracuj.pl publishes them.
Local verification
From this directory:
npm ci --ignore-scripts --no-audit --no-fundnpm run checknpm testnpx --yes apify-cli validate-schema .actor/input_schema.jsonnpx --yes apify-cli run --purge --input-file INPUT.jsonnpm run validate
The local run writes complete jobs to storage/datasets/default and four evidence objects to storage/key_value_stores/default: RUN_SUMMARY, RUN_DIAGNOSTICS, RUN_METADATA, and RUN_HEALTH.
Dataset contract
Each job contains stable identity and provenance (recordId, jobId, canonical/detail URLs, source receipts, status, and timestamps), company and location data, employment/work-mode/taxonomy values, salary when published, application links, dates, and a rich description with sanitized text, HTML, headings, sections, bullets, and links. The required fields and types are defined in .actor/dataset_schema.json.
Only official HTTPS www.pracuj.pl or pracuj.pl URLs are accepted. A detail record is written only when its numeric posting ID matches the requested URL, its canonical URL is official and verified, the public detail response is successful, and the description is at least 120 characters.
Example inputs
INPUT.json is the primary search run. INPUT-single.json, INPUT-multiple.json, INPUT-search-multiple.json, and INPUT-start-urls.json exercise the supported direct and search modes. The checked-in direct URLs are official-shaped public Pracuj.pl URLs and may be blocked by the target at audit time.
Responsible use
Collect only public job information, respect Pracuj.pl terms and robots directives, keep request budgets conservative, and do not use the Actor to access authenticated pages, bypass access controls, or collect candidate personal data.
Cloud execution and privacy
The Actor supports normal local execution and Apify cloud deployment. Direct requests are used by default. If Pracuj.pl presents an access challenge, enable the optional proxyConfiguration input; sessions rotate across bounded retry attempts, and proxy credentials are never logged or stored.
Every network attempt counts toward maxRequests, including retries. Responses are size-limited, requests are paced, and only identity-verified official detail pages become dataset rows. Public email addresses and Polish phone numbers are recursively removed from parsed and raw-source fields; output rows declare contactDetailsRedacted: true.