France Job Scraper — WTTJ, France Travail and Hellowork avatar

France Job Scraper — WTTJ, France Travail and Hellowork

Pricing

from $2.99 / 1,000 france job records

Go to Apify Store
France Job Scraper — WTTJ, France Travail and Hellowork

France Job Scraper — WTTJ, France Travail and Hellowork

Extract complete public French job records from France Travail and Hellowork with bounded native HTTPS and transparent KVS diagnostics for client-rendered or access-boundary sources.

Pricing

from $2.99 / 1,000 france 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

a day ago

Last modified

Categories

Share

This local Actor collects complete, public job records from France Travail and Hellowork. It uses ordinary native HTTPS requests and Cheerio, verifies each candidate against its public detail page, normalizes public itemprop and JobPosting data, and keeps diagnostics in the key-value store instead of mixing them into the dataset.

Modes

  • search: search the selected source (all by default) with keyword and location.
  • searchMultiple: run the bounded searches array; duplicate source IDs are suppressed.
  • single: fetch one jobUrl.
  • multiple: fetch jobUrls.
  • startUrls: accept official public search or detail URLs and infer the source from each URL.
  • all and details remain compatibility aliases for the old input contract.

The default run is bounded to three records per selected source and one search page. maxItems and maxPages are the only public workload controls; request timeout, request budget, headers, retries, proxy, and fingerprint settings are fixed internally. Search records are buffered and emitted only after successful public detail fetches, completeness checks, and direct-source receipts are available.

Dataset

Every dataset row is a job record with a stable source-prefixed id, canonical public detail URL, title, employer, location, description and sanitized HTML description. Portable aliases (companyName, descriptionText, url, applyUrl, and scrapedAt) support cross-actor consumers without removing the richer source-native names. When exposed by the source it also contains sections, bullets, responsibilities, requirements, qualifications, benefits, skills, compensation, employment type, dates, company URL, application URL, and source metadata. Optional values are omitted rather than written as null, blank, placeholder, or empty-array values.

RUN_SUMMARY and its compatibility alias OUTPUT separate the Apify platform status (SUCCEEDED or FAILED) from dataset resultStatus (COMPLETE, LIMITED, SKIPPED, DEFERRED, or FAILED). RUN_DIAGNOSTICS stores structured request, parsing, identity, completeness, and source-boundary evidence; RUN_REQUEST_RECEIPTS stores HTTP request receipts; and RUN_HEALTH records aggregate run health. These artifacts remain in the key-value store, never as job dataset rows. A confirmed source barrier produces SUCCEEDED / SKIPPED and discards every buffered row. Generic transport failures and ambiguous empty parses are DEFERRED, not blocks or confirmed NO_DATA. If complete rows were stored before a later non-block error, they remain in the dataset and the outcome is SUCCEEDED / LIMITED; a fatal zero-row failure is FAILED / FAILED.

Source boundaries

France Travail and Hellowork currently expose public HTML and detail data in ordinary local requests. WTTJ currently returns a client-rendered public shell without server-rendered job records for the tested search; the Actor records NO_SERVER_RENDERED_DATA and does not call private application APIs, use login, use a proxy, fingerprint evasion, CAPTCHA solving, or bypass an access boundary. A WTTJ detail row is emitted only if the public page itself exposes a complete JobPosting record.

npm run validate reads the default local dataset and KVS artifacts without modifying them; it checks strict job fields, duplicate IDs/URLs, diagnostic rows, status/count reconciliation, and null/blank/empty values. Historical rows and summaries from before the KVS-only receipt/status contract are reported as legacy warnings and are not rewritten.

Use the sources only where their current robots.txt and terms permit the intended collection, respect rate limits, and stop when a site presents an access boundary.