APEC Jobs Scraper - France Cadre Jobs, Salary & Company avatar

APEC Jobs Scraper - France Cadre Jobs, Salary & Company

Pricing

from $1.50 / 1,000 results

Go to Apify Store
APEC Jobs Scraper - France Cadre Jobs, Salary & Company

APEC Jobs Scraper - France Cadre Jobs, Salary & Company

Scrape APEC (apec.fr) France executive and cadre job listings. Extract job title, hiring company, location, salary range, contract type, description, publication date and geo-coordinates by keyword. Export JSON, CSV, Excel for recruitment, salary benchmarking and market research.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

8

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

APEC Jobs Scraper — France Cadre Jobs with Salary, Company, Location & Geo

The most complete APEC job data extractor on Apify. This APEC scraper pulls live executive and cadre job listings from APEC (apec.fr) — France's official job board for managers and professionals — with the job title, hiring company, location, salary range (published on virtually every offer), contract type, full description, publication dates and geo-coordinates. Scrape APEC by keyword with no login and no coding. Built for recruitment, salary benchmarking and labour-market research.

Export every result to JSON, CSV, Excel, or API.

Apify Actor


🔎 Why scrape APEC?

APEC — the Association Pour l'Emploi des Cadres — is France's dedicated job board for cadres: executives, managers, engineers and qualified professionals. It is the reference destination for mid-to-senior white-collar hiring in France, carrying tens of thousands of live offers across every sector and region at any time.

APEC data is uniquely valuable for one reason above all: almost every offer publishes a salary range — a rarity in the French market, where most job boards hide pay entirely. On top of salary, each listing carries the hiring company name and logo, a precise city/department, geo-coordinates, the contract type (CDI, CDD, temporary…) and the full job description. That combination makes APEC data the single richest public source for French executive compensation and hiring intelligence.

Collecting it by hand is painful. APEC's offer feed is a protected JSON API, contract types are returned as numeric codes, employer and latitude/longitude are nested deep in the payload, offers repeat across result pages, and the whole site is geo-locked to France and shielded by an anti-bot layer. This APEC scraper removes all of that friction and hands you one clean, de-duplicated row per job.

Common reasons people scrape APEC:

  • 💶 Build salary benchmarks by role, seniority, city and contract type — using real published pay ranges.
  • 🧑‍💼 Power recruitment and sourcing by monitoring new cadre openings for specific keywords, companies and locations.
  • 📊 Run labour-market research on hiring demand, contract mix (CDI vs CDD) and regional trends for executives.
  • 🏢 Perform competitive intelligence — see which companies are hiring for which roles and at what pay.
  • 📈 Feed job boards and HR products with structured French cadre inventory.
  • 🤖 Assemble clean datasets for analytics and ML (titles, salaries, companies, geo-coordinates).

✨ What this APEC scraper does

The APEC Jobs Scraper takes one or more keywords and returns every matching offer across all result pages, one clean record per job. It talks directly to APEC's offer API, handles the France geo-lock and anti-bot challenge, paginates to the end of the result set and de-duplicates as it goes.

  • ✅ Keyword search — search any number of keywords (e.g. développeur, chef de projet, data scientist); each keyword is searched separately.
  • ✅ Salary on (almost) every job — captures APEC's published salary range, present on the vast majority of offers.
  • ✅ Rich company & location data — hiring company (nom commercial), logo URL, city/department and precise latitude/longitude.
  • ✅ Contract types decoded — APEC's numeric contract codes are mapped to readable labels (CDI, CDD, Travail temporaire, Freelance, Stage, Alternance).
  • ✅ Full descriptions & dates — the job description text plus publication and validation dates.
  • ✅ Automatic pagination — advances through pages of 100 offers until the result set is exhausted or your limit is hit; a single run can collect hundreds to thousands of offers per keyword.
  • ✅ De-duplicated output — every offer is keyed by its APEC offer number, so the same job never lands in your dataset twice.
  • ✅ Sorting — order results by relevance or most recent.
  • ✅ Anti-bot handled — APEC is geo-locked to France and protected by DataDome; the actor clears it automatically (see Pagination & scale below).
  • ✅ Export anywhere — JSON, CSV, Excel, HTML, RSS, or the Apify API and integrations.

🎯 Use cases

  • 💶 Compensation & salary benchmarking — APEC publishes pay on nearly every offer, so you can build French cadre salary datasets by role, city and contract type that are impossible to get elsewhere.
  • 🧑‍💼 Recruitment agencies & sourcers — track live cadre openings for your target roles and monitor which companies are hiring.
  • 📊 Labour-market & economic research — measure hiring demand, contract mix and geographic distribution for executives across France.
  • 🏢 Competitive & market intelligence — see competitors' open roles, seniority levels and advertised pay.
  • 📈 Job-board & ATS products — enrich your platform with structured French executive job inventory.
  • 🧭 Relocation & talent-mobility services — map where cadre demand and pay concentrate by city and department.
  • 🤖 Data science & ML teams — generate clean, labelled datasets of titles, salaries, companies and geo for models.
  • 📰 Journalists & analysts — quantify hiring and pay trends in the French executive market with sourced data.

