French Jobs Aggregator — WTTJ, HelloWork, France Travail, APEC avatar

French Jobs Aggregator — WTTJ, HelloWork, France Travail, APEC

Pricing

from $10.00 / 1,000 job offers

Go to Apify Store
French Jobs Aggregator — WTTJ, HelloWork, France Travail, APEC

French Jobs Aggregator — WTTJ, HelloWork, France Travail, APEC

Une recherche, quatre job boards français (Welcome to the Jungle, HelloWork, France Travail, APEC) : offres normalisées (contrat, salaire, lieu géolocalisé, télétravail, date), doublons fusionnés, recherche par ville avec rayon, département ou région ; en option la description complète.

Pricing

from $10.00 / 1,000 job offers

Rating

0.0

(0)

Developer

Cyril Faia

Cyril Faia

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

French Jobs Aggregator — WTTJ, HelloWork, France Travail, APEC, Meteojob, Service public

One search, six French job boards, one clean schema. The Actor queries Welcome to the Jungle (startups and large employers, 90 000+ offers), HelloWork (the largest private board), France Travail (the public employment service, including partner offers), APEC (executive positions), Meteojob and Choisir le service public (public-sector jobs, latest offers per département) with the same keywords, the same place and the same filters, then returns normalised rows: contract type, salary parsed into numbers, remote policy, city with postcode and département, GPS distance from the searched place, publication date, sector, skills, benefits. Offers seen on several boards are merged (alsoOn, alsoOnUrls).

Search around a city with a radius ("Marseille", "Paris 11e", "75011"), by département ("13", "Gironde") or by region ("Île-de-France"), all resolved through the French government geo API. Detail mode opens each HelloWork and France Travail offer for the full description, experience, education, skills and employer size.

Who uses it

  • Recruitment agencies and staffing firms: local market watch per trade and city, competitor postings, salary benchmarks.
  • HR tech, job aggregators, matching platforms: a single French feed instead of four scrapers to maintain.
  • Training organisations and schools: demand per skill and région to steer programmes.
  • Economic development bodies, chambers, journalists: hiring dynamics by territory, contract mix, salaries.
  • AI agents and job-search assistants: "CDI menuisier within 20 km of Marseille published this week, with salary".

Output example

{
"source": "hellowork",
"id": "66618488",
"url": "https://www.hellowork.com/fr-fr/emplois/66618488.html",
"title": "Menuisier Poseur - Menuisière Poseuse Aluminium H/F",
"company": "Temporis Interim",
"city": "Marseille 6e",
"postcode": "13000",
"department": "13",
"region": "Provence-Alpes-Côte d'Azur",
"country": "FR",
"contractType": "interim",
"contractRaw": "Intérim",
"workTime": "Temps plein",
"salaryText": "11,88 - 14 € / heure",
"salaryMin": 11.88,
"salaryMax": 14,
"salaryPeriod": "hour",
"salaryCurrency": "EUR",
"experience": "no requirements",
"sector": "Services aux Entreprises",
"skills": ["Lecture de plan", "Mesures physiques", "Travail en équipe", "Autonomie", "Menuiserie"],
"publishedAt": "2026-09-16",
"validThrough": "2026-10-16",
"description": "Détail du poste\nL'agence d'emploi (CDI, intérim et formation) Temporis MARSEILLE sud 13006 recherche un menuisier-poseur Alu/PVC H/F…",
"descriptionIsFull": true,
"applyUrl": "https://www.hellowork.com/fr-fr/emplois/66618488.html",
"alsoOn": ["francetravail"],
"alsoOnUrls": ["https://candidat.francetravail.fr/offres/recherche/detail/213XNJS"],
"scrapedAt": "2026-09-17T16:05:12.000Z"
}

Welcome to the Jungle rows add remote (full / partial / occasional / no), benefits, education and the offer summary with missions and profile. APEC rows carry the executive salary range and the offer excerpt.

Input

FieldTypeDescription
querystringKeywords (menuisier, développeur python). Empty = everything in the place.
locationstringCity, postcode, département or region.
radiusKmintegerAround a city (default 20).
sourcesstring[]welcometothejungle, hellowork, francetravail, apec, meteojob, servicepublic (default all).
contractTypesstring[]CDI, CDD, interim, alternance, stage, freelance, temps-partiel.
remoteOnlybooleanRemote-flagged offers or mentioning télétravail.
publishedWithinDaysintegerFreshness filter.
maxItemsPerSourceintegerDefault 100.
maxItemsintegerDefault 300, 0 = unlimited.
dedupebooleanMerge the same offer across boards (default true).
fetchDetailsbooleanFull description and profile fields (HelloWork, France Travail, Meteojob).

Examples:

{ "query": "menuisier", "location": "Marseille", "radiusKm": 20, "contractTypes": ["CDI", "interim"], "fetchDetails": true }
{ "query": "data engineer", "location": "Île-de-France", "sources": ["welcometothejungle", "apec"], "remoteOnly": true, "publishedWithinDays": 7 }
{ "query": "", "location": "33", "contractTypes": ["alternance"], "maxItemsPerSource": 300, "maxItems": 0 }

Pricing

Pay per event: one job event per exported offer, one job detail event per offer when fetchDetails is on, plus a small Actor start fee. The boards are read through their public pages and JSON endpoints: no browser, no residential proxies, runs finish in under a minute for a city search.

Notes

  • Public-sector offers come from the recruitment back-end's RSS feeds (the latest offers of the département or region, full description included); keywords are matched locally.
  • Locations are resolved with the French government geo API (geo.api.gouv.fr); Welcome to the Jungle and France Travail get true geo filters, HelloWork gets the place name and distance, APEC is filtered on the offer coordinates.
  • Contract filters are mapped to each board's own vocabulary; rows are also checked after normalisation.
  • Salary numbers are parsed from the boards' text (k€, hourly, monthly, yearly) and kept next to the original text.
  • Data is the boards' public offer content. Employers are named as published; anonymous offers have no company. Use the output in compliance with each board's terms.