# SignalNFX Investor Scraper (`redoy49/signal-nfx-investor-scraper`) Actor

High-speed, zero-guessing Signal NFX Investor Scraper. Extracts Investors, Firms, Titles, Check Size Ranges, Sweet Spots, Fund Sizes, LinkedIn, Twitter, and Focus Sectors into styled Excel and CSV.

- **URL**: https://apify.com/redoy49/signal-nfx-investor-scraper.md
- **Developed by:** [Redoy Al Hasan](https://apify.com/redoy49) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## SignalNFX Investor Scraper

A high-speed, zero-guessing Apify Actor designed to extract comprehensive venture capitalist and angel investor profiles directly from Signal by NFX.

***

### Overview

Signal by NFX is one of the most trusted databases in the startup ecosystem, featuring over 32,000+ active VCs, angel investors, and scouts.

**SignalNFX Investor Scraper** automates the collection of rich investor data directly from Signal's backend API. It extracts complete investment criteria, verified contact points, check size ranges, sweet spots, fund sizes, and direct social URLs into structured datasets and styled Excel spreadsheets.

***

### Key Features

- **Direct API Speed**: Queries Signal's backend GraphQL API directly without running heavy headless browsers, delivering lightning-fast scraping at near-zero execution cost.
- **Strict Zero-Guessing Guarantee**: Extracts only explicit, verified values directly from the investor's profile. Missing attributes remain blank rather than fabricated.
- **Clean Title and Firm Separation**: Isolates the investor's clean job title (such as Founding Partner, Managing Partner, General Partner) without concatenating the firm name, which is provided in its own dedicated column.
- **Compact Financial Formatting**: Check size ranges and sweet spots are formatted in standard real estate and venture capital notation (such as `$100K - $5.0M` and `$1M`).
- **Geographic Granularity**: Automatically separates locations into distinct City and State columns for easy filtering and CRM mapping.
- **Dual Output Formats**: Generates an Apify Dataset alongside downloadable, styled Excel (`OUTPUT.xlsx`) and CSV (`OUTPUT.csv`) files in the default Key-Value Store.

***

### How to Use (Beginner Quick Start)

#### Step 1: Choose Your Input URLs

The Actor accepts two types of URLs in the **startUrls** input field:

1. **Sector or Stage List URLs**: Scrapes all investors ranked under a specific vertical or funding stage.
   - Example: `https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors`
   - Example: `https://signal.nfx.com/investor-lists/ai-seed`
   - Example: `https://signal.nfx.com/investor-lists/fintech-series-a`
2. **Individual Investor URLs**: Scrapes single investor profiles directly.
   - Example: `https://signal.nfx.com/investors/seth-bannon`
   - Example: `https://signal.nfx.com/investors/sarai-bronfeld`

#### Step 2: Set Your Maximum Limit

Use the `maxInvestorsPerList` parameter to specify how many investors you want to extract per sector list (e.g., 25, 50, 100, or more).

#### Step 3: Run the Actor

Click **Save & Start**. In just a few seconds, all investor records will be extracted and formatted.

***

### Input Configuration Example

```json
{
  "startUrls": [
    {
      "url": "https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors"
    },
    {
      "url": "https://signal.nfx.com/investors/seth-bannon"
    }
  ],
  "maxInvestorsPerList": 50
}
```

***

### Extracted Data Structure (17 Columns)

Every output row contains exactly 17 standardized columns in the following serial order:

| Number | Column Name | Description | Example |
| :---: | :--- | :--- | :--- |
| 1 | `Signal URL` | Direct URL to the investor's Signal NFX profile | `https://signal.nfx.com/investors/seth-bannon` |
| 2 | `Full Name` | Investor full name | `Seth Bannon` |
| 3 | `First Name` | Investor first name | `Seth` |
| 4 | `Last Name` | Investor last name | `Bannon` |
| 5 | `Position / Title` | Clean role or title without firm name | `Founding Partner` |
| 6 | `Firm Name` | Venture capital or firm name | `Fifty Years` |
| 7 | `Current Fund Size` | Total fund size if disclosed | `$450M` |
| 8 | `Investment Range` | Minimum to maximum investment check size | `$400K - $1.5M` |
| 9 | `Sweet Spot` | Preferred target check size | `$1M` |
| 10 | `Investments On Record` | Total count of disclosed investments on record | `18` |
| 11 | `City` | Primary city location | `San Francisco` |
| 12 | `State` | State or country location | `California` |
| 13 | `Investment Stages` | Target stages (e.g., Pre-seed, Seed, Series A) | `Pre-seed, Seed` |
| 14 | `Website Url` | Personal or firm website URL | `https://sethbannon.com/` |
| 15 | `Person LinkedIn Url` | Verified LinkedIn profile link | `https://www.linkedin.com/in/sethbannon/` |
| 16 | `X/Twitter` | Verified Twitter / X profile link | `http://www.twitter.com/sethbannon` |
| 17 | `Notable Info / Background` | Summary of past executive and founder roles | `Former Founder & CEO at Amicus, Inc.` |

***

### Download Formats & Integrations

- **Apify Dataset**: Exportable directly from the Apify Web Console to JSON, CSV, XML, or Excel.
- **Styled Excel Spreadsheet (`OUTPUT.xlsx`)**: Located in the run's default Key-Value Store with navy blue headers, borders, and auto-adjusted column widths.
- **Standardized CSV (`OUTPUT.csv`)**: Located in the Key-Value Store encoded in UTF-8 with BOM for direct compatibility with Microsoft Excel and Google Sheets.
- **Workflow Integrations**: Connect directly to Zapier, Make.com, Google Sheets, Airtable, or custom webhooks via standard Apify REST API endpoints.

***

### Frequently Asked Questions

##### How fast is this scraper?

Because the Actor queries Signal's backend GraphQL API directly without rendering browser pages, it extracts approximately 5 to 10 full investor profiles per second.

##### Can I provide multiple sector URLs at once?

Yes. You can paste as many sector list URLs or single profile URLs as you need into the `startUrls` input array.

##### Does it support pagination?

Yes. When a sector list URL is provided, the Actor automatically paginates through the list up to the number specified in `maxInvestorsPerList`.

##### Is an Apify Proxy required?

No proxy configuration is required. The scraper runs smoothly with standard requests.

# Actor input Schema

## `startUrls` (type: `array`):

Enter SignalNFX sector list URLs (e.g., https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors) or single investor URLs (e.g., https://signal.nfx.com/investors/seth-bannon).

## `maxInvestorsPerList` (type: `integer`):

Maximum number of investors to scrape per sector list.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors"
    }
  ],
  "maxInvestorsPerList": 50
}
```

# Actor output Schema

## `dataset` (type: `string`):

Clean investor records with 17 standardized columns.

## `excel` (type: `string`):

Download formatted Excel file with styled headers and organized columns.

## `csv` (type: `string`):

Download standardized UTF-8 CSV data.

# 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 = {
    "startUrls": [
        {
            "url": "https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("redoy49/signal-nfx-investor-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 = { "startUrls": [{ "url": "https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors" }] }

# Run the Actor and wait for it to finish
run = client.actor("redoy49/signal-nfx-investor-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 '{
  "startUrls": [
    {
      "url": "https://signal.nfx.com/investor-lists/top-agtech-pre-seed-investors"
    }
  ]
}' |
apify call redoy49/signal-nfx-investor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,redoy49/signal-nfx-investor-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/ajOdabGFX2YvRQQKq/builds/KTHSNmIEg8ZcZxHjK/openapi.json