📥 Input

Configure the actor with a few simple fields. Only the proxy is strictly required (it is pre-filled with a France residential proxy).

FieldTypeDefaultDescription
searchKeywordsarray–Keywords to search on APEC (each searched separately across all result pages). Leave empty to collect the latest cadre offers.
sortByenumrelevanceResult order: relevance or date (most recent).
maxItemsPerSearchinteger200Maximum jobs to collect per keyword. Set 0 for all available.
maxTotalItemsinteger0Global cap across all keywords combined. 0 = no global cap.
proxyConfigurationobjectResidential FRProxy settings. A France residential proxy is required (APEC is geo-locked) and is enabled by default.

Example input:

{
"searchKeywords": ["développeur", "chef de projet", "data scientist"],
"sortBy": "date",
"maxItemsPerSearch": 500,
"maxTotalItems": 0,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "FR"
}
}

📤 Output

One clean, flat record per job. The example below is a real item from a fresh run of the développeur keyword:

{
"jobId": "179444601",
"offerNumber": "179444601W",
"title": "Concepteur développeur (Développeur informatique) F/H",
"company": "CD Consulting",
"location": "Wasquehal - 59",
"salary": "45 - 50 k€ brut annuel",
"contractType": "CDI",
"description": "Notre client, Dickson Constant, est leader mondial des textiles techniques d'extérieur...",
"datePublished": "2026-10-26T07:32:36.000+0000",
"dateValidated": "2026-10-26T07:32:36.000+0000",
"latitude": "50.6751234",
"longitude": "3.1279233",
"confidential": "false",
"remoteId": "",
"logo": "https://www.apec.fr/media_entreprise/718992/logo_CD_CONSULTING_718992_1093927.png",
"url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/detail-offre/179444601W",
"searchKeyword": "développeur",
"scrapedAt": "2026-11-02T00:57:17.000Z"
}

📋 Field reference

FieldDescription
jobIdAPEC internal numeric job ID.
offerNumberAPEC offer number (numeroOffre) — the natural key used for de-duplication.
titleJob title.
company🏢 Hiring company (nom commercial).
logoCompany logo URL (present when the employer has uploaded one).
location📍 City and department, e.g. Bordeaux - 33.
latitude · longitudeGeo-coordinates of the job location (present when APEC geocodes the offer).
salary💶 Salary range, e.g. 45 - 50 k€ brut annuel.
contractTypeContract type label (CDI, CDD, Travail temporaire, Freelance, Stage, Alternance…).
descriptionFull job description text (HTML stripped).
datePublished · dateValidatedPublication and validation dates (ISO 8601).
confidentialWhether the offer is confidential ("true" / "false").
remoteIdAPEC télétravail (remote-work) identifier, present when the offer is tagged for remote work.
urlDirect link to the offer page on APEC.
searchKeywordThe keyword that returned this offer.
scrapedAtExtraction timestamp (ISO 8601).

Field coverage (from a fresh 450-offer run): title, company, location, salary, contractType, description, url, dates and the metadata fields come back on 100% of offers (company ≈ 99.6%). latitude/longitude populate on ~94% of offers, logo on ~63% and remoteId on ~45% — these are present only when APEC has that data for a given offer, so lower fill is expected and honest, not a defect. Export everything to JSON, CSV, Excel, HTML or RSS, or pull it through the Apify API.

🔁 Pagination & scale

The APEC scraper handles pagination end-to-end. Each keyword search calls APEC's offer API in pages of 100 offers, advancing the startIndex cursor and reading the API's own totalCount so it knows exactly when the last page is reached. It keeps requesting pages until it either exhausts the result set or hits your limit — so a single run can collect hundreds to thousands of cadre offers per keyword.

Scale is controlled entirely by the input:

  • maxItemsPerSearch caps how many jobs are collected per keyword (set 0 to collect every available offer for that keyword).
  • maxTotalItems is a global cap across all keywords combined (set 0 for no cap).

Every offer is de-duplicated by its APEC offer number as it streams, so the same job never appears twice — even across overlapping keywords. In a fresh benchmark the actor returned 450 unique offers for développeur in ~21 seconds with 0% duplicates, and a multi-keyword run (chef de projet + data scientist) returned 120 unique offers with the same clean result.

