Cadremploi.fr Scraper avatar

Cadremploi.fr Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Cadremploi.fr Scraper

Cadremploi.fr Scraper

Scrape job listings from Cadremploi.fr — France's leading executive and management job board. Full job details including salary range, company info & LLM-ready descriptions in HTML, text and Markdown. daysOld filtering & repost detection. No API key required.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

2

Bookmarked

4

Total users

2

Monthly active users

a day ago

Last modified

Share

Cadremploi.fr Scraper

Extract structured job listings from Cadremploi.fr — France's leading executive and managerial job board with 24,000+ active listings. No API key required. Output includes salary data, company profiles, and job descriptions in three formats (HTML, plain text, Markdown).


Why use this scraper?

  • Structured data from France's #1 executive job board — titles, salaries, company info, location, and contract types in one consistent schema
  • Three description formats — HTML, plain text, and Markdown for direct use in LLM pipelines, RAG applications, and job aggregators
  • Salary extraction — minimum, maximum, currency, and pay period parsed from structured job data where published
  • Cross-run repost detection — 90-day memory flags republished listings across automated runs
  • Flexible input — keyword and location post-filters, contract type selection, age filter, and custom startUrls for targeted scraping
  • Ready for automation — consistent schema, ISO 8601 dates, and flat JSON output compatible with any downstream pipeline

Input parameters

ParameterTypeDescription
startUrlsArrayDirect job URLs or list page URLs from Cadremploi.fr. If omitted, scrapes the latest 50 jobs from the site feed.
keywordsStringPost-filter: only return jobs matching this keyword in title, description, sector, or company name.
locationStringPost-filter: only return jobs in this city or region (e.g. Paris, Lyon, Ile-de-France).
contractTypesArrayFilter by contract type: Full-time, Part-time, Freelance, Temporary, Internship.
maxResultsIntegerMaximum number of results to return. Default: 100.
daysOldIntegerOnly return jobs posted within the last N days. Set to 0 to disable. Default: 30.
skipRepostsBooleanSkip jobs already seen in previous runs. Requires persistent storage across runs. Default: false.
proxyConfigurationObjectProxy settings. Defaults to the built-in proxy pool — no changes needed for standard use.

Input example

{
"keywords": "directeur marketing",
"location": "Paris",
"contractTypes": ["Full-time"],
"maxResults": 200,
"daysOld": 14,
"skipReposts": true
}

Using startUrls

Paste a direct offer URL to scrape a specific listing:

{
"startUrls": [
{ "url": "https://www.cadremploi.fr/emploi/detail_offre?offreId=156513591941990131" }
]
}

Or paste a list page URL to scrape a custom result set:

{
"startUrls": [
{ "url": "https://www.cadremploi.fr/emploi/liste_offres" }
],
"maxResults": 100
}

Output

Each result is a flat JSON object:

FieldTypeDescription
idStringUnique offer ID
urlStringDirect link to the offer
titleStringJob title
companyNameStringHiring company or agency
companyLogoStringCompany logo URL
companyUrlStringCompany website URL
companyDescriptionStringCompany profile text
locationStringFull location (city, region, country)
cityStringCity
postalCodeStringPostal code
regionStringFrench region
countryStringCountry code (FR)
contractTypeStringNormalised contract type
sectorStringIndustry or occupational category
descriptionStringJob description in HTML
descriptionTextStringJob description in plain text
descriptionMarkdownStringJob description in Markdown
salaryMinNumberMinimum annual salary (EUR) — null if not published
salaryMaxNumberMaximum annual salary (EUR) — null if not published
salaryPeriodStringPay period (e.g. YEAR)
salaryCurrencyStringCurrency code (EUR)
experienceRequiredStringRequired experience (e.g. 3 à 5 ans)
directApplyBooleanTrue if application is handled on Cadremploi directly
publishDateISOStringPublish date in ISO 8601 (UTC)
validThroughStringListing expiry date in ISO 8601 (UTC)
isRepostBooleanTrue if seen in a previous run
originalPublishDateStringFirst seen date (reposts only)
originalUrlStringOriginal URL (reposts only)
sourceStringAlways cadremploi.fr
scrapedAtStringScrape timestamp (ISO 8601 UTC)
contentHashStringMD5 fingerprint for deduplication

Output example

{
"id": "156530425728993983",
"url": "https://www.cadremploi.fr/emploi/detail_offre?offreId=156530425728993983",
"title": "Collaborateur comptable H/F",
"companyName": "LEA Recrutement",
"companyLogo": "https://imagedelivery.net/BN-U87wrUjbdYBHZwNH6NA/xxx/public",
"companyUrl": null,
"companyDescription": "Cabinet de recrutement spécialisé...",
"location": "Montpellier, Languedoc-Roussillon, FR",
"city": "Montpellier",
"postalCode": "34000",
"region": "Languedoc-Roussillon",
"country": "FR",
"contractType": "Full-time",
"sector": "Cabinet Comptable - Audit",
"description": "<div class=\"job-description\">...</div>",
"descriptionText": "Nous recherchons un collaborateur comptable...",
"descriptionMarkdown": "Nous recherchons un collaborateur comptable...",
"salaryMin": 32000,
"salaryMax": 38000,
"salaryPeriod": "YEAR",
"salaryCurrency": "EUR",
"experienceRequired": null,
"directApply": true,
"publishDateISO": "2026-03-17T12:00:39.000Z",
"validThrough": "2026-04-17T00:00:00.000Z",
"isRepost": false,
"originalPublishDate": null,
"originalUrl": null,
"source": "cadremploi.fr",
"scrapedAt": "2026-03-30T09:15:22.000Z",
"contentHash": "7ee5c94a3964"
}

Pricing

VolumeCost
1,000 results$1.50
10,000 results$15.00
50,000 results$75.00

Billed at $1.50 per 1,000 results — pay only for what you use. No subscription, no minimum.

Flat-rate job data services typically charge $50–$200/month regardless of usage. At 5,000–20,000 results per month, this actor costs 70–90% less.


Performance

ScenarioSpeedMemory
50 latest jobs (default)~60 seconds256 MB
200 jobs with keyword filter~4 minutes256 MB
1,000 jobs via startUrls~20 minutes256 MB

Known limitations

  • Default discovery is capped at ~50 listings per run — the scraper reads the Cadremploi.fr list page, which displays the 50 most recent jobs server-side. For broader coverage, supply startUrls with specific search result page URLs copied from your browser.
  • Keyword and location filters are applied as post-filters — results are fetched first, then filtered. A keyword filter on a default run of 50 jobs will only match jobs that happen to appear in that set. For targeted keyword searches, use startUrls.
  • Salary is not always publishedsalaryMin and salaryMax are null when the employer has not disclosed salary information.
  • Apply URL not available — Cadremploi's application flow is rendered client-side. Use directApply to determine whether applications are handled on-site or via employer redirect.

Technical details

Built on the Apify platform using server-rendered HTML scraping. Structured data is extracted from schema.org JobPosting JSON-LD blocks present in every offer detail page. No browser automation required — runs at 256 MB memory.


Additional services

Need a custom scraper, scheduled data feed, or integration with your HR platform or ATS? Contact us at info@unfencedgroup.nl — we build and maintain job board scrapers across France, Belgium, the Netherlands, Germany, Switzerland, and the UK.


Built by unfenced-group · All actors