Indeed Netherlands Jobs Scraper
Pricing
from $0.70 / 1,000 jobs
Indeed Netherlands Jobs Scraper
Scrape jobs from nl.indeed.com: full descriptions, structured salary, company profiles, geo-coordinates, job type, benefits, languages and hiring signals. No login, no API key, no personal data.
Pricing
from $0.70 / 1,000 jobs
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
2
Monthly active users
12 days ago
Last modified
Categories
Share
Indeed NL Scraper

Extract job listings from nl.indeed.com at scale: full descriptions, structured salary, company profiles, precise geo-coordinates, job type, benefits and hiring signals. No login and no API key required.
Why this scraper?
๐ฏ Built for the Netherlands
A dedicated Dutch scraper, not a global tool with a country dropdown. Salary parsing, location handling and currency (EUR) are tuned for nl.indeed.com.
๐ Complete job data
Full job title, description in HTML, plain text and Markdown, the direct job URL, the publish date, and the date the job first appeared on Indeed.
๐งญ Structured, not raw
Job type, remote flag, benefits, required languages and education level are derived into clean fields, so you can filter without parsing the description yourself. The complete attribute list is kept as well.
๐ถ Structured salary
Minimum, maximum, pay period and currency, taken from Indeed's structured data or parsed from the listing text. Estimated figures are flagged so you can filter them out.
๐ข Company profiles
Company name, Indeed company page, industry, size, revenue band, logo, header image and corporate website โ where Indeed publishes them.
๐ Privacy by design
No personal data. The scraper never returns recruiter names, personal emails, phone numbers or contact-person details.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | developer | Job title or keyword. Ignored when startUrls is set. |
location | string | (empty) | City, region or postal code. Empty means the whole of the Netherlands. |
startUrls | array | (empty) | One or more nl.indeed.com search URLs to scrape directly. Query, location, radius, sort and posted-within are read from each URL. |
radius | integer | 25 | Search radius around the location, in kilometres (0โ100). |
sort | string | relevance | relevance or date (newest first). |
fromDays | string | (any) | Limit to jobs posted within the last 1, 3, 7 or 14 days. |
remoteOnly | boolean | false | Return only jobs flagged as remote or hybrid. |
maxItems | integer | 5 | Maximum number of listings to return. 0 means unlimited (up to Indeed's paging cap). |
Example input
{"query": "software developer","location": "Amsterdam","radius": 25,"sort": "date","fromDays": "7","maxItems": 50}
Output
Every record contains these fields. Fill rates are measured over a live Dutch "developer" sample; fields marked partial are populated only when Indeed publishes the data for that listing.
| Field | Type | Notes |
|---|---|---|
jobKey | string | Indeed job identifier. Always present. |
title | string | Job title. Always present. |
jobUrl | string | Direct link to the listing. Always present. |
descriptionHtml | string | Full description, HTML. Always present. |
descriptionText | string | Full description, plain text. Always present. |
descriptionMarkdown | string | Full description, Markdown. Always present. |
jobType | array | Employment type(s), e.g. Fulltime, Parttime, Vaste baan. Partial (~82%). |
isRemote | boolean | True when the listing is remote or hybrid. Always present. |
benefits | array | Secondary benefits, e.g. Pensioen, Reiskostenvergoeding. Partial (~90%). |
languages | array | Required languages, e.g. Nederlands, Engels. Partial (~52%). |
education | array | Education level(s), e.g. MBO, Bachelor. Partial (~35%). |
attributes | array | Full list of Indeed attributes for the job (skills, benefits, type, etc.). Always present. |
location.raw | string | Human-readable location. Always present. |
location.city | string | City. Partial (~98%). |
location.postalCode | string | Postal code. Partial (~35%). |
location.streetAddress | string | Street address. Partial (~35%). |
location.countryName / location.countryCode | string | Country. Always present. |
location.admin1Code / location.admin2Code | string | Province / region codes. Partial (~98%). |
location.latitude / location.longitude | number | Geo-coordinates. Always present. |
location.isRemote | boolean | Same as top-level isRemote. |
salary.salaryText | string | Salary as shown. Partial (~20%). |
salary.salaryMin / salary.salaryMax | number | Parsed range. Partial. |
salary.salaryType | string | Pay period (YEAR, MONTH, HOUR). Partial. |
salary.salaryCurrency | string | Currency (EUR). Partial. |
salary.isEstimated | boolean | True when the figure is an Indeed estimate. |
salary.salarySource | string | API or DESCRIPTION. |
companyName | string | Employer name. Partial (~98%). |
companyUrl | string | Indeed company page. Partial (~98%). |
companyIndustry | string | Industry. Partial (~15%). |
companyNumEmployees | string | Company size band. Partial (~57%). |
companyRevenue | string | Revenue band. Partial (~45%). |
companyAddresses | array | Company office addresses. Partial (~55%). |
companyLogo / companyHeaderUrl | string | Brand images. Partial (~50โ62%). |
corporateWebsite | string | Company website. Partial (~67%). |
datePublished | string | ISO publish date. Always present. |
dateOnIndeed | string | ISO date first seen on Indeed. Always present. |
age | number | Days since datePublished. Always present. |
hiringDemand.isUrgentHire | boolean | Urgent-hire flag. Always present. |
hiringDemand.isHighVolumeHiring | boolean | High-volume-hiring flag. Always present. |
language / locale / source | string | nl / nl_NL / nl.indeed.com. Always present. |
scrapedAt | string | ISO timestamp of the run. Always present. |
scrapingInfo.page / scrapingInfo.index | number | Position in the result set. |
Example output (one record, trimmed)
{"jobKey": "fdd75e8bc8975466","title": ".Net developer","jobUrl": "https://nl.indeed.com/viewjob?jk=fdd75e8bc8975466","descriptionText": "Bij Sogeti werk je als .NET Developer ...","jobType": ["Parttime", "Fulltime"],"isRemote": true,"benefits": ["Pensioen", "Reiskostenvergoeding", "Bedrijfslaptop"],"languages": ["Nederlands"],"education": ["Bachelor"],"location": { "city": "Utrecht", "countryCode": "NL", "latitude": 52.09, "longitude": 5.12, "isRemote": true },"salary": { "salaryText": "โฌ55.000 โ โฌ70.000", "salaryMin": 55000, "salaryMax": 70000, "salaryType": "YEAR", "salaryCurrency": "EUR", "salarySource": "DESCRIPTION" },"companyName": "Sogeti","companyIndustry": "IT Services","corporateWebsite": "https://www.sogeti.nl","datePublished": "2026-07-08T00:00:00.000Z","age": 2,"hiringDemand": { "isUrgentHire": false, "isHighVolumeHiring": false }}
Examples
All developer jobs in Amsterdam, newest first
{ "query": "developer", "location": "Amsterdam", "sort": "date", "maxItems": 100 }
Remote marketing jobs across the Netherlands
{ "query": "marketing", "location": "", "remoteOnly": true, "maxItems": 50 }
Scrape a specific Indeed search URL
{ "startUrls": [{ "url": "https://nl.indeed.com/jobs?q=data+analyst&l=Rotterdam&sort=date" }], "maxItems": 30 }
Daily feed of jobs posted in the last 24 hours
{ "query": "verpleegkundige", "location": "Utrecht", "fromDays": "1", "sort": "date", "maxItems": 0 }
๐ฐ Pricing
$0.76 per 1,000 results โ you only pay for successfully retrieved listings. Failed retries are never charged.
You are charged per job returned to the dataset. A run that returns 50 jobs costs 50 ร $0.76 / 1,000.
Subscription tiers lower the rate further, from $0.73 per 1,000 down to $0.64 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance & limitations
- Descriptions are included with every job โ there is no separate detail step to enable.
- Salary is present on roughly one in five listings, because Indeed itself only shows it for some jobs.
- Company profile fields (industry, size, revenue, website) are filled when Indeed publishes them for the employer.
- Indeed caps how deep any single search can page. For large harvests, split by city, keyword or posted-within window using multiple runs or
startUrls. - The scraper returns company-level data only. It never returns personal or contact-person data.
Need a custom scraper?
Unfenced Group builds Apify actors for any website โ for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results โ we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl