HelloWork Jobs Scraper avatar

HelloWork Jobs Scraper

Pricing

from $0.95 / 1,000 results

Go to Apify Store
HelloWork Jobs Scraper

HelloWork Jobs Scraper

[💰 $0.95 / 1K] Extract job listings from HelloWork — France's leading job board. Search by keyword and city, filter by contract type, telework, and date posted, and get titles, companies, salaries, full descriptions, and apply links.

Pricing

from $0.95 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

4 days ago

Last modified

Share

Pull job listings from HelloWork — France's leading job board — at scale, complete with French-format salary ranges, contract codes (CDI / CDD / Alternance / Stage / Intérim / Freelance), telework mode, hiring company, sector, full descriptions, and ISO-8601 posted dates. Built for French recruiters, EU talent-acquisition teams, and salary-benchmarking analysts who need clean, structured French job-market data without parsing HelloWork's French HTML one page at a time.

Why This Scraper?

  • Six French contract types in one filter — CDI (permanent), CDD (fixed-term), Alternance (work-study), Stage (internship), IntĂ©rim (temporary), and Freelance / IndĂ©pendant. The biggest filter facet on HelloWork, exposed as a multi-select.
  • Four telework modes — Full remote (tĂ©lĂ©travail complet), Partial, Occasional, and On-site only. Filter the French remote-job market without learning the French labels.
  • Parsed salary ranges in euros — every row carries salaryMin, salaryMax, salaryCurrency (EUR), and salaryPeriod (YEAR / MONTH / DAY / HOUR), parsed from French formats like 50 000 - 55 000 € / an including narrow no-break-space thousand separators.
  • Five recency windows — Any time, Last 24 hours, Last 3 days, Last 7 days, or Last 30 days. Surface only fresh leads when you need them.
  • Minimum annual salary filter — set minSalary: 60000 and HelloWork constrains the search server-side before pagination starts.
  • Multi-keyword + multi-URL batch input — run ["dĂ©veloppeur", "data engineer", "product manager"] in one go, or paste any HelloWork search URLs you already built in the UI. Mix both in the same run.
  • Up to 5,000 jobs per search — sustained pagination across HelloWork's ~30-per-page SERP, with overshoot-don't-trim semantics that keep your final page whole.
  • Structured detail extraction — title, hiring company, full HTML and plain-text description, 200-character snippet, required skills array, sector (Services aux Entreprises, Tech, etc.), education and experience requirements, valid-through date, and stable HelloWork jobId on every row.

Use Cases

Recruitment & Talent Sourcing

  • Build a target-company list of every employer hiring CDI dĂ©veloppeurs in ĂŽle-de-France this week
  • Track Alternance and Stage postings across France for student-pipeline programs
  • Find freelance and IntĂ©rim opportunities matched to specific skill sets

Salary Benchmarking

  • Build EUR salary bands per role and city from parsed salaryMin / salaryMax ranges
  • Compare CDI vs. Freelance compensation for the same job title
  • Track salary inflation over time by re-running the same query monthly

Market & Competitive Intelligence

  • Monitor which French companies are hiring fastest in your sector
  • Benchmark competitor headcount expansion by counting active listings per employer
  • Detect emerging skill demand by skill-array frequency across thousands of rows

Lead Generation

  • Surface hiring companies for B2B HR-tech, recruitment, or training sales
  • Filter to companies posting 10+ open roles — high-intent buyers for talent solutions
  • Build region-targeted prospect lists by French dĂ©partement or region

Job Aggregation & Vertical Search

  • Power a niche French job board or Slack alert bot with fresh HelloWork listings
  • Feed jobs into a CRM, ATS, or candidate-matching engine via webhook
  • De-duplicate against your existing dataset using stable jobId values

Getting Started

The simplest possible run — one keyword, one city:

{
"searchQueries": ["développeur"],
"location": "Paris",
"maxResults": 50
}

Filtered Search (Contract + Telework + Recency)

Fresh permanent and freelance full-remote roles posted in the last week:

{
"searchQueries": ["data engineer", "data scientist"],
"location": "Lyon",
"contractType": ["CDI", "FREELANCE"],
"telework": ["FULL", "PARTIAL"],
"datePosted": "1w",
"minSalary": 55000,
"maxResults": 200,
"includeJobDetails": true
}

