APEC.fr Scraper
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
Unfenced Group
Actor stats
1
Bookmarked
2
Total users
2
Monthly active users
34 minutes ago
Last modified
Categories
Share

Scrape apec.fr — France's leading executive and engineering job board — for structured job data: titles, companies, salaries, locations, full descriptions, and apply URLs. 100,000+ active listings across all French regions. No API key required.
Why this scraper?
🎯 Full structured output
Each listing returns title, company, location (city, department, region, GPS coordinates), salary range, contract type, remote work policy, and experience level — ready to import into your pipeline.
📄 Three description formats
Every job description is delivered as HTML, plain text, and Markdown — use whichever format fits your downstream tool (LLM, CRM, spreadsheet, database).
🔁 Repost detection
Cross-run deduplication (90-day memory) flags jobs reposted by the same employer so your alert pipelines stay noise-free.
⚙️ Flexible filtering
Filter by keyword, location (city or region), contract type (CDI, CDD, Freelance/Mission, Stage/Alternance), experience level, remote work policy, and publication age (24h, 7 days, 30 days).
🔗 Direct apply URLs
The applyUrl field contains the employer's application link when provided — no manual navigation required.
📅 Incremental runs
Use skipReposts with a scheduled run to collect only new listings since your last scrape, keeping storage costs low.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | String | "" | Keyword(s) to search for, e.g. "développeur React" |
location | String | "" | City or region, e.g. "Paris", "Lyon", "Bretagne" |
contractTypes | Array | [] | CDI, CDD, Freelance/Mission, Stage/Alternance |
experienceLevels | Array | [] | Débutant, 1-5 ans, 5-10 ans, 10+ ans |
remoteWork | String | "" | Partiel or Full |
daysOld | Integer | — | Max publication age: 1, 7, or 30 days |
maxResults | Integer | 200 | Maximum listings to return (up to 50,000) |
fetchDetails | Boolean | true | Fetch full description and apply URL from each detail page |
skipReposts | Boolean | false | Skip listings seen in previous runs (90-day TTL) |
startUrls | Array | [] | Specific APEC offer URLs to scrape directly |
Output schema
{"id": "178468168","numeroOffre": "178468168W","url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/offre-emploi/detail-offre/178468168W","title": "Développeur(euse) React / PHP - Senior F/H","company": "CTS Consulting Technical Support","isConfidential": false,"logoUrl": "https://www.apec.fr/media_entreprise/472135/logo_CTS_472135.jpg","locationText": "Aix-en-Provence - 13","city": "Aix-en-Provence","department": "Bouches-du-Rhône","region": "Provence-Alpes-Côte d'Azur","country": "France","latitude": 43.5361176,"longitude": 5.3985946,"contractTypeId": 101888,"remoteWorkId": 20765,"isPartTime": false,"numberOfPositions": 1,"jobReference": "REF-2026-0412","salaryText": "A partir de 45 k€ brut annuel","salaryMin": 45000,"salaryMax": null,"salaryPeriod": "YEAR","currency": "EUR","description": "<p>En tant que Développeur React / PHP...</p>","descriptionText": "En tant que Développeur React / PHP...","descriptionMarkdown": "En tant que Développeur React / PHP...","publishDate": "2026-04-04","publishDateISO": "2026-04-04","firstPublishDateISO": "2026-03-10","applyUrl": "https://example-employer.com/apply/12345","applicationMethod": "SITE_ENTREPRISE","contentHash": "a1b2c3d4e5f60011","summary": "Développeur(euse) React / PHP - Senior F/H — Aix-en-Provence - 13 (A partir de 45 k€ brut annuel)","source": "apec.fr","scrapedAt": "2026-04-04T15:30:00.000Z","isRepost": false,"originalPublishDate": null,"originalUrl": null}
Notes:
contractTypeIdandremoteWorkIdare APEC platform codes (integers). Human-readable labels can be derived from the filter reference table in the Technical details section.salaryMin/salaryMaxare parsed fromsalaryText—nullwhen the employer has not published salary information.applyUrlisnullfor applications processed directly through APEC (in-platform candidature).firstPublishDateISOtracks when the job was first ever published (useful for detecting reposts manually).
Examples
1. All CDI listings in Paris
{"location": "Paris","contractTypes": ["CDI"],"maxResults": 500}
2. Remote-friendly tech jobs published this week
{"searchQuery": "développeur","remoteWork": "Full","daysOld": 7,"maxResults": 100}
3. Daily alert — new senior finance listings in Lyon
{"searchQuery": "finance","location": "Lyon","experienceLevels": ["5-10 ans", "10+ ans"],"daysOld": 1,"skipReposts": true,"maxResults": 50}
4. Scrape specific offers by URL
{"startUrls": [{ "url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/offre-emploi/detail-offre/178468168W" }]}
5. Large export — all stage/alternance listings in France
{"contractTypes": ["Stage/Alternance"],"fetchDetails": false,"maxResults": 5000}
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage. At 10,000 results/month, this scraper costs significantly less with no commitment.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | fetchDetails | Estimated time |
|---|---|---|
| 200 results | true | ~3–5 min |
| 1,000 results | true | ~12–18 min |
| 1,000 results | false | ~2–3 min |
| 10,000 results | false | ~15–20 min |
Performance depends on APEC server load. Runs with fetchDetails: true make one additional request per listing.
Known limitations
- Salary: Not published by all employers —
salaryMin/salaryMaxwill benullwhen not disclosed. - Apply URL:
nullfor listings that require in-platform candidature through APEC. - Confidential listings:
companyisnullwhen the employer marks the listing as confidential. - Location IDs:
contractTypeIdandremoteWorkIdare APEC-internal numeric codes, not human labels. The APEC platform does not expose a public mapping endpoint. - Stage listings: The APEC platform serves a separate route for internship listings. Use
contractTypes: ["Stage/Alternance"]to target these.
Technical details
- Source: apec.fr — France's Association Pour l'Emploi des Cadres, covering 100,000+ executive and engineering job listings.
- Memory: 256 MB
- Repost storage: KeyValueStore
apec-fr-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Built by unfenced-group · Issues? Open a ticket or send a message.