Pricing
from $1.50 / 1,000 results
APEC.fr Scraper
Scrape apec.fr for structured French executive job data: titles, companies, salaries, full descriptions & apply URLs. 100k+ listings. No API key required.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
10
Total users
3
Monthly active users
6 days ago
Last modified
Categories
Share
APEC Scraper — France Executive Jobs
Extract structured job listings from apec.fr — France's national agency for executive employment. The go-to board for cadre and management roles across all sectors and regions. Filter by keyword, location, sector, contract type, experience level, and remote work. No API key required.
$1.00 per 1,000 results — you only pay for items pushed to the dataset.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | développeur | Job title or keywords to search for |
location | string | (all France) | City or region, e.g. Paris, Lyon, Bordeaux |
contractType | select | (any) | CDI, CDD, Freelance/Mission, Stage/Alternance |
experienceLevel | select | (any) | Débutant, 1-5 ans, 5-10 ans, 10+ ans |
remoteWork | select | (any) | Partiel, Full, Aucun |
sector | string | (any) | Industry sector keyword, e.g. Informatique, Banque, Industrie |
daysOld | select | (any) | 1, 7, or 30 — only return jobs posted within N days |
maxResults | integer | 5 | Maximum number of listings to return |
fetchDetails | boolean | false | Fetch full job description, skills, and all detail fields |
skipReposts | boolean | false | Skip listings already seen in previous runs |
startUrls | array | (none) | Direct APEC job URLs. Overrides all search filters |
Output fields
Always present
| Field | Type | Description |
|---|---|---|
id | string | APEC internal offer ID |
numeroOffre | string | APEC offer reference, e.g. 178206207W |
url | string | Direct link to the listing on apec.fr |
title | string | Job title |
company | string | null | Hiring company name (null for confidential postings) |
isConfidential | boolean | True if the employer is anonymised |
locationText | string | null | Location as displayed by APEC, e.g. Paris 01 - 75 |
city | string | null | Parsed city name |
department | string | null | French département code, e.g. 75, 69 |
region | string | null | French region name (always null — not provided by APEC API) |
country | string | Country (always France) |
latitude | number | null | Geocoordinate latitude |
longitude | number | null | Geocoordinate longitude |
contractTypeId | integer | null | APEC internal contract type code |
contractType | string | null | Human-readable contract type: CDI, CDD, Freelance/Mission, Stage/Alternance |
remoteWorkId | integer | null | APEC internal remote work code |
remoteWork | string | null | Remote work label: Partiel, Full, Aucun |
sectorId | integer | null | APEC internal sector code |
sector | string | null | Human-readable sector name, e.g. Informatique / Télécoms |
salaryText | string | null | Salary as displayed, e.g. 45-55 k€ annuel |
salaryMin | number | null | Parsed minimum salary in EUR (null if not published) |
salaryMax | number | null | Parsed maximum salary in EUR (null if not published) |
salaryPeriod | string | null | YEAR, MONTH, or HOUR |
currency | string | Always EUR |
publishDate | string | null | Publication date, YYYY-MM-DD (Paris timezone) |
publishDateISO | string | null | Same as publishDate |
summary | string | One-line summary of title, location, and salary |
source | string | Always apec.fr |
scrapedAt | string | ISO 8601 timestamp of scrape |
isRepost | boolean | True if this listing was seen in a previous run |
changeStatus | string | NEW, UPDATED, UNCHANGED, or REAPPEARED across runs |
contentHash | string | MD5 hash of key fields — changes when content changes |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string | null | Full job description as raw HTML |
descriptionText | string | null | Full description as plain text |
descriptionMarkdown | string | null | Full description converted to Markdown |
companyDescription | string | null | Company description section (plain text) |
experienceLevelId | integer | null | APEC internal experience level code |
experienceLevel | string | null | Human-readable level: Débutant, 1-5 ans, 5-10 ans, 10+ ans |
isPartTime | boolean | null | True if the position is part-time |
numberOfPositions | integer | null | Number of open positions for this listing |
jobReference | string | null | Client-side job reference code |
skills | array | Structured skills array — see below |
applyUrl | string | null | Direct application URL (null when employer uses APEC's internal application form) |
applicationMethod | string | null | Application method code from APEC |
firstPublishDateISO | string | null | Date the listing was first published (before reposts) |
Skills array structure (each element):
| Field | Type | Description |
|---|---|---|
label | string | Skill name in French, e.g. Python, Anglais, Docker |
type | string | null | Skill category: SAVOIR_FAIRE, LANGUE, etc. |
level | integer | null | APEC proficiency level code |
Example output record
{"id":"178853125","numeroOffre":"178853125W","url":"https://www.apec.fr/candidat/recherche-emploi.html/emploi/offre-emploi/detail-offre/178853125W","title":"Développeur Python/Django DevOps F/H","company":"AKKODIS FRANCE SAS","companyDescription":"Premier cabinet de conseil en ingénierie et IT...","isConfidential":false,"locationText":"Bordeaux - 33","city":"Bordeaux","department":"33","region":null,"country":"France","latitude":44.8575,"longitude":-0.5734,"contractTypeId":101888,"contractType":"CDI","remoteWorkId":20765,"remoteWork":"Partiel","sectorId":101572,"sector":"Informatique / Télécoms","salaryText":"45-55 k€ annuel","salaryMin":45000,"salaryMax":55000,"salaryPeriod":"YEAR","currency":"EUR","experienceLevelId":20043,"experienceLevel":"1-5 ans","isPartTime":false,"numberOfPositions":1,"jobReference":"JN-022026-7342088333","skills":[{"label":"Python","type":"SAVOIR_FAIRE","level":599734},{"label":"Django","type":"SAVOIR_FAIRE","level":599734},{"label":"Docker","type":"SAVOIR_FAIRE","level":599736},{"label":"Kubernetes","type":"SAVOIR_FAIRE","level":599736},{"label":"Anglais","type":"LANGUE","level":102458}],"applyUrl":"https://www.apec.fr/...","applicationMethod":"URL","description":"<p>La ligne de service Consulting...</p>","descriptionText":"La ligne de service Consulting...","descriptionMarkdown":"La ligne de service Consulting...","publishDate":"2026-06-10","publishDateISO":"2026-06-10","firstPublishDateISO":"2026-06-10","summary":"Développeur Python/Django DevOps F/H — Bordeaux - 33 (45-55 k€ annuel)","source":"apec.fr","scrapedAt":"2026-06-10T15:30:00.000Z","isRepost":false,"originalPublishDate":null,"originalUrl":null,"changeStatus":"NEW","contentHash":"a3f9b2c1d4e5f678"}
Examples
Search for IT roles in Paris:
{"searchQuery":"développeur","location":"Paris","maxResults":100}
CDI finance roles with full details:
{"searchQuery":"analyste financier","contractType":"CDI","sector":"Banque","fetchDetails":true,"maxResults":50}
Full remote senior roles posted in the last 7 days:
{"searchQuery":"chef de projet","remoteWork":"Full","experienceLevel":"5-10 ans","daysOld":"7","maxResults":200}
Scrape specific listings by URL:
{"startUrls":[{"url":"https://www.apec.fr/candidat/recherche-emploi.html/emploi/offre-emploi/detail-offre/178206207W"}],"fetchDetails":true}
Daily incremental feed (schedule daily):
{"searchQuery":"data engineer","daysOld":"1","skipReposts":true,"fetchDetails":true,"maxResults":500}
💰 Pricing
$1.00 per 1,000 results — charged only for items successfully pushed to the dataset.
| Results | Cost |
|---|---|
| 100 | ~$0.10 |
| 1,000 | ~$1.00 |
| 10,000 | ~$10.00 |
| 100,000 | ~$100.00 |
Flat-rate job data subscriptions typically charge $29–$49/month regardless of usage. Pay only for what you need.
Technical details
- Source: apec.fr — APEC public webservices API
- Memory: 512 MB
- Repost storage: KeyValueStore
apec-fr-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl
