Kompass Company Directory Scraper avatar

Kompass Company Directory Scraper

Pricing

from $0.09 / 1,000 company records

Go to Apify Store
Kompass Company Directory Scraper

Kompass Company Directory Scraper

Extract public Kompass company and supplier records by country, category, search, or profile URL for B2B sales, sourcing, procurement, and market research.

Pricing

from $0.09 / 1,000 company records

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

12 days ago

Last modified

Categories

Share

Extract structured public company and supplier records by keyword and country or from Kompass country-directory URLs.

Search directly with a keyword plus ISO two-letter country code, or use directory, category, search, and individual company profile URLs from multiple Kompass country domains in one run. The Actor returns company names, locations, descriptions, business activities, employee ranges, public websites, and profile identifiers from an anonymous public partner surface.

What this Actor does

Kompass Company Directory Scraper turns supplier discovery into a reusable dataset.

It can:

  • search directly by keyword and one country per search object;
  • accept public Kompass URLs from multiple country domains;
  • infer the country and search intent from each URL;
  • paginate through matching company results;
  • enrich directory cards with public profile fields;
  • deduplicate companies across overlapping inputs;
  • preserve useful card data when one detail page fails;
  • stop at a global maxItems limit;
  • export results as JSON, CSV, Excel, XML, or RSS through Apify.

The implementation uses server-rendered data from a public Kompass partner directory when direct Kompass HTML is protected by DataDome. It needs no browser or paid proxy traffic. Every row includes both the original sourceUrl and the exact dataSourceUrl, so data provenance stays explicit.

Who is it for

B2B sales teams

Build prospect lists by country and business category, then send public company websites and addresses to a CRM enrichment step.

Sourcing and procurement analysts

Compare manufacturers and suppliers across markets without manually copying company cards.

Manufacturers and distributors

Research potential channel partners, vendors, and competitors in repeatable batches.

Import and export teams

Refresh country-specific supplier lists on a schedule and compare changes over time.

Market researchers

Create structured market maps with company, city, activity, and employee-range fields.

Why use this Actor

  • Simple discovery: search by keyword and country without constructing a Kompass URL.
  • URL compatible: existing Kompass URL workflows continue to work unchanged.
  • Multi-country: mix us.kompass.com, gb.kompass.com, and other two-letter country domains.
  • Partial-result safe: directory-card records are retained if optional profile enrichment fails.
  • Transparent provenance: input and extraction URLs are recorded separately.
  • Bounded: global record and per-URL page limits prevent accidental unbounded crawls.
  • Typed output: stable fields are ready for spreadsheets, databases, agents, and APIs.
  • Public scope only: no EasyBusiness account, private export, or CAPTCHA solving is required.

Supported inputs

Provide at least one searches entry or startUrls entry. A direct search pairs one keyword with one ISO two-letter country code, for example {"keyword":"industrial valves","countryCode":"US"}. This one-to-one structure prevents an accidental query-by-country cross product.

The Actor also accepts these public URL families:

  1. Country manufacturer directories, for example: https://us.kompass.com/x/producer/
  2. Category or activity pages, for example: https://us.kompass.com/a/industrial-machinery/
  3. Search pages with searchKeywords or q query parameters.
  4. Company profile pages, for example: https://us.kompass.com/c/nasbite-international/us946509/

The host must be a two-letter Kompass country domain. Login, cart, checkout, EasyBusiness, and export URLs are intentionally rejected or unsupported.

Data extracted

FieldMeaning
companyNamePublic company name
profileUrlPublic extracted profile URL, or the canonical Kompass URL for profile-only fallback
companyIdPublic profile identifier when exposed
verifiedVerification status, or null when not published
city, countryPublic company location
address, postalCodePublic address fields
descriptionPublic company description
supplierActivitiesBusiness categories and supplier activities
productsPublic product names when available
employeeRangePublished employee-count band
rating, reviewCountPublic partner-directory review information
phone, emailPublic values when exposed without login
phoneAvailable, emailAvailableContact availability only when the public source establishes it; otherwise null
websitePublic company website
sourceUrlOriginal Kompass input URL
dataSourceUrlExact page used to extract the record
scrapedAtISO 8601 extraction timestamp

Unavailable fields are returned as null or an empty array. The Actor never invents contact data.

Getting started

  1. Open the Actor in Apify Console.
  2. Add a keyword/country search, a public Kompass URL, or both.
  3. Keep maxItems small for your first run.
  4. Leave Enrich company profiles enabled for descriptions, addresses, and websites.
  5. Set a page safety limit for each input URL.
  6. Start the run.
  7. Open the Companies dataset view.
  8. Export the results or connect the dataset to your workflow.

