Pracuj.pl Search Scraper avatar

Pracuj.pl Search Scraper

Pricing

from $2.99 / 1,000 pracuj.pl job records

Go to Apify Store
Pracuj.pl Search Scraper

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

Jobs API

Maintained by Community

Actor 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 from searchQueries or queries.
  • single: one exact official job URL from jobUrl.
  • multiple: exact official job URLs from jobUrls or jobs.
  • startUrls: a mixed list of official search and job URLs.
  • jobUrls: compatibility mode that maps to single or multiple.

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-fund
npm run check
npm test
npx --yes apify-cli validate-schema .actor/input_schema.json
npx --yes apify-cli run --purge --input-file INPUT.json
npm 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.