# Notable Capital Portfolio Companies Scraper (`automation-lab/notable-capital-portfolio-companies`) Actor

Export Notable Capital public portfolio company names, websites, logos, locations, descriptions and displayed status from the All or sector-specific tabs.

- **URL**: https://apify.com/automation-lab/notable-capital-portfolio-companies.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $21.60 / 1,000 item extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Notable Capital Portfolio Companies Scraper

Export public Notable Capital portfolio company names, company websites, logos, descriptions, locations and displayed status badges. Choose the complete directory or a specific site tab such as AI or Exited. Each run returns a fresh Apify dataset for prospect research and venture-landscape analysis.

This Actor reads the public [Notable Capital companies page](https://www.notablecap.com/companies). It does not require a Notable Capital account, visit company websites, or guess undisclosed investment details. It is not affiliated with Notable Capital.

### Who is it for?

- Venture research teams maintain an up-to-date list of public portfolio members and their external websites.
- Prospecting analysts filter displayed sectors and combine exported datasets with their own CRM.
- Market mappers compare scheduled snapshots of the Exited tab for changes.

### What does it extract?

| Field | Meaning |
| --- | --- |
| `name` | Displayed company name. |
| `website` | Outbound company link from the card, not an investor profile. |
| `logoUrl`, `imageUrl` | Displayed logo or feature image URL, if available. |
| `description` | Public card text, when present. |
| `location` | First displayed location on the card. |
| `category` | Selected sector tab for filtered runs; null for All/Featured/Exited. |
| `status` | Visible badge or Exited tab designation, if present. |
| `firstPartnered` | Explicit “First Partnered” text when shown. |
| `sourceUrl`, `scrapedAt` | Portfolio page consulted and collection time. |

There is no internal company profile URL on these cards. `website` is the outbound company website, and `sourceUrl` identifies the portfolio listing page. The Actor does not invent a profile URL, detailed investment stage, funding amount, AUM, fund size, or company contact details.

### Getting started

1. Select **All companies** to export the directory, or choose a specific tab.
2. Set **Maximum companies** to the number you need (1–300). Use 10 for a quick trial.
3. Start the Actor and inspect the default dataset's **Companies** view.
4. Export JSON, CSV, or Excel from the dataset, or connect an Apify integration.

The default is `{"category":"all","maxItems":100}`. The All tab is paginated automatically. You do not need to supply a URL.

### Select a source tab

Choose `all`, `featured`, `ai`, `cloud-infrastructure`, `cybersecurity`, `consumer`, `fintech`, `enterprise`, or `exited`. Tabs correspond to the site's public navigation. Choosing AI, for example, exports members of the AI tab, not companies found through keyword search. Membership can overlap across tabs; records are deduplicated by displayed company name within a run.

### Example input: directory research

```json
{"category":"all","maxItems":35}
```

This exercises pagination past the first 30 directory cards. It is useful for an initial landscape list. To obtain more entries, increase `maxItems` to 100 or 300.

### Example input: AI company sourcing

```json
{"category":"ai","maxItems":10}
```

This selects only the publicly displayed AI tab. The `category` output is `AI` for each returned record. It does not classify the full All directory by sector.

### Example input: exited-company monitoring

```json
{"category":"exited","maxItems":35}
```

Schedule this input in Apify and compare successive default datasets externally to see which displayed companies changed. The Actor does not itself calculate diffs or send alerts.

### Output example

A representative public All-tab company card from a local run on September 24, 2026 (fields can change at the source):

```json
{
  "name": "6Sense (fka Slintel)",
  "website": "https://6sense.com/",
  "logoUrl": "https://cdn.prod.website-files.com/66817171a08a935845b83645/6714c17e68732e1d142d19c8_6708f6652c68a7b8499f8d54_6698fc737851351537545c4e_asset%2525206.svg",
  "imageUrl": null,
  "description": "6sense unifies your data, channels, and teams with purpose-built AI and intelligent agents—so every GTM motion is smarter, faster, and more connected.",
  "location": "San Francisco Bay Area",
  "category": null,
  "status": null,
  "firstPartnered": null,
  "sourceUrl": "https://www.notablecap.com/companies",
  "scrapedAt": "2026-09-24T14:06:49.913Z"
}
```

The dataset reflects the public source at the time of your run; it is not a stored historical archive.

### Choosing the right tab for your research

- Start with `all` when your question is “Which companies are listed?” It is the broad directory, not a union of sector labels added to each row.
- Use `ai` when your prospect list must follow the site's displayed AI membership. This is a separate tab selection, not a text filter over descriptions.
- Use `exited` when you specifically need the site's Exited view. Its `status` reflects that view; it is not a claim about a transaction date or type.
- Use a sector tab such as `cybersecurity` for that tab's public members. A company may occur in more than one separate run; do not add sector counts together as a unique-company total.
- Use `featured` for the site's selected Featured cards, not for a complete directory export.

For cross-tab analysis, run each desired tab separately and keep its `category`/`status` context alongside the records. The Actor does not silently assign sector labels to cards exported from `all`.

### Joining snapshots with your own data

A repeatable spreadsheet workflow is:

1. Run `all` with a limit appropriate to the directory and save the resulting dataset ID and run date.
2. Export `name`, `website`, `sourceUrl`, and `scrapedAt` with the other displayed card fields.
3. Normalize outbound website hostnames in your own pipeline before joining with CRM domains; the Actor preserves the displayed link rather than rewriting it.
4. Compare a later dataset with the earlier one by website where present, then inspect name changes and missing websites manually.
5. Recheck apparent additions or removals on the public directory before making investment or outreach decisions.
6. Keep the original dataset and run ID for an auditable snapshot.
7. Record which tab each scheduled run selected before comparing its rows.
8. Treat a missing `website` as an unmatched record rather than dropping it from the comparison.
9. Inspect `sourceUrl` when reviewing an ambiguous match so the public listing can be checked again.

A company can rename, change website, or move between tabs. A simple name-only difference is therefore a review candidate, not proof of a new investment or exit. Save prior datasets yourself if your workflow requires history.

### How much does it cost to export Notable Capital portfolio companies?

The Actor uses pay-per-event billing: one `start` charge of $0.005 per run and one `item` charge per delivered company. BRONZE costs $0.036 per company; FREE $0.0414, SILVER $0.02808, and GOLD/PLATINUM/DIAMOND $0.0216. Spend tiers reflect qualifying monthly Store spend, not the number of companies in this run. At BRONZE, a 1-company export is about $0.041, 10 companies about $0.365, and 100 companies about $3.605 before other account adjustments. Check the live pricing panel for your effective tier. An empty or rejected item is not charged as a result. Platform computing costs and account terms may vary. Revenue and payouts, if relevant to an operator, are estimates subject to refunds, fraud, disputes, taxes, corrections and clawbacks.

### How pagination and limits work

The Webflow directory exposes server-rendered company cards and page links. The Actor follows page links only while it needs more distinct records. For small runs, it avoids downloading pages beyond your limit. It follows up to 15 pages as a safety guard and rejects pagination loops instead of returning an incomplete silent result. The source can change its directory size or pagination independently of this Actor.

### Using the Apify API

Start an asynchronous run with a token stored in your environment, not in source code:

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~notable-capital-portfolio-companies/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"category":"all","maxItems":35}'
```

Then retrieve items from the run's `defaultDatasetId` using `/v2/datasets/{datasetId}/items?format=json`. You can instead use the synchronous run-and-get-dataset-items endpoint for small inputs when its timeout fits your client.

#### JavaScript

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/notable-capital-portfolio-companies').call({ category: 'ai', maxItems: 10 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map(({ name, website }) => ({ name, website })));
```