A small direct-search input:

{
"searches": [
{ "keyword": "industrial valves", "countryCode": "US" }
],
"maxItems": 25,
"includeDetails": true,
"maxPagesPerUrl": 3
}

Input parameters

searches

Optional array of direct discovery objects. Every object requires a non-empty keyword and one ISO two-letter countryCode, such as US or GB.

startUrls

Optional array of public Kompass URLs. Strings and request-list objects with a url field are supported by the Apify input editor. At least one searches or startUrls item is required.

maxItems

Maximum unique companies saved across all URLs and direct searches.

  • default: 25
  • minimum: 1
  • maximum: 10000

includeDetails

When true, the Actor fetches public profile HTML to add description, address, postal code, website, verification, products, and detailed categories.

When false, it returns faster card-level records. Fields available only on detail pages remain null.

maxPagesPerUrl

Pagination safety limit applied separately to every directory, category, or search URL.

  • default: 10
  • minimum: 1
  • maximum: 100

Output example

A representative current record looks like this:

{
"companyName": "Example Industrial Systems LLC",
"profileUrl": "https://www.b2bstars.com/en-us/kompass/company/example-industrial-systems-llc",
"companyId": "1234567",
"verified": null,
"city": "Springfield",
"country": "US",
"address": "100 Example Avenue",
"postalCode": "12345",
"description": "Supplier of industrial automation equipment and maintenance services.",
"supplierActivities": [
"Manufacturing",
"Industrial machinery"
],
"products": [],
"employeeRange": "50-99",
"rating": 4,
"reviewCount": 42,
"phone": null,
"phoneAvailable": null,
"email": null,
"emailAvailable": null,
"website": "https://www.example.com",
"sourceUrl": "https://us.kompass.com/x/producer/",
"dataSourceUrl": "https://www.b2bstars.com/en-us/kompass/company/example-industrial-systems-llc",
"scrapedAt": "2025-01-15T12:00:00.000Z"
}

The example is anonymized. Actual output reflects public source values.

How much does it cost to scrape Kompass company records?

This Actor uses pay-per-event pricing.

EventPrice
Run start$0.005 per run
Company record, Free plan$0.00016963 per record
Company record, Bronze plan$0.00014751 per record
Company record, Silver plan$0.00011506 per record
Company record, Gold plan$0.000088504 per record

Higher Apify plans receive lower per-record tiers shown in Console.

Examples before Apify platform usage charges:

  • 25 records on Free: about $0.00924
  • 100 records on Free: about $0.02196
  • 1,000 records on Bronze: about $0.15251

A record is charged only after it is saved to the dataset. Optional detail enrichment does not create a second record charge.

Accuracy and completeness

Kompass coverage and public fields vary by company and country.

  • A directory card may contain only name, city, country, and category.
  • A public partner profile may add description, address, website, and employee range.
  • Phone and email fields are often absent from anonymous pages.
  • verified remains null when verification is not published by the extraction surface.
  • products remains empty when no public product list is exposed.
  • A canonical profile URL not found on the partner surface produces a useful identity record from its public slug, country, and company ID.

Use null-aware processing downstream.

Pagination, limits, and deduplication

maxItems is global. If the first URL reaches the limit, later URLs are not visited.

maxPagesPerUrl prevents one broad directory from consuming an unbounded run.

Equivalent URL and direct-search seeds are normalized before crawling. Company records are then deduplicated by public company ID, with normalized company name plus country as a fallback.

Failure behavior

Malformed URLs and unsupported hosts fail with a non-zero exit code.

Transient profile failures preserve card-level data and emit a warning.

A run fails rather than silently succeeding with zero records when no useful companies can be produced.

If an individual canonical profile is not available on the public partner directory, the Actor preserves its canonical Kompass identity fields and logs that enrichment was unavailable.

Workflow ideas

Supplier-list refresh

Schedule the Actor weekly, export the dataset, and upsert rows into your procurement database by country and normalized company name.

CRM enrichment

Send companyName, website, city, and supplierActivities to HubSpot, Salesforce, or a custom CRM workflow.

Multi-country comparison

Combine equivalent category URLs from several Kompass country domains. Group results by country and supplierActivities in a spreadsheet or BI tool.

Website research pipeline

Pass non-null website values to a website contact finder or company-intelligence Actor.

AI supplier screening

Give an agent the typed descriptions and activity lists, then ask it to rank suppliers against sourcing criteria. Keep final procurement decisions under human review.

Run with the Apify API

