APEC Jobs Scraper avatar

APEC Jobs Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
APEC Jobs Scraper

APEC Jobs Scraper

Extract APEC job listings at scale with structured data including job titles, companies, locations, descriptions, and job URLs. Built for reliable job market research, recruitment intelligence, employment analysis, lead generation, and automated job data collection.

Pricing

from $0.80 / 1,000 results

Rating

5.0

(6)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

4

Bookmarked

134

Total users

28

Monthly active users

9 hours ago

Last modified

Share

What does APEC Jobs Scraper do?

APEC Jobs Scraper extracts job listings from APEC.fr, the reference job board for French executive, manager, and specialist roles. Enter a keyword and a city, or paste a prepared APEC search URL, and the actor collects structured records with titles, companies, locations, salary text, contract details, publication dates, coordinates, and application links.

Every record is built entirely from APEC's search listing response. The actor does not open individual offer pages, which keeps runs fast and reliable. All listing fields are mapped, and the complete raw listing is preserved under api_listing.

Why use APEC Jobs Scraper?

  • Maximum listing data - Every field published in the search listing is mapped, including flags, coordinates, contract IDs, sector IDs, and the full raw listing object.
  • Fast - Up to 100 records per page, with no per-offer page visits.
  • Resilient - Rotates the session, network exit, and client profile when a request is challenged, retries a failed page after the other pages are saved, and only stops when the API itself changes. A search with no matches completes instead of failing.
  • Flexible search inputs - Search by keyword, filter by city or department, or reuse an APEC search URL with your prepared filters.
  • Duplicate-free results - Offers are deduplicated by APEC reference across pages.
  • Automation-ready output - Download results as JSON, CSV, Excel, XML, or connect them to Google Sheets, Make, Zapier, or your own systems.

What data can you extract from APEC.fr?

FieldDescription
titleJob title as published on APEC
title_highlightedHighlighted title when APEC returns one
companyEmployer or advertiser name
company_logo_urlAbsolute URL of the employer logo when published
locationPublished job location text
salarySalary text as shown in the listing
published_atPublication date
validated_atValidation date
contract_type_id / contract_durationContract type and duration
sector_activity_id / sector_activity_parent_idSector identifiers
remote_work_idRemote-work identifier
description_text / description_htmlDescription teaser from the listing
applyLinkApplication or detail URL
latitude / longitudeJob coordinates when available
is_localizable / is_confidential / is_direct_clientLocation and offer visibility flags
is_oqa_verified / is_low_candidatureQuality and applicant-interest flags
origin_code / relevance_scoreSource code and relevance score
urlDirect APEC job detail URL
api_listingComplete raw listing object with every field returned by APEC

How to use APEC Jobs Scraper

  1. Open the Actor on Apify Store.
  2. Enter a job keyword such as ingenieur logiciel or chef de projet.
  3. Add a city or region such as Paris or Lyon when you need regional data.
  4. Set the maximum number of jobs to collect with results_wanted.
  5. Run the Actor, then download the dataset or connect it to your workflow.

You can also paste a prepared APEC search URL into startUrl. The URL keyword is used when the keyword field is empty; explicit keyword and location inputs take precedence over the matching URL filters. Clearing the keyword with a location runs a location-only search.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoNoneDirect APEC search URL. A supplied keyword or location overrides the matching URL filter. Clear the keyword field to run a URL-only or location-only search.
keywordStringNo"ingenieur"Job title, skill, or keyword to search. Takes precedence over the keyword in startUrl.
locationStringNoNoneCity, department, or region name, such as Paris, Lyon, or 75. Explicit location input overrides the location in startUrl.
results_wantedIntegerNo20Maximum number of job records to collect.
max_pagesIntegerNo2Maximum number of search result pages to process. Each page holds up to 100 records.
proxyConfigurationObjectNo{ "useApifyProxy": true, "apifyProxyGroups": ["UNBLOCKER"] }Apify Proxy settings. Enabled by default with the Apify Unblocker group, the only group that currently passes APEC's DataDome check. The Actor falls back to French residential, then the account default. Custom proxy URLs are never overridden.

Output Data

Each dataset item contains the fields available for that job. Empty values are removed.