#### Python

```python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/notable-capital-portfolio-companies').call(run_input={'category': 'exited', 'maxItems': 35})
items = client.dataset(run['defaultDatasetId']).list_items().items
print([(item['name'], item['website']) for item in items])
```

### Apify MCP integration

For Claude Code, add the Actor-specific MCP endpoint:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/notable-capital-portfolio-companies"
```

For Claude Desktop, Cursor, or VS Code, configure an HTTP MCP server (authenticate with your Apify token using the client's secure secret storage):

```json
{"mcpServers":{"apify":{"type":"http","url":"https://mcp.apify.com?tools=automation-lab/notable-capital-portfolio-companies"}}}
```

Example prompt: “Run the Notable Capital AI portfolio export with maxItems 10 and summarize the displayed company websites.” Another: “Export Exited portfolio companies and list those absent from my previous dataset.” The latter comparison is done by your assistant or workflow, not inside this Actor.

### Spreadsheet and data pipeline workflows

Export the default dataset as CSV to a spreadsheet or use Apify webhooks/Make/Zapier to process completed runs. Schedule a recurring run and compare output datasets by `name` and `website` if you need change tracking. Match company websites against your own records; the Actor never visits them or extracts emails.

### Legality and responsible use

This is a snapshot of publicly displayed card data, not a verified register of every past investment. A company may be displayed on several sector tabs. The All tab has no guaranteed per-company sector classification. A status badge reflects public source wording at scrape time and should not be interpreted as financial due diligence. HTML layout changes may require an Actor update; a malformed or inaccessible response fails visibly instead of producing a misleading empty export.

Use public records responsibly, respect the source site's terms and robots policies, and evaluate applicable data-protection requirements before combining the output with personal or nonpublic information. Logos and descriptions remain owned by their respective rights holders. This Actor does not harvest personal data or access account-only pages.

### Limitations

The Actor provides a current public snapshot and does not calculate historical changes, send alerts, or enrich data beyond the displayed cards. See the legality guidance above for responsible handling.

### Troubleshooting

If a run returns fewer than your `maxItems`, the selected source tab may have reached its end. Check `sourceUrl` and the live site. If the run fails with an upstream HTTP error, retry later; repeated blocked or changed HTML requires an implementation update, not blindly increasing concurrency. For invalid input, choose one of the available category values and an integer maxItems between 1 and 300.

### FAQ

**Does it extract Notable Capital AUM or fellowship information?** No. Those searches refer to other pages and are outside the public portfolio-card workflow.

**Can it export a company profile link?** The current company cards link to external websites rather than internal profiles. `sourceUrl` identifies the listing page.

**Will it detect new companies automatically?** No built-in alerts or diff state; schedule repeated runs and compare datasets externally.

**What happens when the source changes?** The Actor fails on unrecognized content or missing company fields instead of treating a broken parser as a successful zero-item run.

### Related automation-lab Actors

For separate investor-source research, see [a16z Speedrun Companies Scraper](https://apify.com/automation-lab/a16z-speedrun-companies-scraper). It covers a different organization's public companies and is not a substitute for this Notable Capital directory.

# Changelog

This Actor's version history is a separate document: https://apify.com/automation-lab/notable-capital-portfolio-companies/changelog.md

# Actor input Schema

## `category` (type: `string`):

Select the site's All, Featured, sector, or Exited tab. Sector labels are based on the selected tab, not inferred for All.

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

Maximum distinct companies to return; follow portfolio pagination until the limit or end of the selected tab.

## Actor input object example

```json
{
  "category": "all",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Public company names, websites, logos and displayed portfolio details.

# 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 = {
    "category": "all",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/notable-capital-portfolio-companies").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 = {
    "category": "all",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/notable-capital-portfolio-companies").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 '{
  "category": "all",
  "maxItems": 10
}' |
apify call automation-lab/notable-capital-portfolio-companies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/notable-capital-portfolio-companies"
        }
    }
}
```

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/LqmHwes9bRVA9abWP/builds/RIrg7iRrigNvRkV3h/openapi.json
