Freelancer.nl Opdrachten Scraper
Pricing
from $1.00 / 1,000 results
Freelancer.nl Opdrachten Scraper
Scrape freelance and ZZP project listings from Freelancer.nl — the Netherlands' largest freelance platform. Filter by keyword, location, sector and hourly rate. Full descriptions in HTML, text and Markdown. Repost detection & daysOld filtering. No API key required.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
3
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Freelancer.nl Scraper

Scrape freelance assignments from freelancer.nl — the Netherlands' dedicated marketplace for freelance and ZZP projects with 750+ active listings across all disciplines. Filter by keyword, city, and budget type. No API key required. Fast, lightweight and cost-efficient.
Why this scraper?
⚡ Low memory footprint — 256 MB
This scraper runs at 256 MB memory instead of the 1024+ MB typically required by heavier scraping setups. Lower memory means lower compute cost per run — the difference adds up significantly at scale.
🔄 Cross-run repost detection
Clients frequently repost the same assignment to keep it visible. Over a 90-day window, this scraper tracks every assignment it has seen and tags returning ones with isRepost: true, originalPublishDate, and originalUrl. Use skipReposts: true to exclude them entirely from your dataset, or keep them to monitor repricing and demand signals.
📄 Three description formats
Fetching the full description in three formats eliminates preprocessing work in your pipeline:
| Field | Format | Use case |
|---|---|---|
description | HTML | Direct rendering, CMS import |
descriptionText | Plain text | Search indexing, keyword extraction |
descriptionMarkdown | Markdown | RAG pipelines, LLM agents, Pinecone, Weaviate |
💰 Structured budget data
Budget ranges are extracted and normalized into machine-readable fields — no regex parsing required in your workflow:
| Field | Example |
|---|---|
budget | "€40 — €60" |
budgetMin | 40 |
budgetMax | 60 |
budgetType | "Per Uur" / "Vaste Prijs" / "In overleg" |
Both hourly and fixed-price formats are handled. Assignments without a specified budget return "In overleg" with null for min/max.
⏱️ Freshness filter with daysOld
Set daysOld: 7 to only retrieve assignments posted in the last week. The exact publishDateISO field (ISO 8601) is pulled from the detail page for reliable date filtering — relative timestamps like "3 uur geleden" are resolved to an absolute date.
🔗 Direct URL targeting with startUrls
Bypass the search entirely and point the scraper at any freelancer.nl category page, city page, or filtered search URL. Useful for monitoring a specific niche or scheduling targeted runs per discipline.
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
searchQuery | string | Keyword to search, e.g. "developer" or "marketing" | "" |
city | string | Filter by city, e.g. "Amsterdam". Used when no searchQuery is set. | "" |
budgetType | string | "hourly", "fixed", or "tbd" (In overleg). Leave empty for all. | "" |
budgetMin | integer | Minimum budget in euros. Applied when budgetType is "hourly" or "fixed". | — |
budgetMax | integer | Maximum budget in euros. Applied when budgetType is "hourly" or "fixed". | — |
startUrls | array | List of specific freelancer.nl URLs to scrape directly. | [] |
maxResults | integer | Maximum number of assignments to return. Controls your spend. | 100 |
fetchDetails | boolean | Fetch each detail page for full description, exact date, duration, and category. | true |
skipReposts | boolean | Skip assignments already seen in a previous run. | false |
daysOld | integer | Only return assignments posted within this many days. | — |
Output schema
{"id": "frnl5cc20736","url": "https://freelancer.nl/opdrachten/houten/hr-administratie-finance-secretarieel/freelance-hr-administratieve-support-bij-tech-bedrijf-in-houten-12-uur-pw-5cc20736","title": "Freelance HR & Administratieve Support bij Tech-bedrijf in Houten (12 uur p/w)","location": "Houten","isRemote": false,"isHybrid": false,"budget": "€40 — €60","budgetMin": 40,"budgetMax": 60,"budgetType": "Per Uur","skills": ["HR administratie", "finance", "secretarieel"],"reactionsCount": 3,"viewsCount": null,"summary": "Freelance HR & Administratieve Support bij Tech-bedrijf in Houten...","category": "Administratie & Support","status": "Open","startDate": "Per direct","duration": "3 Maanden","publishDate": "23-03-2026","publishDateISO": "2026-03-23","description": "<p>Freelance HR & Administratieve Support...</p>","descriptionText": "Freelance HR & Administratieve Support bij Tech-bedrijf in Houten...","descriptionMarkdown": "Freelance HR & Administratieve Support bij Tech-bedrijf in Houten...","isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "a3f4c9e1b2d07c45","source": "freelancer.nl","scrapedAt": "2026-03-27T14:30:00.000Z"}
Examples
All development & IT assignments:
{ "searchQuery": "developer", "maxResults": 50, "fetchDetails": true }
Hourly-rate assignments in Amsterdam, last 7 days:
{"searchQuery": "marketing","city": "Amsterdam","budgetType": "hourly","budgetMin": 60,"daysOld": 7,"maxResults": 100}
Scheduled monitoring run — new assignments only:
{"maxResults": 500,"skipReposts": true,"daysOld": 1,"fetchDetails": true}
Scrape a specific category page directly:
{"startUrls": [{ "url": "https://freelancer.nl/opdrachten/development-en-it" },{ "url": "https://freelancer.nl/opdrachten/marketing-en-communicatie" }],"maxResults": 200,"fetchDetails": true}
💰 Pricing
$1.00 per 1,000 results — you only pay for successfully retrieved assignments. Failed retries and skipped reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.10 |
| 1,000 | ~$1 |
| 10,000 | ~$10 |
| 100,000 | ~$100 |
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 | Time |
|---|---|
| 100 assignments (list only, no detail) | ~15s |
| 100 assignments (with detail pages) | ~2 min |
| 1,000 assignments (with detail pages) | ~18 min |
Performance is measured with fetchDetails: true on Apify's shared infrastructure. List-only runs (fetchDetails: false) are approximately 8x faster.
Known limitations
- Apply URL: Freelancer.nl requires a registered account to respond to assignments.
applyUrlis not exposed in the public HTML — the call-to-action links directly to the detail page. - Budget: Not all clients specify a budget —
budgetMinandbudgetMaxarenullwhen the budget is listed as "In overleg". - View count: The
viewsCountfield is only populated whenfetchDetails: trueis set. - Platform scale: Freelancer.nl is a niche Dutch platform with ~750 active listings, significantly smaller than generalist job boards. The full dataset fits in a single run.
Technical details
- Source: freelancer.nl — Dutch freelance assignment marketplace
- Memory: 256 MB
- Repost storage: KeyValueStore
freelancer-nl-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.