FieldTypeDescription
id, numeroOffre, listing_idString / NumberAPEC offer reference and internal listing ID.
title, title_highlightedStringJob title and highlighted variant.
company, company_logo_urlStringEmployer name and absolute logo URL.
locationStringPublished job location text.
salaryStringSalary text as shown in the listing.
published_at, validated_atStringPublication and validation dates.
contract_type_id, contract_durationNumberContract type and duration.
sector_activity_id, sector_activity_parent_idNumberSector identifiers.
remote_work_idNumberRemote-work identifier when published.
description_text, description_htmlStringDescription teaser from the listing.
applyLinkStringApplication or detail URL.
latitude, longitudeNumber or StringJob coordinates when available.
is_localizable, is_confidential, is_direct_clientBooleanLocation, confidentiality, and direct-employer flags.
is_oqa_verified, is_low_candidatureBooleanQuality and applicant-interest flags.
origin_code, relevance_scoreNumberSource code and relevance score.
urlStringDirect APEC job detail URL.
sourceStringAlways listing.
api_listingObjectComplete raw listing object with every field returned by APEC.
fetched_atStringExtraction timestamp in UTC.

Usage Examples

Collect 20 engineering-related jobs:

{
"keyword": "ingenieur",
"results_wanted": 20,
"max_pages": 1
}

Collect project management jobs in Paris:

{
"keyword": "chef de projet",
"location": "Paris",
"results_wanted": 30,
"max_pages": 1
}

High-Volume Listing Run

Collect 500 records across five pages:

{
"keyword": "ingenieur",
"results_wanted": 500,
"max_pages": 5
}

Search from a Prepared URL

Reuse an APEC search URL with filters already applied on the website. Clear the keyword field so the URL keyword is used:

{
"startUrl": "https://www.apec.fr/candidat/recherche-emploi.html/emploi?motsCles=data&lieux=69&typesContrat=101888",
"keyword": "",
"results_wanted": 20,
"max_pages": 1
}

Combine keyword and region filters for a focused dataset:

{
"keyword": "ingenieur logiciel",
"location": "Lyon",
"results_wanted": 50,
"max_pages": 1
}

Sample Output

{
"id": "179624958W",
"numeroOffre": "179624958W",
"listing_id": 179624958,
"title": "Ingénieur Outils Logiciels Avionique F/H",
"title_highlighted": "Ingénieur Outils Logiciels Avionique F/H",
"company": "AIRBUS",
"company_logo_url": "https://www.apec.fr/files/live/mounts/images/media_entreprise/103417/logo_AIRBUS_103417.png",
"location": "Toulouse - 31",
"salary": "A négocier",
"published_at": "2026-10-20T15:54:35.000+0000",
"validated_at": "2026-10-20T15:54:35.000+0000",
"contract_type_id": 101888,
"contract_duration": 0,
"sector_activity_id": 101604,
"sector_activity_parent_id": 101762,
"remote_work_id": 20766,
"description_text": "Airbus recherche un ingénieur outils logiciels pour contribuer à la conception et au maintien des outils de développement de l'avionique...",
"description_html": "<p>Airbus recherche un ingénieur outils logiciels pour contribuer à la conception et au maintien des outils de développement de l'avionique...</p>",
"applyLink": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/detail-offre/179624958W",
"latitude": "43.596013",
"longitude": "1.4321019",
"is_localizable": true,
"is_confidential": false,
"is_direct_client": true,
"is_oqa_verified": false,
"is_low_candidature": false,
"origin_code": 101859,
"relevance_score": 15.0941305,
"url": "https://www.apec.fr/candidat/recherche-emploi.html/emploi/detail-offre/179624958W",
"source": "listing",
"api_listing": {
"id": 179624958,
"numeroOffre": "179624958W",
"intitule": "Ingénieur Outils Logiciels Avionique F/H",
"intituleSurbrillance": "Ingénieur Outils Logiciels Avionique F/H",
"nomCommercial": "AIRBUS",
"urlLogo": "/media_entreprise/103417/logo_AIRBUS_103417.png",
"lieuTexte": "Toulouse - 31",
"salaireTexte": "A négocier",
"texteOffre": "Airbus recherche un ingénieur outils logiciels...",
"dateValidation": "2026-10-20T15:54:35.000+0000",
"datePublication": "2026-10-20T15:54:35.000+0000",
"indicateurOqa": false,
"latitude": "43.596013",
"longitude": "1.4321019",
"localisable": true,
"score": 15.0941305,
"offreConfidentielle": false,
"secteurActivite": 101604,
"secteurActiviteParent": 101762,
"clientReel": true,
"contractDuration": 0,
"typeContrat": 101888,
"origineCode": 101859,
"idNomTeletravail": 20766,
"indicateurFaibleCandidature": false
},
"fetched_at": "2026-10-20T15:57:10.000Z"
}

Tips for Best Results

  • Use specific keywords - Search terms such as data engineer, responsable marketing, or chef de projet return cleaner, more relevant datasets than single broad words.
  • Add a location for regional data - Combining keyword and location narrows results to the area you care about, such as Paris or Lyon.
  • Start small, then scale - Keep results_wanted at 20 for a test run, then raise it once your query pattern is validated.
  • Raise max_pages for larger pulls - Each page holds up to 100 records, so a higher results_wanted above 100 needs a matching page cap.
  • Use api_listing for advanced work - The raw object contains every listing field, including the highlighted title and description teaser.
  • Expect missing fields - Not every employer publishes every field. Empty values are removed to keep the dataset clean.
  • Keep recurring runs comparable - Use the same keyword and location for scheduled reports so results stay consistent over time.
  • Proxy is on by default - APEC challenges direct and datacenter connections. The Actor rotates the session, exit, and client profile automatically instead of failing.

Integrations

  • Google Sheets - Review and share job datasets with your team.
  • Airtable - Build searchable recruiting databases.
  • Make - Automate notifications and enrichment flows.
  • Zapier - Trigger workflows from new records.
  • Webhooks - Send output to your own systems.
  • API - Access datasets programmatically from your applications.

Export Formats

  • JSON - Best for development workflows.
  • CSV - Best for spreadsheet analysis.
  • Excel - Best for reporting.
  • XML - Best for system interchange.

Frequently Asked Questions

Does APEC Jobs Scraper collect full job descriptions?

It collects the description teaser published in the search listing. The actor does not open individual offer pages, so the full advert, skills, and candidate profile are not collected.

Can I search APEC jobs by city or region?

Yes. Set the location input to a city, department, or region such as Paris, Lyon, or 75. The actor resolves the name to APEC's place identifier before searching.

Can I use an APEC search URL directly?

Yes. Set startUrl to a prepared APEC search URL when you already have filters set up on the website. Clear the keyword field to use the URL keyword. Explicit keyword and location inputs override the matching URL filters.

How are duplicates handled?

Duplicate offers are skipped by APEC offer reference, both on the same page and across pages.

How long does a run take?

Listing-only extraction is fast: 100 records typically complete in a few seconds, and larger runs scale with the number of pages requested. A challenged request is retried with a fresh network exit, so a run can take longer when APEC is actively blocking exits.

What happens if the search has no matches?

The run completes successfully with an empty dataset and a warning in the log, and OUTPUT_SUMMARY records emptyResult: true. A run that never receives a usable response from APEC (for example because the proxy is disabled) fails with a clear message instead of reporting a fake empty result.

What if every run is blocked with a 403?

APEC uses DataDome, which scores the network exit rather than the request code. The retry log shows whether the block came from APEC (server=APEC Server, x-datadome=protected) or from the proxy itself. The Actor already tries the Apify Unblocker group, then French residential, then the account default. If every one of those exits is challenged, the account's proxy pool is blocked: check that Unblocker units are available for the billing cycle, or provide clean French residential proxies in proxyConfiguration.proxyUrls. Changing the keyword, payload, or browser profile does not clear that block.

Can I export the data to CSV or Excel?

Yes. Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats.

Can I run this Actor on a schedule?

Yes. Use Apify schedules to run the actor hourly, daily, or weekly to monitor new French executive job postings.

Scraping publicly available job data can be legal, but you are responsible for complying with applicable laws, website terms, and privacy rules in your jurisdiction.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate data collection from publicly available sources. Users are responsible for using the data responsibly and complying with applicable laws and website terms.