B2BStars / Kompass Company Scraper
Pricing
from $0.00005 / actor start
B2BStars / Kompass Company Scraper
Scrape B2B company contact data from b2bstars.com (Kompass partner): name, address, phone, website, sectors, and more.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Luuk Zoutendijk
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract structured B2B company data from b2bstars.com — a Kompass partner site with millions of companies across Europe. Search by keyword, sector, or country and collect contact details, firmographics, and more at scale.
What it does
This Actor crawls B2BStars search results and visits each company profile to extract:
| Field | Description | Requires includeDetails |
|---|---|---|
companyName | Official registered company name | No |
city | City | No |
country | Country (ISO code) | No |
sectors | Comma-separated industry sectors | No |
rating | Kompass star rating (0–5) | No |
url | B2BStars profile URL | No |
website | Company website URL | Yes |
phone | Phone number | Yes |
email | Email address | Yes |
address | Street address | Yes |
employees | Employee count or range (e.g. 10-49) | Yes |
revenue | Annual revenue or turnover range | Yes |
yearOfEstablishment | Year the company was founded | Yes |
description | Company description text | Yes |
fax | Fax number | Yes |
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | string[] | [] | Direct b2bstars.com search URLs. If provided, all other parameters are ignored. |
searchQueries | string[] | [] | List of keywords to search. Each runs as a separate search. Overrides searchQuery. |
searchQuery | string | "" | Single keyword or sector to search for. |
countries | string[] | ["NL"] | ISO country codes to filter. Supports all Kompass countries (NL, DE, FR, BE, GB, ES, IT, …). |
maxResults | integer | 100 | Maximum total companies to scrape across all queries and pages. |
includeDetails | boolean | true | Visit each profile page for full contact and firmographic data. Disable for fast, basic-only runs. |
Example — single query
{"searchQuery": "software","countries": ["NL"],"maxResults": 50}
Example — multiple queries across countries
{"searchQueries": ["software", "construction", "logistics"],"countries": ["NL", "DE", "BE"],"maxResults": 500}
Example — fast mode (basic data only, no profile visits)
{"searchQuery": "accountant","countries": ["NL"],"maxResults": 200,"includeDetails": false}
Example — direct URL
{"searchUrls": ["https://www.b2bstars.com/nl/kompass/company?q=engineering&countries=DE"]}
Output
Results are stored in the Dataset tab. Each item is one company:
{"companyName": "Qlic Internet Solutions B.V.","city": "Amsterdam","country": "NL","sectors": "Internet services, Software development","rating": 3,"url": "https://www.b2bstars.com/nl/kompass/company/qlic-internet-solutions-bv","website": "https://qlic.nl","phone": "+31 20 123 4567","email": "info@qlic.nl","address": "Herengracht 182","employees": "10-49","revenue": "€1M - €5M","yearOfEstablishment": "2005","description": "Full-service digital agency specialising in web development and e-commerce."}
Export as JSON, CSV, or Excel from the Apify Console or via the API.
Pricing
This Actor uses pay-per-event pricing — you pay only for what you actually scrape.
| Mode | Events charged | Cost per 1,000 companies |
|---|---|---|
Basic (includeDetails: false) | company-found | $2.00 |
Full details (includeDetails: true) | company-found + company-profile | $5.00 |
No charge for starting a run. Costs are transparent and predictable.
Use cases
- Sales prospecting — Build targeted B2B lead lists filtered by sector, size, and country
- Market research — Map competitors and suppliers across European markets
- CRM enrichment — Fill gaps in existing company records with verified contact data
- Partner sourcing — Find distributors or suppliers by product category and region
- Bulk data collection — Run multiple queries in one job with
searchQueries
AI agent instructions
This Actor is designed for use inside AI/LLM agent workflows. The structured JSON output is suitable for downstream processing, filtering, and enrichment tasks.
Suggested task descriptions for AI agents
Use the
luzodi/b2bstars-kompass-scraperActor to find B2B companies. Pass asearchQuery, an array ofcountries, and setmaxResults. The output dataset contains one JSON object per company with fields:companyName,website,phone,city,country,sectors,employees,revenue,yearOfEstablishment. Use the Apify API to start a run and poll for completion, then retrieve the dataset items.
Starting a run via Apify API
POST https://api.apify.com/v2/acts/luzodi~b2bstars-kompass-scraper/runsAuthorization: Bearer YOUR_API_TOKENContent-Type: application/json{"searchQuery": "software","countries": ["NL", "DE"],"maxResults": 100,"includeDetails": true}
Retrieving results
GET https://api.apify.com/v2/acts/luzodi~b2bstars-kompass-scraper/runs/last/dataset/itemsAuthorization: Bearer YOUR_API_TOKEN
Output schema (TypeScript)
interface Company {companyName: string;city: string;country: string;sectors: string;rating: number;url: string;// Present when includeDetails is true:website?: string;phone?: string;email?: string;address?: string;employees?: string;revenue?: string;yearOfEstablishment?: string;description?: string;fax?: string;}
Integration notes for AI agents
maxResultscontrols the total output size — set it to match your downstream needs to avoid over-scraping- Use
includeDetails: falsewhen you only need company names and sectors for a quick lookup - Use
searchQueriesto batch multiple keywords into a single run instead of chaining separate runs - The
emailandphonefields may be empty if the company has not published contact details on B2BStars sectorsis a comma-separated string — split on", "to get an array
Running locally
Requirements
- Python 3.10+
- Apify CLI
Installation
git clone https://github.com/LuukZout/luzodi.gitcd luzodipython -m venv .venv.venv\Scripts\activate # Windowssource .venv/bin/activate # macOS / Linuxpip install -r requirements.txtplaywright install chromium
Run locally
Edit storage/key_value_stores/default/INPUT.json with your search parameters, then:
$apify run
Note: Running locally without a proxy may result in rate limiting. Deploy to Apify for reliable results using their residential proxy network.
Deploy to Apify
apify loginapify push
Notes
- Phone numbers may be empty if hidden behind the B2BStars paywall
- The Actor applies stealth techniques to bypass bot detection
- Pagination is handled automatically up to
maxResults - Multiple
searchQueriesrun sequentially and share themaxResultsbudget
Built by
Luzodi — github.com/LuukZout/luzodi