Set APIFY_TOKEN in your environment.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~kompass-company-directory-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searches": [{"keyword":"industrial valves","countryCode":"US"}],
"maxItems": 25,
"includeDetails": true,
"maxPagesPerUrl": 3
}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/kompass-company-directory-scraper').call({
searches: [{ keyword: 'industrial valves', countryCode: 'US' }],
maxItems: 25,
includeDetails: true,
maxPagesPerUrl: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/kompass-company-directory-scraper').call(run_input={
'searches': [{'keyword': 'industrial valves', 'countryCode': 'US'}],
'maxItems': 25,
'includeDetails': True,
'maxPagesPerUrl': 3,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Claude Code

Add the Apify MCP server to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/kompass-company-directory-scraper"

Claude Desktop

Add this remote MCP server to your Claude Desktop configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/kompass-company-directory-scraper"
}
}
}

Cursor

Open Settings → Tools & MCP, add a remote HTTP server, and use:

https://mcp.apify.com?tools=automation-lab/kompass-company-directory-scraper

VS Code

Add the same remote HTTP URL to your workspace MCP configuration, then enable the automation-lab/kompass-company-directory-scraper tool.

Example prompts:

  • “Find 50 industrial valve suppliers in the US with the Kompass Company Directory Scraper.”
  • “Run the Kompass Company Directory Scraper for this US manufacturer URL and return 50 companies.”
  • “Compare activity categories from these US and UK Kompass URLs.”
  • “Extract the public profile identity for this Kompass company URL.”

Integrations

Use Apify integrations to send completed datasets to:

  • Google Sheets;
  • Slack;
  • Zapier;
  • Make;
  • webhooks;
  • Amazon S3;
  • GitHub Actions;
  • custom applications through apify-client.

For large workflows, consume dataset pages incrementally instead of loading the full export into memory.

Responsible use and legality

This Actor extracts public business-directory information.

You are responsible for:

  • complying with applicable laws and website terms;
  • using business contact information for a lawful purpose;
  • honoring marketing consent and opt-out requirements;
  • minimizing personal data;
  • securing exported datasets;
  • respecting intellectual-property and database rights.

The Actor does not access EasyBusiness, login-only exports, decision-maker records, or private credentials. Do not use it to circumvent access controls.

Data handling, AI, affiliation, and support

  • The Actor uses deterministic HTTPS extraction and local parsing. It does not call an AI model or send input/output to an AI provider.
  • B2BStars is the public third-party extraction surface. No paid source account, external database, proxy service, or user-supplied credential is required.
  • Records and operational logs are stored only in the user's Apify run storage under that account's retention settings. The Actor keeps no external cache or separate copy; users can delete runs and datasets through Apify storage controls.
  • The icon is an Automation Lab asset. Kompass and B2BStars are named only to identify public data sources; this Actor is not affiliated with, endorsed by, or certified by either company.
  • For help, use the Actor's Issues tab in Apify Console and include a run ID plus sanitized input. Do not include credentials or private personal data.

Troubleshooting

“Unsupported host”

Use a public two-letter Kompass country domain such as us.kompass.com or gb.kompass.com.

“Unsupported Kompass URL shape”

Use a directory, category, search, or /c/... company profile URL. Login, checkout, and arbitrary pages are not supported.

Fewer fields than expected

Turn on includeDetails. Some companies still publish only partial anonymous information; null fields are expected.

A profile returned only identity fields

The canonical profile was not indexed by the public partner directory. The Actor preserved the name slug, country, profile URL, and public company ID rather than inventing details.

No records

Check that the URL describes a real public company/category, reduce filters, and inspect the run log. The Actor fails empty runs so automation can detect them.

Use related sources when you need broader marketplace coverage, then deduplicate by company website and normalized name.

FAQ

Does it require a Kompass account?

No. The Actor is limited to anonymous public fields.

Does it scrape EasyBusiness exports or decision makers?

No. Paid exports, login-only records, and private decision-maker data are out of scope.

Can I use multiple countries in one run?

Yes. Add URLs from multiple two-letter Kompass country domains to startUrls.

Does maxItems apply per URL?

No. It is the global dataset limit. maxPagesPerUrl is the per-URL safety limit.

Why is profileUrl sometimes a partner-directory URL?

Direct Kompass HTML is protected by DataDome. The Actor uses a public Kompass partner directory and records the exact extraction page in dataSourceUrl. For unmatched profile inputs, the canonical Kompass URL is retained.

Are phone numbers and emails guaranteed?

No. The current anonymous partner surface does not expose reliable phone/email semantics, so phone, email, phoneAvailable, and emailAvailable remain null. The Actor does not turn an unknown contact state into false.

Can I schedule recurring runs?

Yes. Use Apify schedules and a webhook or integration to process each completed dataset.

Is the output stable?

Field names and types are stable, but source completeness varies. Build downstream logic that accepts null and empty arrays.