Vdab Jobs Search Scraper
Pricing
from $0.80 / 1,000 results
Vdab Jobs Search Scraper
Scrape job listings from VDAB.be, Belgium's leading public employment service. Extract job titles, company names, locations, working schedules, experience levels, and more — perfect for labor market analysis and recruitment research.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Stealth mode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
VDAB.be Jobs Scraper: Extract Belgian Job Listings Instantly
What Is VDAB.be?
VDAB (Vlaamse Dienst voor Arbeidsbemiddeling en Beroepsopleiding) is the official Flemish public employment service in Belgium, listing thousands of vacancies across all industries and regions. The platform is a primary source for Belgian labor market data. Manually collecting listings at scale is impractical — the VDAB.be Jobs Scraper automates extraction from search result pages, delivering structured records ready for analysis.
Overview
The VDAB Jobs Scraper targets VDAB's vacancy search pages and returns clean, structured job data per listing. It is built for:
- HR analysts tracking Belgian labor market trends
- Recruiters monitoring vacancy activity by region or function
- Researchers studying shortage occupations and employment patterns
- Developers feeding Belgian job data into aggregator platforms
The scraper supports bulk URL input, configurable item limits, and fault-tolerant URL handling.
Input Format
The Actor supports two scraping modes — use only one at a time:
- Scrape by URLs — scrape data directly from a list of VDAB job search result URLs.
{"urls": ["https://www.vdab.be/vindeenjob/vacatures?trefwoord=engi&sort=standaard&p=2"],"ignore_url_failures": true,"max_items_per_url": 50}
- Scrape by search filters — scrape data using a keyword and additional filters (location, radius, contract type, work mode, domain, etc.) instead of providing URLs.
{"keyword": "engi","location": "9000%20Gent","radius": 60,"sort_by": "standaard","published_at": "6","contract_type": "8","work_mode": "V","timing_arrangement": "D","domain": "JOBCAT01","experience": "3","degree": "C","page": 1,"max_items_per_url": 200}
There is also a General settings group that applies to both modes.
1. Scrape by URLs
Use this mode when you already have specific search result URLs. When this mode is used, all options in the "Scrape by search filters" section will be disabled.
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | (required) | One or more VDAB job search result page URLs to scrape. Supports pagination via the &p= parameter. You can paste URLs one by one, or use the Bulk edit section to add a prepared list. |
ignore_url_failures | boolean | true | If true, the scraper skips failed URLs and continues running instead of stopping the entire run. |
Tip: To collect across multiple pages, add each paginated URL separately (e.g.,
&p=1,&p=2,&p=3).
2. Scrape by search filters
Use this mode when you want to search using a keyword and additional filter attributes instead of scraping by URLs. If you use this mode, leave the urls field above empty.
| Field | Type | Default | Description |
|---|---|---|---|
keyword | string | — | The keyword to search for (trefwoord). |
location | string | — | The location to search for. Check valid locations in the URL, e.g. https://www.vdab.be/vindeenjob/vacatures?trefwoord=engi&locatie=9000%20Gent&locatieCode=2521 → use 9000%20Gent. |
radius | integer ("", 0, 2, 5, 10, 20, 30, 40, 60) | — | Search radius in km around the location: All, 0, 2, 5, 10, 20, 30, 40, or 60 km. |
sort_by | string (standaard, datum, relevantie) | — | Sort results by Standard (standaard), Date (datum), or Relevance (relevantie). |
contract_type | string | — | Contract type filter. Options: All, Permanent jobs, Temporary jobs, Flexijob, Student jobs, Temporary jobs with permanent option, Service voucher job, Alternating training agreement, Employment measures, Self-employed activity, Reserve pool, Government examinations. |
published_at | string (9000, 1, 6) | — | Filter by publish date: All jobs (9000), Today or yesterday (1), Past week (6). |
work_mode | string ("", V, D) | — | Work mode: All (empty), Full time (V), Part time (D). |
timing_arrangement | string | — | Working time arrangement. Options: All, Day work, 2-shift system, 3-shift system, Night work, Weekend work, Interrupted service, Continuous system. |
domain | string | — | Job category/domain. Options: All, Purchase, Administration, Construction, Communication, Creative, Services, Financial, Health, Hospitality and tourism, Human resources, ICT, Legal, Agriculture and horticulture, Logistics and Transport, Management, Marketing, Maintenance, Education, Research and development, Government, Production, Technique, Sell, Other. |
experience | string ("", 0, 1, 2, 3, 4) | — | Required experience level: Any, Not important, No experience, Limited experience, At least 2 years of experience, At least 5 years of experience. |
degree | string ("", A, B, C, F, D, E) | — | Required education level: Any, None, Primary education, Secondary education, Graduate/HBO5, Bachelor, Master. |
page | integer | — | The page number to start scraping from. |
3. General settings
Applies to both scraping modes above.
| Field | Type | Default | Description |
|---|---|---|---|
max_items_per_url | integer | 20 | The maximum number of job records to collect per URL/search. |
Building Your Search URL (for Scrape by URLs mode)
Navigate to vdab.be/vindeenjob, apply your desired filters (keyword, location, contract type, domain, etc.), then copy the resulting URL from your browser. The URL encodes all parameters, including:
trefwoord— keyword searchlocatie/locatieCode— location and its codesort— result ordering (standaard,datum,relevantie)p— pagination index
Example use case: The prefilled URL searches for jobs matching the keyword
engi, sorted by standard order, starting from page 2.
Output Format
Sample output
{"id": {"id": 73588810},"is_closed": false,"first_publication_date": "2026-04-28T05:58:36Z","last_modified_date": "2026-04-28T05:58:36Z","total_jobs": 1,"layout": {"logo": "https://cdn.app-prd-cdn.aws.vdab-prd.be/vindeenjob/templates/bedrijven/2969/mobileLogo.png","alt_text": "Logo LGA Engineering"},"job_function": {"naam": "Aftersales Project Engineer","arbeidscircuit_lijn": "Vaste job"},"company_name": "LGA Engineering","employment_location_region_or_address": "BEVEREN-KRUIBEKE-ZWIJNDRECHT","supplier": {"type": "INTERMEDIAIREN","gemandateerd": true,"bedrijven_galerij_id": 2969},"duplicates": [],"working_schedule": ["Dagwerk"],"experience": "Minstens 2 jaar ervaring","shortage_occupation": true,"location": {}}
Each job listing returns a flat record with the following fields:
Identification & Status
| Field | Meaning |
|---|---|
ID | Unique VDAB internal identifier for the vacancy |
Is Closed | Boolean flag — true if the vacancy is no longer accepting applications |
First Publication Date | Date the listing first appeared publicly on VDAB |
Last Modified Date | Timestamp of the most recent update to the listing |
Total Jobs | Number of open positions associated with this vacancy |
Job Details
| Field | Meaning |
|---|---|
Layout | Display type or listing format used on the platform |
Job Function | Occupational category or function title (e.g., Engineer, Sales) |
Working Schedule | Contract schedule type (e.g., full-time, part-time, shifts) |
Experience | Required experience level (e.g., no experience, 1–2 years, senior) |
Shortage Occupation | Flags whether the role is classified as a Flemish shortage occupation (knelpuntberoep) — useful for policy research |
Location & Company
| Field | Meaning |
|---|---|
Company Name | Name of the hiring employer |
Employment Location Region Or Address | Work location, which may be a full address or a regional label |
Location | Structured location data (city, municipality, or coordinates) |
Sourcing Metadata
| Field | Meaning |
|---|---|
Supplier | Source or partner channel that submitted the vacancy to VDAB |
Duplicates | Indicates whether similar or duplicate listings were detected for this vacancy |
How to Use
- Build your search URL — Go to vdab.be/vindeenjob/vacatures, apply your filters (keyword, region, sector), then copy the URL from the browser.
- Add pagination if needed — Append
&p=2,&p=3, etc. for additional result pages. - Configure the input — Paste URLs into the
urlsarray, setmax_items_per_urlto your desired limit. - Run the scraper — Start the actor and monitor progress in the run log.
- Export — Download results as JSON, CSV, or Excel.
Common issues:
- Only use search result page URLs, not individual job detail pages.
- If results seem incomplete, check whether VDAB's search applied a region filter that limits output.
- Set
ignore_url_failures: truefor bulk runs to avoid interruptions from occasional page timeouts.
Use Cases & Business Value
- Labor market research: Identify high-demand roles and shortage occupations in Flanders
- Recruitment intelligence: Track hiring activity by company, region, or job function
- Policy analysis: Monitor trends in
Shortage Occupationflags over time - Job aggregation: Enrich Belgian job boards with structured VDAB data
Conclusion
The VDAB.be Jobs Scraper provides reliable, structured access to Belgium's largest public job database. With fields covering job function, location, schedule, experience, and shortage occupation status, it delivers the depth needed for serious labor market work. Configure your search, run the scraper, and get clean data in minutes.