APEC.fr Scraper avatar

APEC.fr Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
APEC.fr Scraper

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

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

2

Monthly active users

34 minutes ago

Last modified

Share

APEC.fr Scraper

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

ParameterTypeDefaultDescription
searchQueryString""Keyword(s) to search for, e.g. "développeur React"
locationString""City or region, e.g. "Paris", "Lyon", "Bretagne"
contractTypesArray[]CDI, CDD, Freelance/Mission, Stage/Alternance
experienceLevelsArray[]Débutant, 1-5 ans, 5-10 ans, 10+ ans
remoteWorkString""Partiel or Full
daysOldIntegerMax publication age: 1, 7, or 30 days
maxResultsInteger200Maximum listings to return (up to 50,000)
fetchDetailsBooleantrueFetch full description and apply URL from each detail page
skipRepostsBooleanfalseSkip listings seen in previous runs (90-day TTL)
startUrlsArray[]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:

  • contractTypeId and remoteWorkId are APEC platform codes (integers). Human-readable labels can be derived from the filter reference table in the Technical details section.
  • salaryMin/salaryMax are parsed from salaryTextnull when the employer has not published salary information.
  • applyUrl is null for applications processed directly through APEC (in-platform candidature).
  • firstPublishDateISO tracks 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.

ResultsCost
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 sizefetchDetailsEstimated time
200 resultstrue~3–5 min
1,000 resultstrue~12–18 min
1,000 resultsfalse~2–3 min
10,000 resultsfalse~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/salaryMax will be null when not disclosed.
  • Apply URL: null for listings that require in-platform candidature through APEC.
  • Confidential listings: company is null when the employer marks the listing as confidential.
  • Location IDs: contractTypeId and remoteWorkId are 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.