Free-Work Jobs & Freelance Missions Scraper
Pricing
from $2.00 / 1,000 job postings
Free-Work Jobs & Freelance Missions Scraper
Extract IT jobs and freelance missions from Free-Work, the leading French tech job board: daily rates, salaries, skills, remote mode, location and full descriptions.
Pricing
from $2.00 / 1,000 job postings
Rating
0.0
(0)
Developer
Vivien MORVAN
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
9
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape every IT job and freelance mission from Free-Work, the leading French tech job board (around 10,000 live postings), and get clean structured data: daily rates, salaries, skills, remote mode and location, ready for a spreadsheet, an alert or an API.
What you can do with it
- Track the French freelance market: daily rates by skill, city and seniority.
- Feed a job alert or a job board: run it daily with "Published within 1 day" and get only the new postings.
- Find companies that are hiring: which firms and IT consultancies recruit for a given technology right now.
- Benchmark salaries: permanent salary ranges and freelance daily rates side by side.
Input
| Field | What it does |
|---|---|
| Keywords | Job title, skill or technology, for example data engineer or python. Empty means every posting. |
| Contract types | Freelance mission, permanent, fixed-term, apprenticeship, internship. Empty means all. |
| Remote work | Any, full remote, hybrid or on site. |
| Published within (days) | Keep only recent postings. Use 1 for a daily monitoring run. |
| Maximum number of postings | The run stops once this many postings are saved. |
| Include full descriptions | Adds the description, candidate profile and company description as plain text. |
Output
One record per posting:
{"id": 677128,"url": "https://www.free-work.com/fr/tech-it/job-mission/data-engineer/data-engineer-1419","title": "Data Engineer","jobCategory": "Développeur·euse data (décisionnel / BI / Big Data / Data engineer)","companyName": "STHREE SAS","contracts": ["contractor"],"experienceLevel": "senior","remoteMode": "partial","locationLabel": "Paris, France","postalCode": "75000","region": "Île-de-France","country": "France","latitude": 48.8588897,"longitude": 2.320041,"minDailyRate": 550,"maxDailyRate": 650,"minAnnualSalary": null,"maxAnnualSalary": null,"currency": "EUR","durationValue": 12,"durationPeriod": "month","startsAt": "2026-11-02T00:00:00+01:00","skills": ["AWS Cloud", "Databricks", "PySpark", "Python", "SQL"],"publishedAt": "2026-10-01T11:18:03+02:00","expiresAt": "2026-11-30T23:59:59+01:00","description": "…"}
Export the dataset as JSON, CSV or Excel, or read it through the Apify API.
Three real results from the same run, side by side:
| Title | Company | Contract | Remote | Location | Rate / Salary |
|---|---|---|---|---|---|
| Data Engineer Senior | UCASE Consulting | contractor, permanent | partial | Île-de-France | €400–650/day or €40–45k/year |
| Embedded Software Engineer | Rise Technical Recruitment | permanent | none | South Oxfordshire, UK | €50–60k/year |
| Product Owner Data | Freelancerepublik | contractor | full | Aix-en-Provence | — |
Why this one
- Structured rates, not a text blob.
minDailyRate/maxDailyRateandminAnnualSalary/maxAnnualSalaryare separate numeric fields, so filtering or sorting by pay needs no text parsing. - Both freelance and permanent in one schema.
contractscan hold more than one type on the same posting (common on Free-Work), instead of forcing a single-contract model. - No browser, no proxy. The site's own API is read directly, so a 100-posting run finishes in a few seconds.
Good to know
- Postings come newest first, so a date-limited run stops early and stays cheap.
- No browser and no proxy needed: runs are fast and reliable.
- The dataset contains job postings only. Recruiter contact details are never exported.
Pricing
Pay per result: $2.00 per 1,000 postings, plus $0.00005 per run start. For example, 100 postings cost about $0.20. You only pay for the postings you receive, and platform usage is included in that price.
Run it from your code
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('bibian/free-work-jobs-scraper').call({keywords: 'data engineer',publishedWithinDays: 7,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python:
from apify_client import ApifyClientclient = ApifyClient(token="<APIFY_TOKEN>")run = client.actor("bibian/free-work-jobs-scraper").call(run_input={"keywords": "data engineer","publishedWithinDays": 7,"maxItems": 100})items = client.dataset(run["defaultDatasetId"]).list_items().items
Frequently asked questions
Do I need an account, cookies or a proxy for Free-Work? No. The actor reads publicly visible pages only.
How do I get only the new postings every day? Save a task, set its publication date filter to the shortest window, and schedule it daily with Apify Schedules. Deduplicate on the id field if you keep your own copy.
Which formats can I export? JSON, CSV, Excel, XML, HTML table or RSS, from the dataset page or through the API.
Can I connect it to Make, Zapier, n8n or Google Sheets? Yes, through Apify integrations and webhooks.
Is it legal to scrape? The actor collects publicly visible postings and respects the robots.txt rules of the site. How you use the data is your responsibility: check the site's terms and the laws that apply to you, for example the GDPR.
Something does not work? Open an issue in the Issues tab. Every public actor is test-run daily and the broken ones are repaired.
Did this save you time? A short review on the Store page helps other people find the actor, and tells me what to improve next.