# Sales Navigator Company Search Scraper (`maximedupre/sales-navigator-company-search-scraper`) Actor

Find matching public companies from a Sales Navigator company or account search URL, or search by industry and location criteria. Get names, public company pages, IDs, and available firmographic details without a customer source login.

- **URL**: https://apify.com/maximedupre/sales-navigator-company-search-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 66.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$9.00 / 1,000 company matches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🔎 Find public companies from Sales Navigator searches

Sales teams, researchers, and account planners can turn one Sales Navigator company or account search into structured public-company records. Review company names, canonical public company pages, IDs, and available firmographic details in a dataset, with partial enrichment shown when some public fields are not available.

**Try these workflows**

- Turn one Sales Navigator URL into matching public company records with [**Sales Navigator company search**](https://apify.com/maximedupre/sales-navigator-company-search-scraper/examples/sales-navigator-company-search).
- Search public companies by industry and location criteria with [**company search scraper**](https://apify.com/maximedupre/sales-navigator-company-search-scraper/examples/company-search-scraper).
- Refine discovery with a company name or keyword phrase through [**LinkedIn company search**](https://apify.com/maximedupre/sales-navigator-company-search-scraper/examples/linkedin-company-search).
- Run a Sales Navigator account search for public company records with [**Sales Navigator Scraper**](https://apify.com/maximedupre/sales-navigator-company-search-scraper/examples/sales-navigator-scraper).
- Review each match as a company profile record with [**company profile scraper**](https://apify.com/maximedupre/sales-navigator-company-search-scraper/examples/company-profile-scraper).

#### 🧾 Public company records for account research

**What you get**

Each saved dataset row is one matching public company. Rows identify the company with its name, canonical public company page, and public ID. When available, they also include industry, employee count and size, headquarters, website, description, company type, followers, logo, tagline, founded year, and specialties.

The `accessStatus` field is `full` or `partial`, so incomplete public enrichment is clear. If the same public company appears again through another submitted value, the first eligible match is saved and later matches are ignored.

This Actor uses public company data. It does not return private Sales Navigator-only details, buying intent, saved lists, private revenue bands, or other private source data.

#### ▶️ Run a company search

**Run steps**

1. Choose a mode from `findBy`.
2. Paste one Sales Navigator company or account search URL, add industry and location criteria, or add public company-page URLs.
3. Set `Maximum companies` if you want a limit. Leave it empty to return all available records until the source is exhausted.
4. Start the run and open `companyResults` to review the linked company records.

No customer source login is needed for public data. Use a separate run for each search with different settings.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `findBy` | string | Choose `salesNavigatorUrl`, `searchCriteria`, or `companyUrls`. Only the selected choice's fields are used. |
| `salesNavigatorUrl` | string | One Sales Navigator company or account search URL containing the filters for the run. |
| `searchCriteria` | object | A set of industry, location, and optional name or keyword filters for a company search. |
| `searchCriteria.industries` | array of strings | One or more industry names to match. |
| `searchCriteria.locations` | array of strings | One or more cities, states, or countries to match. |
| `searchCriteria.nameOrKeywords` | string | A company-name phrase or free-text keywords to refine the search. |
| `companyUrls` | array of objects | One or more public company-page URL entries to enrich directly. |
| `companyUrls[].url` | string | The public company-page URL for one direct enrichment entry. |
| `maxItems` | integer | Stops the run after this many company records. Leave it empty to return all available records until the source is exhausted. |

**Input example**

This example is copied from a successful current-beta default-input run.

```json
{
  "findBy": "salesNavigatorUrl",
  "salesNavigatorUrl": "https://www.linkedin.com/sales/search/company?query=%28keywords%3ASoftware%20Development%29",
  "maxItems": 10
}
```

#### 🧾 Output

**Run output**

| Field | Type | What it does |
| --- | --- | --- |
| `companyResults` | string (URL) | Links to the company records from this run in the default dataset's Company profiles view. |

**Dataset row**

| Field | Type | What it does |
| --- | --- | --- |
| `companyName` | string | The public name of the company. |
| `companyUrl` | string (URL) | The canonical public company page URL. |
| `companyId` | string | The stable public identifier for the company. |
| `industry` | string | The public industry listed for the company, when available. |
| `employeeCount` | integer | The public number of employees, when available. |
| `employeeSize` | string | The public employee size range, when available. |
| `headquarters` | object | The public headquarters location, when available. |
| `headquarters.city` | string | The headquarters city. |
| `headquarters.region` | string | The headquarters state, province, or region. |
| `headquarters.country` | string | The headquarters country. |
| `websiteUrl` | string (URL) | The company website URL, when publicly listed. |
| `description` | string | The public description of the company, when available. |
| `companyType` | string | The public company type, when available. |
| `followerCount` | integer | The public number of followers, when available. |
| `logoUrl` | string (URL) | The public company logo URL, when available. |
| `tagline` | string | The public company tagline, when available. |
| `foundedYear` | integer | The public year the company was founded, when available. |
| `specialties` | array of strings | The public specialties listed for the company, when available. |
| `accessStatus` | string | Shows whether public company profile data was fully available for this row: `full` or `partial`. |

**Example dataset row**

This complete row came from the successful current-beta run. Public source values are shown without shortening.

```json
{
  "companyName": "Google",
  "companyUrl": "https://www.linkedin.com/company/google",
  "companyId": "1441",
  "industry": "Software Development",
  "employeeCount": 296456,
  "employeeSize": "10,001+ employees",
  "headquarters": {
    "city": "Mountain View",
    "region": "CA",
    "country": "US"
  },
  "websiteUrl": "https://goo.gle/3DLEokh",
  "description": "A problem isn't truly solved until it's solved for all. Googlers build products that help create opportunities for everyone, whether down the street or across the globe. Bring your insight, imagination and a healthy disregard for the impossible. Bring everything that makes you unique. Together, we can build for everyone. Check out our career opportunities at goo.gle/3DLEokh",
  "companyType": "Public Company",
  "followerCount": 42414672,
  "logoUrl": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_200_200/B4EZmhegXHGcAM-/0/1759350753990/google_logo?e=2147483647&v=beta&t=Hzaw0d0Yz1Yi-_mDuQ6JQo-Ph41AG50Z8pWjyaeTI0k",
  "tagline": "Software Development",
  "specialties": [
    "search",
    "ads",
    "mobile",
    "android",
    "online video",
    "apps",
    "machine learning",
    "virtual reality",
    "cloud",
    "hardware",
    "artificial intelligence",
    "youtube",
    "software"
  ],
  "accessStatus": "partial"
}
```

#### 💳 Pricing

**Company match**

Pay-per-event pricing charges `$0.009` for each matching public company saved with its available identity and firmographic fields. Your total depends on how many companies are saved; Apify platform usage may also apply.

#### 🔌 Integrations

Open the `companyResults` link after a run to review the dataset, or retrieve the structured records through the Apify API.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What happens when the same company appears twice?

The first eligible match is saved. Later matches for the same public company are ignored, even when another submitted value finds it.

##### Why is `accessStatus` sometimes `partial`?

Some public company pages expose fewer fields than others. The row is kept when the company match is valid, and `partial` shows that full public profile data was not available for that row.

##### Can I use a Sales Navigator account search URL?

Yes. Select `salesNavigatorUrl` and paste one Sales Navigator company or account search URL with the filters you want to use.

##### Can I search without a Sales Navigator URL?

Yes. Select `searchCriteria` and add one or more industries and locations. You can also add a company name or keyword phrase.

##### Can I refine a search with a company name or keywords?

Yes. Add `nameOrKeywords` inside `searchCriteria` to refine an industry and location search.

##### Can I pass public company-page URLs?

Yes. Select `companyUrls` and add the public company-page URLs you want to enrich.

##### What does an empty Maximum companies field do?

It returns all available records until the source is exhausted. Set a number when you want a smaller run.

##### Does this return private Sales Navigator data?

No. It uses public company data and does not provide private Sales Navigator-only details, buying intent, saved lists, or private revenue bands.

##### Can I use different searches in one run?

No. Use a separate run for each search with different settings.

### 📝 Changelog

**v0.0** (23-09-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~sales-navigator-company-search-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [LinkedIn Company Scraper](https://apify.com/maximedupre/linkedin-company-scraper): Enrich known public company pages with broader profile fields for account research.
- [LinkedIn Company People Scraper](https://apify.com/maximedupre/linkedin-company-people-scraper): Map visible employee roles after you identify a target company.
- [LinkedIn Sales Navigator Account Scraper](https://apify.com/khadinakbar/linkedin-sales-account-scraper): Run a related Sales Navigator account workflow for public company records.
- [Sales Navigator Company Search Scraper ⚡ No Cookies ✅](https://apify.com/pratikdani/sales-navigator-company-search-scraper-no-cookies): Compare a closely related Sales Navigator company search workflow that does not need customer cookies.
- [LinkedIn Company Scraper · No Login · $0.7/1k](https://apify.com/alfalfa/linkedin-company-scraper): Search and enrich public company data with filters for location, industry, and size.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `findBy` (type: `string`):

Choose how this run finds companies. Use a separate run for each search with different settings.

## `salesNavigatorUrl` (type: `string`):

Paste one Sales Navigator company or account search URL. The URL should contain the search filters you want to use.

## `searchCriteria` (type: `object`):

Add at least one industry and one location. You can also add a company name or keyword phrase.

## `companyUrls` (type: `array`):

Add one or more public company-page URLs to enrich directly.

## `maxItems` (type: `integer`):

Stop after this many company records. Leave it empty to return all available records until the source is exhausted.

## Actor input object example

```json
{
  "findBy": "salesNavigatorUrl",
  "salesNavigatorUrl": "https://www.linkedin.com/sales/search/company?query=%28keywords%3ASoftware%20Development%29",
  "maxItems": 10
}
```

# Actor output Schema

## `companyResults` (type: `string`):

Open the company records from this run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "findBy": "salesNavigatorUrl",
    "salesNavigatorUrl": "https://www.linkedin.com/sales/search/company?query=%28keywords%3ASoftware%20Development%29",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/sales-navigator-company-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "findBy": "salesNavigatorUrl",
    "salesNavigatorUrl": "https://www.linkedin.com/sales/search/company?query=%28keywords%3ASoftware%20Development%29",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/sales-navigator-company-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "findBy": "salesNavigatorUrl",
  "salesNavigatorUrl": "https://www.linkedin.com/sales/search/company?query=%28keywords%3ASoftware%20Development%29",
  "maxItems": 10
}' |
apify call maximedupre/sales-navigator-company-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/sales-navigator-company-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gZZkrJQP7FPpYB72W/builds/XwXraASIpW5itMjMl/openapi.json
