France Travail Job Scraper - French Jobs avatar

France Travail Job Scraper - French Jobs

Pricing

from $3.00 / 1,000 search result scrapeds

Go to Apify Store
France Travail Job Scraper - French Jobs

France Travail Job Scraper - French Jobs

Scrapes job listings from France Travail (formerly Pole Emploi), France's public employment service with 500,000+ active listings. Extract title, company, location, contract type, salary, and full description. Supports multi-query search with deduplication. HTTP-only, 128MB.

Pricing

from $3.00 / 1,000 search result scrapeds

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

1

Bookmarked

19

Total users

4

Monthly active users

6 days ago

Last modified

Share

France Travail Job Scraper

Scrape job listings from France Travail (formerly Pole Emploi), France's public employment service with 500,000+ active job listings. Extract title, company, location, contract type, salary, and full description.

HTTP-only scraper using Cheerio (no browser). Runs at 128MB memory.


Scraper d'offres d'emploi France Travail

Scrapez les offres d'emploi de France Travail (anciennement Pole Emploi), le service public de l'emploi en France avec plus de 500 000 offres actives. Extrayez le titre, l'entreprise, la localisation, le type de contrat, le salaire et la description complete.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client -- Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/france-travail-scraper

Example prompt once connected:

"Use france-travail-scraper to scrape job listings from france travail. Return results as a table."

Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.

Looking for more job data? Check out our other scrapers:

Global

DACH Region

Nordics

UK

Enrich your job data


Features

  • 500,000+ active listings from France's largest public job board
  • Multi-query support -- run multiple search keywords in one execution, deduplicated
  • Title filter -- titleFilter drops non-matching SERP rows before detail fetch (saves cost)
  • Sort by newest or relevance -- sortBy: "newest" (default) maps to France Travail's tri=1; "relevance" maps to tri=0
  • Date filter -- postedWithinDays maps to France Travail's emission param (1, 3, 7, 14, or 31 days)
  • Employment type filter -- employmentType: "FULL_TIME" maps to dureeHebdo=1 (temps plein); "PART_TIME" maps to dureeHebdo=2 (temps partiel)
  • SERP + Detail modes -- fast SERP-only or full detail extraction with salary and remote info
  • French contract types -- CDI, CDD, interim, alternance, stage
  • Remote detection -- detects teletravail (remote work) mentions
  • Salary parsing -- structured min/max from French salary formats (annuel, mensuel, horaire)
  • Location filtering -- filter by department code (75 = Paris, 69 = Lyon, etc.)
  • Low cost -- 128MB memory, HTTP-only

Input Parameters

ParameterTypeDefaultDescription
searchQueriesarray["developpeur"]One or more search keywords. Each keyword runs as a separate search.
searchQuerystring""Single keyword (legacy, backward compatible). Use searchQueries for new integrations.
locationstring""Department code or region code (e.g. 75 for Paris, 69 for Lyon). Empty = all France.
maxResultsPerQueryinteger100Per-keyword result cap (counts post-filter results when titleFilter is active).
maxResultsinteger100Total cap across all queries. Set to 0 for unlimited.
titleFilterstring""Comma-separated title terms (case-insensitive substring OR-match). Applied after SERP fetch, before detail fetch. Non-matching rows are dropped entirely (no billing). Empty = no filter. Example: Développeur, Chef de projet, Ingénieur.
sortByenum"newest"newest = most recent first (tri=1); relevance = France Travail relevance ranking (tri=0).
postedWithinDaysintegerunsetOnly return jobs posted within N days. Rounds up to the nearest discrete France Travail emission value: 1, 3, 7, 14, or 31. Values above 31 disable the filter.
employmentTypeenumunsetFilter by employment type. FULL_TIME = temps plein (dureeHebdo=1); PART_TIME = temps partiel (dureeHebdo=2). INTERNSHIP, TEMPORARY, CONTRACT, TRAINEE have no direct France Travail hours-type mapping and return all hours types.
includeDetailsbooleanfalseFetch detail pages for full description, salary, and remote status. Slower but richer.

postedWithinDays rounding table

France Travail's emission param only accepts discrete day values. Your input is rounded up to the nearest option:

Inputemission paramWindow
11Last 24 hours
2-33Last 3 days
4-77Last week
8-1414Last 2 weeks
15-3131Last month
32+(omitted)All offers

Output Fields

FieldTypeDescription
idstringFrance Travail offer ID
titlestringJob title
companystring/nullHiring company name
locationstringJob location (city, department)
countrystringAlways "FR"
employment_typestring/nullfull-time, part-time, temporary, internship, apprenticeship, or contract
remote_optionstring/nullremote, hybrid, or null
salary_minnumber/nullMinimum salary (EUR)
salary_maxnumber/nullMaximum salary (EUR)
salary_textstring/nullSalary as displayed
description_snippetstring/nullShort description (max 500 chars)
description_fullstring/nullFull description (detail mode only)
posted_atstring/nullPublication date (ISO 8601)
source_urlstringFrance Travail listing URL
source_platformstringAlways "francetravail.fr"
search_querystring/nullThe search keyword that found this job
scraped_atstringScrape timestamp (ISO 8601)

Input Examples

{
"searchQuery": "developpeur",
"maxResults": 50
}

Multi-query with location

{
"searchQueries": ["developpeur", "ingenieur", "data scientist"],
"location": "75",
"maxResults": 200,
"maxResultsPerQuery": 100
}

With full details (salary + description)

{
"searchQueries": ["developpeur python"],
"includeDetails": true,
"maxResults": 50
}
{
"searchQueries": ["Developpeur"],
"sortBy": "newest",
"postedWithinDays": 1,
"employmentType": "FULL_TIME",
"maxResults": 100
}

Title filter -- only senior roles

{
"searchQueries": ["software"],
"titleFilter": "Développeur, Ingénieur, Engineer",
"maxResults": 50
}

Sort by newest

{
"searchQueries": ["ingenieur logiciel"],
"sortBy": "newest",
"maxResults": 100
}

Sort by relevance

{
"searchQueries": ["data scientist"],
"sortBy": "relevance",
"maxResults": 50
}

Precision title filter

Returns only French tech jobs whose title contains "développeur" or "ingénieur" (case-insensitive substring match). Non-matching SERP rows are dropped before the detail-fetch step, so you don't pay for job-detail events on jobs you don't want.

{
"searchQueries": ["informatique", "logiciel"],
"titleFilter": "développeur, ingénieur",
"sortBy": "newest",
"maxResults": 50
}

Example matched titles: "Développeur Full Stack React/Node.js", "Ingénieur Logiciel Embarqué".

Jobs posted in the last week, full-time only

{
"searchQueries": ["chef de projet"],
"sortBy": "newest",
"postedWithinDays": 7,
"employmentType": "FULL_TIME",
"maxResults": 100
}

Pricing

EventPrice (USD)Description
job-start$0.05Per actor run
job-serp-result$0.003Per job listing from search results (post-filter only)
job-detail-result$0.008Per job detail page fetched