PNet Search Scraper avatar

PNet Search Scraper

Pricing

from $2.99 / 1,000 job details

Go to Apify Store
PNet Search Scraper

PNet Search Scraper

Scrape job listings from PNet.co.za, South Africa's leading job board. Extract job titles, companies, locations, salary ranges, and descriptions for South African recruitment.

Pricing

from $2.99 / 1,000 job details

Rating

0.0

(0)

Developer

Jobs API

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

PNet Jobs Search Scraper

This Actor retrieves complete public PNet South Africa job postings from the official www.pnet.co.za listing and detail pages. It follows the public search redirect, parses server-rendered listing cards, enriches each selected job from its official detail page, and writes only detail-verified records.

Input modes

  • search: one query and location, using PNet's official search route.
  • searchMultiple: several queries with stable job-ID deduplication.
  • single: one exact official PNet detail URL.
  • multiple: several exact official PNet detail URLs.
  • startUrls: mixed official listing/search URLs and detail URLs.
  • jobUrl and jobUrls: compatibility aliases for direct modes.

All URLs must use HTTPS and the PNet host. Search and detail requests are bounded by page, candidate, detail, retry, timeout, and total-request limits.

Output

Job records include the PNet identifier, title, company, location, salary, contract/work type, publication and closing dates, employment metadata, company links, structured address/coordinates, complete description text and HTML, headings, sections, bullets, links, source evidence, canonical identity checks, request receipts, and data-quality coverage. Published email addresses and telephone numbers are redacted from output text and structured fields.

RUN_SUMMARY, OUTPUT_SUMMARY, RUN_DIAGNOSTICS, RUN_METADATA, and RUN_HEALTH are stored in the default key-value store. Incomplete, expired, mismatched, blocked, or otherwise unverifiable pages are reported as structured diagnostics and never emitted as job rows.

Transport policy

The implementation uses ordinary native HTTPS requests and Cheerio in local or Apify cloud runs. It does not use a browser, proxy, fingerprint injection, CAPTCHA/WAF bypass, login, or third-party mirror. Dataset writes are buffered until validation succeeds.

Local verification

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 exact detail fixtures are sampled URLs and can expire on the source; the negative fixture intentionally verifies fail-closed diagnostics for an official-shaped missing URL.