HelloWork.fr Job Scraper
Pricing
from $0.70 / 1,000 hellowork.fr job scrapers
HelloWork.fr Job Scraper
Collect HelloWork job cards from category/keyword pages. Return title, company, location, contract type, and salary or remote fields. Run with searchQuery; no login. Pricing: $0.0007 per dataset item plus $0.00005 per actor-start event on Free plan.
Pricing
from $0.70 / 1,000 hellowork.fr job scrapers
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Use your Apify account to extract public job cards from one HelloWork category or keyword listing page; no HelloWork login is requested. Each run reads only the first listing page that returns cards (about 20 in the fixture), so maxResults cannot exceed the cards on that page. On the Free plan, you pay $0.0007 per scraped dataset item and $0.00005 per apify-actor-start event.
- Collect category-specific listings for recruiting research
- Filter cards by location or contract type
- Export listing datasets as JSON or CSV
- Read card data only, with no job-detail page requests
What you get
The Actor reads public listing cards and does not request job-detail pages. Each dataset item contains string fields from the card or from its listing path. salary and remoteOption are omitted when the card does not show them.
| Field | Type | Description | Availability |
|---|---|---|---|
id | string | HelloWork listing identifier from the public job-card URL. | Always present |
title | string | Job title shown on the listing card. | Always present |
company | string | Employer name shown on the listing card. | Always present |
location | string | Location shown on the listing card. | Always present |
contractType | string | Contract type shown on the listing card. | Always present |
salary | string | Salary text displayed on the listing card. | Omitted when not shown |
remoteOption | string | Remote-work tag displayed on the listing card. | Omitted when not shown |
url | string | Relative listing path copied from the card href. | Always present |
canonicalUrl | string | Absolute listing URL on https://www.hellowork.com. | Always present |
Publication dates and repost status are not emitted because they are not present in the public category-card data used by this Actor.
Sample output
{"id": "84457176","title": "Chef de Projets Réseau et Téléphonie H/F","company": "Novalyo","location": "Aix-en-Provence - 13","contractType": "CDI","url": "/fr-fr/emplois/84457176.html","canonicalUrl": "https://www.hellowork.com/fr-fr/emplois/84457176.html","salary": "35 000 - 45 000 € / an"}
Pricing
The Actor uses per-event billing. The listed charge events are:
| Charge event | What it represents | Free-plan price |
|---|---|---|
apify-actor-start | Charged once per GB of run memory, with a minimum of one event. | $0.00005 per event on the Free plan |
apify-default-dataset-item | One scraped result with all fields. | $0.0007 per event on the Free plan |
Free plan examples for dataset items: 1,000 x $0.0007 = $0.70 and 10,000 x $0.0007 = $7.00 in dataset-item charges, plus the run's start events at $0.00005 per event on the Free plan. One run reads one page, so these totals are reached over many runs. To see how many start events a run incurs, run once with maxResults set to 1 and read the charged events in the run's charges.
Apify's Free plan includes $5 of monthly platform usage credit. You pay only for the events listed above. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.
How to use
- Enter a public HelloWork category or keyword in
searchQuery. - Add an optional
locationfilter. - Choose an optional
contractTypevalue. - Set
maxResults(at most the cards on the first page that returns cards). - Keep the default
proxyConfiguration(Apify residential proxy) unless you need to change it. - Run the Actor and inspect the dataset.
- Repeat the run with Apify Schedules if you need fresh listings.
Input example:
{"searchQuery": "informatique","contractType": "","maxResults": 20}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
searchQuery | Required category or keyword used to build the HelloWork listing routes. | No schema default; the runtime fallback is informatique when the value is missing or empty |
location | Optional text filter matched against the location shown on each job card. | Empty string; no location filter |
contractType | Optional filter matching the visible contract type. Accepted values are "", CDI, CDD, Interim, Stage, Alternance, Freelance, and Travail_temp. | Empty string; no contract filter |
maxResults | Maximum number of job records pushed to the dataset. It must be at least 1 (schema minimum); a value below 1 ends the run with no records. Only one listing page is read, so the output cannot exceed the cards on that page. | 50 (an upper bound on the count) |
proxyConfiguration | Apify proxy settings object. Omitting the field, or setting useApifyProxy to false, sends requests without a proxy. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} (Apify residential proxy) |
Location matching checks whether the normalized filter text appears in the normalized visible location. Contract matching compares the normalized filter with the normalized contract text shown on the card, and the two must be equal. Interim is remapped to travailtemp before the comparison, and Travail_temp normalizes to the same travailtemp, so these two values behave identically and match only cards whose normalized contract text equals travailtemp. Filters apply to the cards of that single page, so a filter can leave fewer records than maxResults.
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| The category route returns no parsed cards. | The Actor continues by trying the keyword route for the same searchQuery. | Check the query spelling or try another public HelloWork category or keyword. |
| A listing request fails, including a request reaching the 40-second timeout. | The failure is logged and the Actor continues to the next listing route. If no route produces records, the dataset remains empty. | Check the run log and try the run again. |
| HelloWork returns a detected "robot or human" or CAPTCHA access challenge. | The route raises an access error, which is logged; the Actor proceeds to the next listing route. If no route produces records, no items are pushed. | Review the run result and try again if your access is permitted. |
| The listing routes produce no cards with the required card structure. | The Actor logs that no job cards were found and pushes no dataset items. | Use a public category or keyword route that returns visible HelloWork job cards. |
| A location or contract filter excludes every parsed card. | The run can finish with zero pushed records even when cards were found. | Loosen or remove the filters and run again. |
| A card does not contain the required listing path, title, employer, location, or contract data, or its href does not match the supported HelloWork listing path format. | That card is skipped rather than emitted as an incomplete dataset item. | Try another listing query if the resulting dataset is empty. |
FAQ
How much does it cost to scrape HelloWork?
See Pricing for the per-event Free-plan prices and billing details.
Why did my run return no records?
The category route and then the keyword route may have produced no parseable cards, an access challenge may have affected both routes, or your location and contract filters may have excluded every parsed card. Check the run log, try a broader public query, and remove optional filters to test the result.
Why are salary or remote-work fields missing?
Those properties are emitted only when the information is visibly present on the listing card. The Actor does not request job-detail pages and does not invent absent values.
Is using data from public HelloWork pages legal?
The Actor reads public data from HelloWork category and keyword listing pages, but source terms and applicable law depend on your use case. The HelloWork homepage states that automated extraction requires written authorization; use this Actor only when your use is covered by written permission. This is not a legal guarantee.