APEC Jobs Scraper
Pricing
from $5.00 / 1,000 job scrapeds
APEC Jobs Scraper
Scrape APEC.fr French executive (cadre) job postings — title, company, salary, location, contract type, remote work, apply URL. HTTP-only, no login, MCP-ready.
Pricing
from $5.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
APEC Jobs Scraper is an Apify Actor for APEC.fr French executive (cadre) job searches. It accepts free-text keywords and structured filters for recency, salary band, contract type, remote-work policy, and experience level. Each returned record represents one APEC offer and can include the offer ID, public offer number, title, company, confidentiality flag, location, geo coordinates, salary text and parsed salary range, contract type, remote-work policy, description excerpt, published and validated timestamps, low-application flag, sector codes, and the public apply URL. Results are stored in an Apify dataset, so each output record is one job offer that you can read in Apify Console, through the Apify API, or via Apify MCP.
Best fit and connected workflows
Use this Actor when your workflow starts with APEC.fr executive roles and you need structured offer data for search, monitoring, enrichment, or agent-assisted triage.
Good fits include:
- French job search monitoring by keyword, salary, location, contract type, or publication date.
- Executive recruiting workflows that review the public offer URL together with a concise excerpt.
- Market research on French executive hiring by remote-work policy, sector, or publication date.
- AI and automation workflows that read current APEC offers through Apify MCP.
If your next workflow step moves to another board or region, these related Actors connect cleanly to adjacent research briefs:
- Use Ashby Jobs Scraper for workflows centered on Ashby-hosted roles and that board's offer structure when the next workflow needs that Actor's focused input and output contract.
- Use Bayt Jobs Data Scraper for MENA Listings for MENA listings and Bayt-specific sourcing when the next workflow needs that Actor's focused input and output contract.
- Built In Jobs Scraper - Hiring Intelligence Feed for Built In job markets and their listing format.
Practical scenario
Claire is a recruiter building a shortlist for French executive data roles. She starts with data scientist, sets sortBy to date_desc, filters to CDI, and limits the search to offers posted within 7 days. The returned records include the title, company, location, salary text, parsed salary bounds, remote-work policy, and public URL. Claire uses salaryMin, remoteWork, and publishedAt to decide which offers match her briefing, then opens the url field to review the public posting in a browser.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
searchQuery | string | data scientist | French keyword(s) searched on APEC.fr. Searches title and description. Leave empty to browse all active offers. |
maxResults | integer | 50 | Maximum number of job offers to return. APEC caps a single search at about 1000 results. |
sortBy | string | date_desc | relevance, date_desc, or date_asc. |
postedWithinDays | integer | - | Return only offers published within the last N days. |
salaryMin | integer | - | Minimum annual gross salary in EUR. |
salaryMax | integer | - | Maximum annual gross salary in EUR. |
contractTypes | array | - | CDI, CDD, FREELANCE, STAGE, or ALTERNANCE. |
remoteWork | array | - | FULL_REMOTE, HYBRID, OCCASIONAL, or NONE. |
experienceLevel | array | - | JUNIOR, MID, SENIOR, or EXEC. |
proxy | object | {"useApifyProxy":true} | Apify Proxy configuration. Default datacenter proxy is sufficient for APEC public webservices. |
Focused input example
{"searchQuery": "développeur python","maxResults": 25,"sortBy": "date_desc","postedWithinDays": 7,"salaryMin": 50000,"contractTypes": ["CDI"],"remoteWork": ["FULL_REMOTE", "HYBRID"],"experienceLevel": ["MID", "SENIOR"]}
Output
Results are stored in the default dataset, with one JSON record per APEC offer. The overview view highlights the fields most useful for screening: title, company, location, salary text, contract type, remote-work policy, publication date, and public URL. The output schema also exposes a run summary in key-value storage, which includes stats and a sample of the first three records.
| Field | Type | Description |
|---|---|---|
jobId | string | APEC numeric offer ID. |
offerNumber | string | APEC public offer number used in the public URL. |
title | string | Posted job title in French. |
company | string | null | Commercial name of the hiring company. |
isConfidential | boolean | True when APEC hides the hiring company name. |
location | string | null | Free-text French location such as Paris 13 - 75. |
latitude | number | null | Latitude when APEC provides coordinates. |
longitude | number | null | Longitude when APEC provides coordinates. |
salaryText | string | null | Salary range as written by the employer in French. |
salaryMin | number | null | Parsed minimum annual gross salary in EUR. |
salaryMax | number | null | Parsed maximum annual gross salary in EUR. |
contractType | string | null | Mapped APEC contract code. |
contractDurationMonths | number | null | Duration in months for fixed-term contracts. |
remoteWork | string | null | Mapped APEC remote-work code. |
descriptionExcerpt | string | null | First roughly 300 characters of the listing description. |
publishedAt | string | null | Publication timestamp in ISO 8601 format. |
validatedAt | string | null | Validation timestamp in ISO 8601 format. |
lowApplicationCount | boolean | null | APEC flag for offers with few applications so far. |
sectorCode | number | null | APEC internal sector ID. |
sectorParentCode | number | null | Parent sector ID. |
url | string | Public APEC URL for the offer. |
Output example
{"jobId": "178908136","offerNumber": "178908136W","title": "Data Scientist","company": "Exemple Conseil","isConfidential": false,"location": "Paris 13 - 75","latitude": 48.8306,"longitude": 2.3551,"salaryText": "45 - 49 kEUR brut annuel","salaryMin": 45000,"salaryMax": 49000,"contractType": "CDI","contractDurationMonths": 0,"remoteWork": "HYBRID","descriptionExcerpt": "Entreprise en forte croissance recherche un data scientist pour renforcer ses analyses et contribuer a la priorisation des sujets produit.","publishedAt": "2026-06-27T08:15:00.000Z","validatedAt": "2026-06-27T09:02:00.000Z","lowApplicationCount": true,"sectorCode": 12,"sectorParentCode": 1,"url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/detail-offre/178908136W"}
How it works
This Actor uses APEC's public webservices endpoint over HTTP. It builds a search payload from your input, sends the request to APEC, paginates through the returned results, and normalizes each offer into a dataset record.
Implementation facts supplied with the Actor show:
- HTTP-only access.
- APEC public webservices endpoint usage.
- No Standby mode.
- Default memory of 512 MB.
- APEC search results include listing-level fields such as salary text, geo data, contract code, telework code, and dates.
- The public search response includes an excerpt of the job description, while the full offer text stays on the public offer page.
Pricing
This Actor uses Pay per event plus Apify platform usage. Charged events are:
- Actor start
- Job scraped
Job scraped is charged for each APEC offer returned in the dataset. For example, a run that returns fifty offers charges fifty Job scraped events plus one Actor start event. Open the live Pricing tab in Apify Console to review the current event pricing and Apify platform usage details.
Use with AI agents (MCP)
This Actor is usable through Apify MCP for agent workflows that need structured APEC job data.
Precise tool description: query APEC.fr executive offers with keyword and filter inputs, then read the resulting dataset records for title, company, salary, location, contract type, remote-work policy, publication date, and public URL.
Exact Actor identity: khadinakbar/apec-jobs-scraper
Find current APEC executive jobs for a French data team. Search for "data scientist", return the newest 20 offers, keep only CDI roles, and summarize the titles, companies, salary ranges, and public URLs.
Output interpretation:
jobIdandofferNumberidentify each APEC offer.salaryTexttogether withsalaryMinandsalaryMaxsupports compensation review.remoteWorkandcontractTypegroup offers by policy.urlpoints to the public APEC offer page.descriptionExcerptprovides a short triage summary from the search results.- Results come from APEC listing data, so the dataset represents offer-level search output rather than a full detail-page crawl.
- Use
maxResultsto bound the number of returned offers. - Use
postedWithinDaysandsortByto narrow large searches. - Cost scales with the number of returned
Job scrapedevents, so recent-only searches withdate_desckeep agent runs focused when the brief asks for fresh offers.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN || 'YOUR_APIFY_TOKEN',});const run = await client.actor('khadinakbar/apec-jobs-scraper').call({searchQuery: 'directeur financier',maxResults: 10,sortBy: 'date_desc',postedWithinDays: 30,salaryMin: 80000,contractTypes: ['CDI'],});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Best results and outcome guidance
Use a focused search query when the role family is already known, and pair it with one or two filters to keep the dataset aligned with the brief. For monitoring, date_desc with postedWithinDays keeps recent offers at the top. For compensation analysis, combine salaryMin and salaryMax with contractTypes so the returned offers are easier to compare. For broad discovery, leave searchQuery empty and use maxResults to control how many offers are collected in one run.
Design note
I found that the dataset contract requires one record per offer, while the required fields are only jobId, offerNumber, title, and url. I also found that the overview view is built around title, company, location, salaryText, contractType, remoteWork, publishedAt, and url, which makes the listing data the center of this Actor.
FAQ
How is this Actor different from a generic job scraper?
This Actor is scoped to APEC.fr executive offers and exposes APEC-specific fields such as offerNumber, sectorCode, sectorParentCode, lowApplicationCount, and the APEC public URL format.
When should I use searchQuery versus postedWithinDays?
Use searchQuery for role or keyword targeting, and use postedWithinDays when you want a recent-only slice of APEC offers. The two work well together for monitoring.
Can I use this Actor for salary filtering?
Yes. The input includes salaryMin and salaryMax, and the output includes both raw salary text and parsed numeric salary bounds when APEC provides them.
Which Actor should I use for another job board?
If your brief matches another board or region, the related Actors above point to alternatives for Ashby, Bayt, and Built In. Each one fits a different sourcing workflow.
Responsible use
Use the data in line with APEC's terms and applicable data protection rules. The Actor works with publicly accessible APEC search data and returns listing-level information for search and analysis workflows.