Anti-bot & geo-lock: APEC is geo-locked to France and protected by DataDome. The actor runs through a France residential proxy and uses a real Firefox browser fingerprint: it first establishes a legitimate session (which clears DataDome's transparent challenge and obtains a valid session cookie) and then reuses that session for the offer API. If a request is ever challenged or throttled, the session is automatically rebuilt on a fresh France residential IP with back-off — keeping large, multi-keyword runs reliable.

⚙️ How to use

  1. On Apify Console — open the actor, add one or more keywords, choose Sort by and set Max jobs per keyword (0 for all), then click Start. Jobs stream into your dataset.
  2. Via API — start the actor with the Apify API or a client (Python / JavaScript examples below) and read the dataset when it finishes.
  3. On a schedule — attach an Apify Schedule to re-run daily or hourly and keep a live feed of new cadre offers.
  4. Choose your export — download the dataset as JSON, CSV, Excel, HTML or RSS from the run's Storage tab.
  5. Integrate — push results to Google Sheets, Make, Zapier, n8n, Airbyte, a database or a webhook, or pull them through the Apify API in any language.

Run via API (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchKeywords": ["développeur", "chef de projet"],
"sortBy": "date",
"maxItemsPerSearch": 500,
}
run = client.actor("haketa/apec-jobs-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], "|", item["company"], "|", item["salary"])

Run via API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/apec-jobs-scraper').call({
searchKeywords: ['développeur'],
maxItemsPerSearch: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

💡 Tips

  • Collect everything for a keyword by setting maxItemsPerSearch to 0 — the actor paginates to the last page automatically.
  • Monitor fresh postings by setting sortBy to date and scheduling frequent runs; the first page then holds the newest offers.
  • Fan out across roles by passing many keywords at once — each is searched independently and results are merged and de-duplicated by offer number.
  • Keep the France residential proxy enabled — APEC only responds to French traffic, and the actor relies on it to clear the geo-lock and DataDome challenge.
  • Build salary datasets by exporting to CSV/Excel and splitting the salary string (e.g. 45 - 50 k€ brut annuel) into min/max columns for analysis.
  • Enrich with location using the location field (city - department) plus latitude/longitude for mapping and regional analysis.

❓ FAQ

Is scraping APEC legal? This actor collects publicly available job-listing information — the same content any visitor can see on APEC search pages without logging in. It does not access private data or require an account. You are responsible for using the output lawfully (recruitment, benchmarking, research) and for complying with APEC's Terms and applicable data-protection law (e.g. GDPR).

Does every job include a salary? The large majority do — APEC is one of the very few French boards where employers publish a salary range, and this actor captures it in the salary field. In a fresh 450-offer run, salary was present on 100% of offers.

How many jobs can I collect and how fast? As many as the keyword returns. Set maxItemsPerSearch to 0 and the actor paginates to the last page; common keywords return thousands of offers. A fresh run collected 450 offers in about 21 seconds.

Do I need a proxy or a login? No login — ever. A France residential proxy is required because APEC is geo-locked, and it is enabled by default. No account or credentials are needed.

Is there an API? Yes. The actor runs on the Apify platform, so you can start it and fetch results through the Apify API and official Python/JavaScript clients, or any HTTP client.

Which export formats are supported? JSON, CSV, Excel, HTML and RSS, plus programmatic access via the Apify API and integrations (Google Sheets, Zapier, Make, n8n, Airbyte and more).

How fresh is the data? It is scraped live at run time directly from apec.fr, so every run reflects the offers currently published. Use sortBy: date and a Schedule for a continuously updated feed.

Can I filter by keyword, role or sort order? Yes — pass any number of keywords in searchKeywords and choose relevance or date with sortBy. Each keyword is searched separately and results are de-duplicated across them.

What is a "cadre"? In France, cadre refers to executives, managers, engineers and qualified professionals. APEC is the reference job board for this segment, which is why its data is so valuable for compensation and hiring intelligence.

Why do latitude/longitude or logo sometimes come back empty? Those fields are only populated when APEC itself has that data for an offer (geocoding, uploaded logo, remote-work tag). Core fields like title, company, location, salary and contract type come back on ~100% of offers.

Building a cross-border talent, salary or recruitment dataset? Pair the APEC scraper with these other job-board scrapers:


This actor collects publicly available job-listing information — the same content any visitor can see on APEC search pages without logging in. It does not access private data and does not require any user account.

You are responsible for how you use the data. Please use it for lawful purposes (recruitment, salary benchmarking, market research), respect the source platform's Terms of Service and robots directives, comply with applicable data-protection laws (e.g. GDPR) when handling any personal data, and do not republish scraped content in a way that infringes copyright or database rights.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by APEC. All product names, logos and brands are property of their respective owners.


Ready to build your French cadre dataset? Run the APEC Jobs Scraper and export salary, company, location and geo to JSON, CSV or Excel in minutes.