France Travail Scraper — French National Job Listings
Pricing
from $2.00 / 1,000 result scrapeds
France Travail Scraper — French National Job Listings
Scrape job listings from francetravail.fr (ex-Pole Emploi) — France's national public job service. Get titles, companies, locations, contract types, and salaries when available across every French region.
Pricing
from $2.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
France Travail Scraper
Scrape job listings from francetravail.fr — France's national public job service (formerly Pole Emploi), the largest job board in France. No login or cookies required.
How to scrape France Travail data
- Go to the France Travail Scraper page on Apify Store.
- Click "Try for free" to open the actor in Apify Console.
- Set your search query (French keyword, e.g.
developpeur,comptable,infirmier). - Optionally narrow to one department (e.g.
75for Paris) and turn on Fetch Full Details for the complete job description and structured salary. - Click "Start" and wait for the run to complete.
- Download your data as JSON, CSV, or Excel from the Dataset tab.
You can also call this actor via the Apify API to integrate France Travail job data into your own applications and workflows.
Why use this actor?
France Travail is the French state employment agency and runs the country's largest public job board — every registered employer in France is required to post openings there, which means far better structural completeness (salary, contract type, working hours) than most commercial job boards. HR tech companies, recruitment agencies, labor market researchers, and job aggregators use this data to track hiring demand, benchmark salaries, and build France-wide job feeds.
This actor reads the public, server-rendered candidat.francetravail.fr search — no JavaScript rendering needed, just plain HTTP with CheerioCrawler. France Travail also runs an official OAuth2 API (francetravail.io), but it requires every user to register their own client_id/client_secret — this actor uses the public website instead so there is no signup friction.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchQuery | String | No | Search keyword in French (e.g. developpeur, comptable). Default: développeur |
department | String | No | French department code (e.g. 75, 69) to narrow results to one region |
fetchDetails | Boolean | No | Visit each job's detail page for the full description and structured salary. Default: false |
maxResults | Integer | No | Maximum number of job listings to return (default: 100) |
proxyConfiguration | Object | No | Proxy settings (default Apify proxy works reliably — no anti-bot on this site) |
Segmenting by department
France Travail caps each search query at roughly 1,000 results (pagination stops returning new items past that depth). For broad keywords with more openings than that, run the actor multiple times with different department codes (e.g. 75, 69, 13, 33...) to cover the whole country. Department codes follow the standard French INSEE numbering (01–95, plus overseas departments).
Fetch Full Details
By default the actor reads only the search results list, which already includes title, company, location, contract type, and a description snippet. Turning on fetchDetails visits each job's individual page to pull the complete job description and, when the employer discloses it, a structured salary range parsed from the page's schema.org JobPosting microdata. This roughly doubles the number of requests per run (one extra request per job), so large runs with fetchDetails on take proportionally longer.
Output
Each result contains:
| Field | Type | Example |
|---|---|---|
title | String | "Développeur Informatique (H/F)" |
company | String | "BRETAGNE SERVICES LOGISTIQUES" |
location | String | "35 - BAIN DE BRETAGNE" |
contractType | String | "CDD - Temps plein" |
salary | String | "3250 - 3500 EUR MONTH" (only when disclosed) |
postedDate | String | "Publié il y a 3 jours" or "2026-07-10" with Fetch Full Details |
url | String | Full job listing URL on France Travail |
description | String | Job description (snippet, or full text with Fetch Full Details) |
scrapedAt | String | "2026-07-13T00:24:55.196Z" |
Example output
{"title": "Comptable Gestionnaire de paie (H/F)","company": "LYCEE DE BONNEFONT","location": "65 - Bagneres de Bigorre","contractType": "CDI - Temps plein","salary": "1900 - 2300 EUR MONTH","postedDate": "2026-07-09","url": "https://candidat.francetravail.fr/offres/recherche/detail/211CNHZ","description": "Le Lycee de Bonnefont propose un poste a 100% de secretaire comptable et gestion administrative...","scrapedAt": "2026-07-13T00:28:50.993Z"}
Cost estimate
This actor uses CheerioCrawler (HTTP-only, no browser), making it very cheap to run. Expect approximately 0.5-1 compute units per 100 results without Fetch Full Details, roughly double that with details on (one extra request per job).
Tips for best results
- Use native French keywords — France Travail is a French site. Search for
developpeurorcomptable, notdeveloperoraccountant. - Segment by department for large keywords — the site caps each query around 1,000 results; use the
departmentinput to cover more ground across multiple runs. - Turn on Fetch Full Details for salary data — list-page cards rarely show pay; salary only appears via the detail page's structured JobPosting microdata.
- Empty input works — running with no input at all defaults to searching
développeurnationwide.
Limitations
- Data is scraped from the public website and may change without notice if France Travail updates their page structure.
- Salary is only present on the source page when the employer chose to disclose it — most listings omit it, which is normal for the French market, not a scraping gap.
- The public search caps results at roughly 1,000 per query; use department segmentation for full national coverage of broad keywords.
- The official francetravail.io OAuth2 API (which some listings partner data flows through) requires per-user credentials and is not used by this actor — see the site's own developer portal if you need that path instead.
Use cases
- Labor market research — track hiring demand and contract-type mix (CDI vs CDD vs interim) across French regions.
- Salary benchmarking — aggregate disclosed salary ranges by role and department.
- Recruitment agency sourcing — feed France's largest public job board into a candidate-matching pipeline.
- Job aggregator feeds — combine France Travail postings with commercial boards for a complete France-wide job feed.
- Regional economic monitoring — compare job posting volume and sector mix department by department.
Related scrapers
This actor is part of Studio Amba's European jobs fleet. Also see:
- HelloWork Scraper — hellowork.com, France's leading commercial job board
- APEC Scraper — apec.fr, France's executive/management job board
Support
Hit a bug or a missing field? Open an issue on the Actor page — we respond fast and ship fixes within 24 hours. Every published scraper in the Studio Amba catalog is monitored daily; broken runs trigger an automatic heal cycle.