Actiris Scraper — Brussels Jobs with Company Numbers avatar

Actiris Scraper — Brussels Jobs with Company Numbers

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Actiris Scraper — Brussels Jobs with Company Numbers

Actiris Scraper — Brussels Jobs with Company Numbers

Scrape actiris.brussels — Brussels' official employment service — for structured job data: bilingual FR/NL titles, KBO company numbers, CEFR language requirements, contract details, company descriptions and full listings. 30,000+ active jobs.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

3

Monthly active users

4 days ago

Last modified

Share

Actiris Scraper

Actiris Scraper

Extract job listings from actiris.brussels at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.


Why this scraper?

🎯 Built for Brussels (Belgium)

A dedicated Brussels scraper, not a global tool with a country dropdown. Search, filters and locations are tuned for actiris.brussels.

📄 Complete job data

Bilingual FR/NL titles, full descriptions in text, HTML and Markdown, company registry numbers, contract details and publish dates for every record.

🇧🇪 Structured language requirements

Every job's CEFR language requirements — French, Dutch and more — with comprehension, writing, reading and speaking levels, and whether each language is required or an asset. This is the field that matters most in bilingual Brussels.

🏢 Company registry data

The KBO/BCE company number and a direct link to the official Belgian company register for every listing, plus a verified company logo URL when one exists.

📍 Complete location data

Structured location for every listing. Where the source leaves the municipality blank, it is filled from the postal code, so location is present on every record.

🔁 Change detection

Every record carries a stable content hash and change status, so scheduled feeds return genuinely new jobs instead of duplicates.


Input parameters

ParameterTypeDefaultDescription
searchQuerystring(empty)Search keyword, e.g. 'developer', 'chauffeur'. Leave blank for all jobs.
postalCodesarray(empty)Filter by Belgian postal code(s), e.g. ["1000", "1050"].
contractTypesarray(empty)Filter by contract type(s): CDI, CDD, Interim, Freelance, Stage.
imtDomainsarray(empty)Filter by Actiris IMT job-family codes.
workTimestring(empty)Filter by work schedule: full-time or part-time.
daysOldinteger(empty)Only return jobs published within the last N days. Leave blank for all.
fetchDetailsbooleanfalseON: fetches full description, company description, candidate profile, benefits, diploma and language requirements. OFF: returns listing-level fields only (faster, lower cost).
descriptionFormatstringallWhich description format to keep: all, text, html or markdown.
compactbooleanfalseReturn core fields only, for AI-agent and MCP pipelines.
excludeEmptyFieldsbooleanfalseDrop null and empty fields from each record.
maxItemsinteger5Maximum number of jobs to scrape (0 = no limit).

Output schema

Listing-level fields are present on every record. Detail-level fields are populated when fetchDetails is on and the source publishes them for that job; otherwise they are null.

Listing-level (always present)

FieldTypeDescription
idstringUnique listing ID from the source.
urlstringDirect link to the listing.
applyUrlstringDirect link to apply.
titlestringJob title.
titleNlstringJob title in Dutch.
titleFrstringJob title in French.
kboNumberstringBelgian company registry (KBO/BCE) number.
kboRegistryUrlstringLink to the official company register entry.
locationstringMunicipality as displayed.
locationNlstringMunicipality in Dutch.
locationFrstringMunicipality in French.
postalCodestringPostal code of the position.
countrystringCountry code.
contractTypestringContract type in plain English.
contractDurationstringContract duration code (CDI, CDD, etc.).
contractDurationLabelstringContract duration as published.
imtDomainstringActiris IMT job-family code.
typeOffrestringOffer type used by the source.
publishDatestringDate posted.
modifiedDatestringDate last modified.
sourcestringSource domain.
scrapedAtstringISO 8601 scrape timestamp.
contentHashstringStable hash of the listing, used for change detection.

Detail-level (with fetchDetails on)

FieldTypeDescription
descriptionTextstringFull job description in plain text.
descriptionHtmlstringFull job description in HTML.
descriptionMarkdownstringFull job description in Markdown.
companyDescriptionstringDescription of the employer.
candidateProfilestringRequired candidate profile.
diplomastringRequired diploma, when specified.
benefitsstringBenefits offered, when specified.
additionalInfostringAdditional information, when specified.
companyLogostringVerified company logo URL, when one exists.
languageRequirementsarrayPer-language CEFR requirements (see below).