Paste a Pre-Built HelloWork URL

Already built a search with custom filters in the HelloWork UI? Paste the URL directly:

{
"startUrls": [
"https://www.hellowork.com/fr-fr/emploi/recherche.html?k=chef+de+projet&l=Toulouse&c=CDI",
"https://www.hellowork.com/fr-fr/emploi/recherche.html?k=comptable&l=Bordeaux"
],
"maxResults": 500
}

Input Reference

ParameterTypeDefaultDescription
searchQueriesstring[]["développeur"]Job titles or keyword phrases such as développeur, comptable, or chef de projet. Each entry runs its own search.
locationstring"Paris"City, département, or region in France (e.g. Paris, Lyon, Marseille, Île-de-France). Applied to every keyword. Leave blank to search the whole country.
startUrlsstring[][]Optional. Paste full HelloWork search URLs to use them as-is. Useful when you've already built a search with custom filters in the HelloWork UI.

Filters & Limits

ParameterTypeDefaultDescription
maxResultsinteger100Maximum jobs per keyword or URL. Use 50 for a quick scan, 500 for deep research. Set to 0 for no cap (an internal upper limit of 5,000 still applies). The actor keeps the full final page even if it slightly overshoots.
contractTypeselect[][]Only return jobs matching these contract types: CDI, CDD, ALTERNANCE, STAGE, INTERIM, FREELANCE. Empty = all types.
teleworkselect[][]Filter by remote work mode: FULL, PARTIAL, OCCASIONAL, NONE (on-site only). Empty = all modes.
datePostedselect"any"Only include jobs posted within: any, 24h, 3d, 1w, or 1m.
minSalaryintegernullOnly return jobs offering at least this annual salary in euros. Listings without a posted salary are still included.

Output

ParameterTypeDefaultDescription
includeJobDetailsbooleantrueFetch the full description, skills, sector, and structured posting metadata from each job's detail page. Disable for faster light scans that return only the search-card data.

Output

Each row is a single job. Here's a representative result with full details enabled. Most fields populate when the employer fills them in on HelloWork; salary*, skills, experience, telework, and sector can be null / [] when not provided.

{
"title": "Développeur Python H/F",
"company": "Team.is",
"companyUrl": "https://www.hellowork.com/fr-fr/entreprises/teamis-101426.html",
"companyLogo": "https://f.hellowork.com/img/entreprises/160_160/teamis.png",
"location": "Paris 1er - 75",
"city": "Paris 1er",
"postalCode": "75001",
"region": "ĂŽle-de-France",
"country": "France",
"salary": "50 000 - 55 000 € / an",
"salaryMin": 50000,
"salaryMax": 55000,
"salaryCurrency": "EUR",
"salaryPeriod": "YEAR",
"contractType": "CDI",
"employmentTypeRaw": "CDI",
"employmentTypeEnum": "FULL_TIME",
"telework": "FULL",
"datePosted": "2026-05-13",
"validThrough": "2026-06-12",
"skills": ["Python", "Django", "PostgreSQL"],
"qualifications": "Bac +5 ou équivalent en informatique ...",
"education": "Bac +3, Bac +4",
"experience": "3 ans",
"sector": "Banque/Assurance/Finance",
"descriptionHtml": "<p>Nous recherchons un développeur expérimenté...</p>",
"descriptionText": "Nous recherchons un développeur expérimenté...",
"snippet": "Nous recherchons un développeur expérimenté pour rejoindre notre équipe Python...",
"jobId": "75605607",
"jobUrl": "https://www.hellowork.com/fr-fr/emplois/75605607.html",
"listPageUrl": "https://www.hellowork.com/fr-fr/emploi/recherche.html?k=developpeur&l=Paris",
"searchQuery": "développeur",
"scrapedAt": "2026-05-16T11:46:58Z"
}

Core Fields

FieldTypeDescription
titlestringJob title (often ends with " H/F" — French equal-opportunity convention).
companystringHiring company name.
companyUrlstringCompany website when shown on HelloWork.
companyLogostringLogo image URL when available.
jobIdstringStable HelloWork numeric ID — perfect for deduplication.
jobUrlstringCanonical detail-page URL.
listPageUrlstringOriginating search URL.
searchQuerystringWhich keyword produced this row.
scrapedAtstringISO-8601 UTC timestamp of extraction.

Location

FieldTypeDescription
locationstringFull location string as displayed.
citystringParsed city.
postalCodestringFrench postal code (e.g. 75001).
regionstringFrench region (e.g. ĂŽle-de-France, Auvergne-RhĂ´ne-Alpes).
countrystringAlways France.

Salary & Contract

FieldTypeDescription
salarystringRaw salary string as displayed on HelloWork.
salaryMinnumberLower bound parsed in EUR.
salaryMaxnumberUpper bound parsed in EUR.
salaryCurrencystringCurrency code — always EUR in practice.
salaryPeriodstringPay period — YEAR, MONTH, DAY, or HOUR.
contractTypestringNormalized contract code: CDI, CDD, ALTERNANCE, STAGE, INTERIM, or FREELANCE.
employmentTypeRawstringOriginal French contract label as shown on HelloWork (e.g. CDI, Alternance, Intérim).
employmentTypeEnumstringGoogle JSON-LD enum (FULL_TIME, PART_TIME, INTERN, TEMPORARY, CONTRACTOR) for integrations that expect the standard code.
teleworkstringRemote work mode: FULL when the listing is fully remote, null otherwise. Round-trips with the telework input filter.
datePostedstringISO-8601 publication date.
validThroughstringISO-8601 date the listing expires.

Description & Detail

FieldTypeDescription
descriptionHtmlstringFull job description in HTML markup. Populated when includeJobDetails is on.
descriptionTextstringFull job description as plain text.
snippetstring200-character preview for quick scanning.
skillsstring[]Required skills extracted from the structured posting. Empty when HelloWork doesn't expose a structured skill list for the role.
qualificationsstringQualifications text.
educationstringEducation level (e.g. Master, Bac +5, Bac +3, Bac +4).
experiencestringExperience required as a French label (e.g. 1 an, 3 ans, Sans expérience requise).
sectorstringIndustry / sector (e.g. Banque/Assurance/Finance, Services aux Entreprises).

Tips for Best Results

  • Mix searchQueries and startUrls in one run. Pay for one start and get both a fresh keyword sweep and any pre-filtered URLs you've built in the HelloWork UI — sector pages, RSE-label searches, or autocomplete pages with no equivalent filter input. Results are deduplicated across all sources by jobId, so the same posting only appears once in the dataset even when it surfaces in multiple keywords.
  • Use the French label. HelloWork is a French-only site — dĂ©veloppeur returns thousands of hits, developer returns a handful. The same applies for cities: Lyon works, Lyons does not.
  • For full coverage of Paris, run per-arrondissement. Paris alone has 20 arrondissements (Paris 1er, Paris 2e, ..., Paris 20e) — splitting the query is the cleanest way to push past the per-search soft cap.
  • Combine contractType: ["ALTERNANCE", "STAGE"] for student pipelines. These two French-specific contracts cover work-study and internships — the entire early-career recruitment funnel in one filter.
  • Turn off includeJobDetails for fast scans. When you only need title / company / salary for a market sweep, disabling detail fetches skips one request per job and roughly halves run time.
  • Use datePosted: "24h" for daily alerts. Pair with a webhook to push every new posting matching your filters into Slack, email, or your ATS.
  • Deduplicate by jobId. HelloWork sometimes repeats the same listing across overlapping searches — the numeric jobId is stable across runs, so use it as your dedupe key.

Pricing

$0.95 per 1,000 results — flat per-row pricing, slightly below the market rate for French job-board extraction.

ResultsEstimated Cost
100$0.10
1,000$0.95
10,000$9.50
100,000$95.00

A "result" is one job row in the output dataset. No compute charges — you only pay per result returned. Apify platform fees (storage, transfer) are additional and depend on your plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This actor is designed for legitimate recruitment research, salary benchmarking, market intelligence, and job aggregation use cases. Users are responsible for complying with applicable laws — including French and EU data protection rules (RGPD/GDPR) — and with HelloWork's terms of service. Make reasonable-rate requests, respect content usage rules for any descriptions or company data extracted, and do not use the data for spam, harassment, or any illegal purpose.