APEC France Jobs Scraper
Pricing
from $0.90 / 1,000 results
APEC France Jobs Scraper
[💰 $0.9 / 1K] Extract executive and cadre-level job listings from APEC.fr — France's national jobs board. Search by keyword, location, or department; filter by contract type, experience, and salary. Returns title, company, salary, full description, contract type, and application link per job.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
Pull executive and cadre-level job listings from APEC.fr at scale — French job titles, hiring companies, salary ranges, contract codes, experience buckets, telework arrangements, full HTML and plain-text descriptions, application links, and APEC reference numbers for every open position. Built for recruiters, talent acquisition platforms, ATS and CRM tools, and market-research analysts who need fresh French executive job-market data without manually paging through APEC's search UI.
Why This Scraper?
- 162-entry French location lookup — paste
Île-de-France,Bouches-du-Rhône,13, orMarseilleand the actor resolves it to APEC's internal nomenclature. Covers all 13 metropolitan régions, all 96 départements, 13 DROM-COM territories, and 28 of France's largest metropolitan cities — accent-folded soile-de-franceandÎle-de-Franceboth work. - Four contract types wired to APEC's official codes — CDI (permanent), CDD (fixed-term), Stage (internship), and Alternance (apprenticeship), each mapped to the exact
idNomenclatureAPEC's search uses. - Three telework levels, separately filterable — full remote (
Télétravail total), hybrid (Télétravail partiel), and on-site only (Sur site). Surface remote-friendly cadre roles in one query. - Four experience buckets aligned to APEC's cadre nomenclature — Junior (0–3 years), Mid-level (1–7 years), Senior (7+ years), and Expert/Director.
- EUR salary floor with auto-conversion to APEC's k€ filter — type
50000and the actor talks to APEC in its native unit, paired with a no-upper-bound sentinel sominSalary: 50000returns every listing paying €50k+. - Paste apec.fr search URLs directly — every facet you tweak in your browser (
motsCles,typesContrat,niveauxExperience,typesTeletravail,lieux,salaireMinimum) is parsed automatically. Build the search visually, copy the URL, run the actor. - 22 fields per job — title, company, French location string + département + région, salary range, contract code, experience bucket, telework level, publication date, applyLink, full HTML and plain-text descriptions, company description, industry sector, named competences, scrape timestamp, and the APEC reference number.
- Up to 50 000 results per run — single
maxResultscap with built-in pagination across APEC's full corpus, no dual-knob configuration to mis-set.
Use Cases
Recruitment Intelligence
- Track competitor hiring volume by company, sector, and région
- Detect headcount-growth signals from new senior cadre openings
- Map which French firms are hiring abroad versus domestically
- Monitor specific employers for new postings on a daily cadence
Salary Benchmarking
- Build EUR salary distributions by région, contract type, and experience bucket
- Compare CDI vs. CDD pay ranges in target sectors
- Quantify the remote-work premium across
Télétravail totalversusSur site - Benchmark advertised salary ranges against your own offers
French Market Research
- Map executive job-market trends across the 13 régions
- Identify hot sectors by tracking
industrydistribution over time - Surface emerging skills via the
competencestag analysis - Monitor cadre demand in specific départements
Lead Generation & Sourcing
- Build lists of French companies actively hiring in target sectors
- Feed an ATS or CRM with fresh APEC openings every morning
- Identify recruiting agencies posting on behalf of confidential clients
- Discover hiring contacts via the application links on each listing
Aggregator & Dataset Building
- Power French-language jobs aggregator sites with structured APEC data
- Build training datasets for NLP models on French executive job descriptions
- Cross-reference APEC postings with LinkedIn, Indeed, or your internal pipeline
- Maintain an always-fresh inventory of
cadre-level vacancies in France
Getting Started
Minimal Search
Just a keyword and a row cap:
{"keyword": "ingénieur logiciel","maxResults": 100}
Multi-Filter Search
CDI permanent contracts in Paris with full remote and €50k+ salary:
{"keyword": "data scientist","location": "Paris","contractTypes": ["CDI"],"teleworkLevels": ["full"],"minSalary": 50000,"maxResults": 200}
Region-Wide Senior Search
Surface senior cadre roles across an entire région using the département code:
{"keyword": "directeur","department": "75","experienceLevels": ["7plus", "senior"],"contractTypes": ["CDI"],"maxResults": 500}
Paste APEC Search URLs
Build the search visually on apec.fr, then drop the URL in:
{"searchUrls": ["https://www.apec.fr/candidat/recherche-emploi.html?motsCles=chef%20de%20projet&typesContrat=101888&typesTeletravail=20767&lieux=711"],"maxResults": 250}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | string[] | [] | Paste one or more APEC search URLs directly from your browser. Use this when you've already built a complex filter set in the APEC UI and want to copy the URL in. When provided, the structured filters below are ignored. |
keyword | string | "ingénieur" | Job title, role, or skill keywords (e.g. "ingénieur logiciel", "chef de projet", "data scientist"). French preferred — APEC is a French site. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
location | string | null | City or region name (e.g. "Paris", "Lyon", "Île-de-France", "Toulouse"). When set, takes priority over Department. |
department | string | null | French department code, two digits (e.g. "75" Paris, "69" Rhône, "13" Bouches-du-Rhône, "92" Hauts-de-Seine). Ignored when Location is set. |
contractTypes | string[] | [] | Only include jobs matching these contract types. Empty = all types. Options: CDI (permanent contract), CDD (fixed-term contract), Internship (Stage), Apprenticeship (Alternance). |
experienceLevels | string[] | [] | Only include jobs matching these experience levels. Empty = all levels. Options: Junior (0-3 years), Mid-level (1-7 years), Senior (7+ years), Expert / Director. |
teleworkLevels | string[] | [] | Only include jobs offering these telework arrangements. Empty = all. Options: Full remote (Télétravail total), Hybrid / Partial (Télétravail partiel), On-site only (Sur site). |
minSalary | integer | null | Only include jobs with an annual salary at or above this amount, in euros (e.g. 45000 for 45 k€). Listings without a salary disclosure may still appear — APEC's filter is inclusive of unspecified salaries. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Hard cap on total job rows returned across all sources. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal upper bound of 50,000 still applies to prevent runaway pagination). The actor stops requesting new pages once this number is hit but keeps the full last page even if it slightly overshoots. |
Output
One row per job listing. Flat schema, French-language values preserved.
{"id": "178206207W","title": "Directeur de projet Hydraulique urbaine confirmé F/H","company": "L'USINE NOUVELLE","location": "Paris 01 - 75","department": "75","region": null,"salary": "60 - 75 k€","salaryMin": 60000,"salaryMax": 75000,"contractType": "CDI","experienceLevel": "Minimum 7 ans","telework": "Télétravail partiel possible","publishedAt": "2026-02-20T05:17:10Z","descriptionHtml": "<p>Au sein de notre direction technique...</p>","descriptionText": "Au sein de notre direction technique...","applyLink": "https://example.com/apply","url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/detail-offre/178206207W","companyDescription": "Premier média B2B français...","companySize": null,"industry": "Édition / Presse","competences": ["Hydraulique", "Gestion de projet", "Conception"],"scrapedAt": "2026-05-08T12:34:56Z"}
Core Fields
| Field | Type | Description |
|---|---|---|
id | string | APEC offer reference (e.g. "178206207W") |
title | string | Job title in French |
url | string | APEC detail page URL |
publishedAt | string | ISO 8601 publication timestamp |
scrapedAt | string | ISO 8601 extraction timestamp |
applyLink | string | null | External application URL when APEC links externally |
Location
| Field | Type | Description |
|---|---|---|
location | string | Job location text as displayed by APEC (e.g. "Paris 01 - 75", "Lyon - 69") |
department | string | French département code parsed from the listing (e.g. "75", "69") |
region | string | null | Région name when available |
Compensation & Contract
| Field | Type | Description |
|---|---|---|
salary | string | null | Salary text as displayed by APEC (e.g. "45 - 55 k€", "À négocier") |
salaryMin | integer | null | Parsed minimum annual salary in EUR — best-effort, null when freeform |
salaryMax | integer | null | Parsed maximum annual salary in EUR — best-effort, null when freeform |
contractType | string | "CDI", "CDD", "Stage", or "Alternance" |
experienceLevel | string | null | Required experience as labelled by APEC (e.g. "Minimum 5 ans", "Tous niveaux d'expérience") |
telework | string | null | Telework arrangement (e.g. "Télétravail total possible", "Télétravail partiel possible", "Pas de télétravail autorisé") |
Company & Description
| Field | Type | Description |
|---|---|---|
company | string | null | Recruiting company name (or recruiter name when the employer is anonymized) |
companyDescription | string | null | Company blurb when shown |
companySize | string | null | Company size band — APEC rarely exposes this; usually null |
industry | string | null | Industry / sector classification |
competences | string[] | null | Skills and competencies tagged on the listing (typically up to 40 entries when APEC tags any) |
descriptionHtml | string | null | Full job description with HTML formatting preserved |
descriptionText | string | Cleaned plain-text job description |
Tips for Best Results
- Start with a tight
maxResults. Set 25–50 on your first run to verify the filter combination matches what you expect, then scale up. - Use the département code for tricky locations. Smaller cities and suburbs that aren't in the 28-city alias list will resolve cleanly with their two-digit département code (
13for Marseille area,33for Bordeaux,06for Nice). - Combine
experienceLevels=seniorwithteleworkLevels=fullto surface remote senior cadre roles — one of the strongest signals of a forward-looking employer in the French market. - APEC's experience buckets are pre-grouped —
1to7aligns with APEC's3-5 ansfacet and7pluswith6-9 ans. If you need an exact range, post-filter onexperienceLeveltext in your downstream pipeline. - Salary is in EUR on input, k€ on display — type
45000to mean €45k. APEC publishes some salaries as free-text ("À négocier","Selon profil"); those rows still appear unless you add aminSalaryfilter, which excludes them. searchUrlsoverrides every structured filter. Build the perfect search on apec.fr, copy the URL, paste it in. The actor parsesmotsCles,typesContrat,niveauxExperience,typesTeletravail,lieux, andsalaireMinimumstraight from the URL.- For zero-result inputs the actor exits cleanly — the run's status message lists the exact keyword and filter combination, so you can copy-paste, broaden one filter, and rerun.
Pricing
$0.90 per 1,000 results — flat pay-per-result, billed only on rows actually delivered to your dataset.
| Results | Estimated Cost |
|---|---|
| 100 | $0.09 |
| 1,000 | $0.90 |
| 10,000 | $9.00 |
| 100,000 | $90.00 |
A "result" is any job-listing row in the output dataset. No compute charges — you only pay per result returned.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor collects job listings from APEC's public candidate search at apec.fr. Users are responsible for complying with applicable laws, APEC's Terms of Service, and the French CNIL (Commission nationale de l'informatique et des libertés) guidance on personal-data handling — particularly when company contacts or recruiter names appear in the output. Do not use extracted data for spam, harassment, candidate poaching that violates contractual non-solicit clauses, or any illegal purpose.