Each entry in languageRequirements contains the language, a required flag (true = required, false = asset), and comprehension, writing, reading and speaking levels.

Example record

{
"id": "5890038",
"url": "https://www.actiris.brussels/nl/burgers/jobadvertentie/?reference=5890038&type=Select",
"applyUrl": "https://www.actiris.brussels/nl/burgers/jobadvertentie/?reference=5890038&type=Select",
"title": "Infirmier breveté ou bachelier H/F/X",
"titleNl": "Infirmier breveté ou bachelier H/F/X",
"titleFr": "Infirmier breveté ou bachelier H/F/X",
"kboNumber": "0239843188",
"kboRegistryUrl": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?ondernemingsnummer=0239843188",
"companyLogo": "https://my.actiris.brussels/Repository/Tiers/0239843188/fr.png",
"location": "Sint-Jans-Molenbeek",
"locationNl": "Sint-Jans-Molenbeek",
"locationFr": "Molenbeek-Saint-Jean",
"postalCode": "1080",
"country": "BE",
"contractType": "Permanent",
"contractDuration": "CDI",
"contractDurationLabel": "Arbeidsovereenkomst voor onbepaalde duur",
"imtDomain": "S'6",
"publishDate": "2026-07-03",
"modifiedDate": "2026-07-07",
"companyDescription": "L'employeur est une maison médicale pluridisciplinaire située sur Molenbeek-Saint-Jean.",
"candidateProfile": "Nous recherchons un infirmier diplômé breveté ou bachelier (H/F/X).",
"diploma": "Bachelor",
"benefits": "Contrat CDI Mi-temps. Jours de prestations et horaires à convenir.",
"languageRequirements": [
{
"language": "Frans",
"required": true,
"comprehension": "Onafhankelijk + (B2)",
"writing": "Onafhankelijk + (B2)",
"reading": "Onafhankelijk + (B2)",
"speaking": "Onafhankelijk + (B2)"
},
{
"language": "Arabisch",
"required": false,
"comprehension": "Onafhankelijk - (B1)",
"writing": "Geen kennis",
"reading": "Geen kennis",
"speaking": "Onafhankelijk - (B1)"
}
],
"source": "actiris.brussels",
"scrapedAt": "2026-07-07T10:09:00.000Z",
"contentHash": "d184329f5857b600"
}

Examples

All nurse roles with full details:

{
"searchQuery": "infirmier",
"fetchDetails": true,
"maxItems": 100
}

Only jobs from the last 3 days:

{
"searchQuery": "vendeur",
"daysOld": 3,
"maxItems": 100
}

Compact output for an AI pipeline:

{
"searchQuery": "developer",
"fetchDetails": true,
"compact": true,
"descriptionFormat": "markdown",
"maxItems": 100
}

Daily feed (run on a schedule):

{
"daysOld": 1,
"maxItems": 500
}

Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.


💰 Pricing

$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.

ResultsCost
100~$0.15
1,000~$1.50
10,000~$15
100,000~$150

Subscription tiers lower the rate to $0.90 per 1,000 at the highest tier. Use the Max results cap in the input to control spend exactly.


Performance

Run sizeTypical time
100 resultsunder 1 minute
1,000 results2–4 minutes
10,000 results20–35 minutes

Detail fetching adds one request per job, so runs with fetchDetails on take longer.


Known limitations

  • Actiris does not publish salary, so there are no salary fields.
  • Detail-level fields such as company description, benefits and language requirements are returned when the source publishes them for a given job, and are null when it does not.
  • The employer name is not exposed by the source and is not returned. The company registry number and register link are provided instead.
  • Very large result sets are bounded by the source's own paging limits.
  • Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.

What we do not collect

This scraper returns company-level and job-level data only. It does not collect recruiter names, personal emails, personal phone numbers or individual contact details. Company registry data and reputation metrics are company-level and are included.


Technical details

  • Source: actiris.brussels — Brussels (Belgium) job listings
  • Coverage: everything the public search exposes, filterable via the input parameters above
  • Retry: automatic retry on network errors with exponential backoff

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