Signal NFX Investor Profiles Scraper
Pricing
from $2.40 / 1,000 item extracteds
Signal NFX Investor Profiles Scraper
Export public Signal by NFX investor profiles with firms, roles, check ranges, investment focus, portfolio context, education, positions, and displayed contact links.
Pricing
from $2.40 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Build a reusable fundraising prospect list from public Signal NFX investor profiles. This Actor exports investor identity, firm, role, check range, investment focus, locations, public social/contact links, education, positions, and portfolio context. It only returns an email when Signal explicitly displays one in public profile data; it never guesses, derives, or purchases email addresses.
What does this Actor do?
Signal NFX Investor Profiles Scraper accepts public Signal investor-list pages, list slugs, and individual investor profile URLs.
It can:
- paginate a public Signal investor list;
- combine multiple stage/sector lists;
- deduplicate investors appearing in more than one input list;
- enrich list rows from each investor's public profile;
- export stable JSON, CSV, Excel, XML, or RSS through Apify datasets;
- stop precisely at your requested
maxItemslimit.
The default workflow enriches each selected investor. Turn enrichment off when you only need list-level identity, firm, check range, and investment focus quickly.
Who is it for
Startup founders
Build a stage- and sector-specific prospect list before a fundraising campaign. Use check ranges and firm context to prioritize likely fits.
Fundraising consultants
Refresh reusable client prospect lists and preserve source URLs for review.
VC and ecosystem researchers
Compare public investor focus across stages, sectors, firms, and locations.
RevOps and data teams
Feed normalized investor rows into a CRM, spreadsheet, warehouse, or enrichment pipeline without maintaining Signal pagination code.
Why use this Signal NFX scraper?
- List and profile inputs: start broadly or extract one known investor.
- Profile context: optional social links, education, positions, and portfolio data.
- Explicit-email policy: an absent public email remains
null. - Cross-list deduplication: one person produces one row per run.
- Bounded retries: transient network errors retry; invalid inputs and stable 4xx responses fail clearly instead of silently returning an empty dataset.
- No login or proxy input: the Actor uses anonymously available public data.
What data can I extract?
| Group | Fields |
|---|---|
| Identity | investorId, personId, name, firstName, lastName, profileUrl, imageUrl |
| Firm and role | headline, roles, position, firm, firmId, firmSlug |
| Check range | checkMinUsd, checkMaxUsd, checkTargetUsd |
| Investment focus | location, investmentLocations, investmentStages, investmentSectors, investorLists |
| Public links | linkedinUrl, twitterUrl, facebookUrl, crunchbaseUrl, angellistUrl, websiteUrl |
| Contact | email only when explicitly present in public Signal data |
| Background | education, positions |
| Portfolio context | portfolio companies, displayed total-raised values, and displayed co-investors |
| Provenance | sourceListSlug, sourceListUrl, scrapedAt |
Fields can be null or empty when a public profile does not display that information.
Getting started
- Open the Actor in Apify Console.
- Add a Signal investor-list URL, a list slug, or a public investor profile URL.
- Choose whether to include full profile details.
- Set a small
maxItemswhile testing. - Click Start.
- Open the Dataset tab to preview or download results.
- Schedule the Task if you need recurring prospect-list refreshes.
Input parameters
startUrls
Signal list or profile URLs. Supported shapes are:
https://signal.nfx.com/investor-lists/top-fintech-series-a-investorshttps://signal.nfx.com/investors/brendan-wallace
Other hosts and unrelated Signal paths are rejected.
listSlugs
A list identifier without the top- and -investors URL wrapper.
For example, use fintech-series-a for the list URL above.
profileUrls
Public /investors/{slug} URLs for direct profile extraction.
includeProfileDetails
Defaults to true. When enabled, the Actor visits each selected public profile
and adds social links, roles, education, positions, and portfolio context.
Set it to false for a faster list-only export.
maxItems
Maximum unique investors returned across all inputs. Default: 20. Range: 1–1,000. The Actor stops fetching and storing records when this limit is reached.
Example: find fintech Series A investors
{"listSlugs": ["fintech-series-a"],"maxItems": 10,"includeProfileDetails": false}
This is useful for quick market mapping where list-level check and focus fields are enough.
Example: extract one detailed profile
{"profileUrls": ["https://signal.nfx.com/investors/brendan-wallace"],"maxItems": 1,"includeProfileDetails": true}
Example: recurring prospect-list refresh
{"listSlugs": ["advertising-seed", "fintech-seed"],"maxItems": 50,"includeProfileDetails": true}
Save this input as an Apify Task and schedule it. Use personId or profileUrl
as a stable key in your downstream system to compare snapshots.
Output example
The following abbreviated record reflects the real output shape. Some long arrays and source image URLs are omitted for readability.
{"investorId": "5662","personId": "314","name": "Brendan Wallace","profileUrl": "https://signal.nfx.com/investors/brendan-wallace","headline": "Co-Founder / Managing Partner at Fifth Wall Ventures","position": "managing_partner","firm": "Fifth Wall Ventures","checkMinUsd": 10000000,"checkMaxUsd": 25000000,"checkTargetUsd": 12500000,"investmentLocations": ["United States"],"linkedinUrl": "https://www.linkedin.com/in/brendanfitzgeraldwallace/","email": null,"education": [{"degree": "MBA","fieldOfStudy": "Business","school": "Harvard Business School"}],"sourceListSlug": "advertising-seed","scrapedAt": "2025-01-15T12:00:00.000Z"}
Public source data changes over time, so do not treat the sample values as current investment advice.
How much does it cost to extract Signal NFX investor profiles?
The Actor uses pay-per-event pricing:
- one small
startcharge per run; - one
itemcharge for each unique investor row stored.
Your Apify plan determines the active tier. The Console shows the exact active price before a run starts. Profile enrichment does not create a separate charge.
At the BRONZE rate of $0.003992 per investor plus a $0.005 start, a 10-investor run costs $0.04492, 100 investors cost $0.40420, and 1,000 investors cost $3.99700. The live Console pricing is authoritative.
Set the record limit to enforce a predictable result count.
Apify's maximum-total-charge setting can provide an additional account-level spending guard.
Fast list export versus profile enrichment
Use includeProfileDetails: false when you need:
- names and profile URLs;
- firms and roles;
- check ranges;
- list-derived stages, sectors, and locations.
Use includeProfileDetails: true when you also need:
- LinkedIn and other displayed public links;
- headline and person roles;
- education and work positions;
- displayed portfolio and co-investor context.
The detailed mode makes one extra public profile request per accepted investor, so it takes longer. Both modes charge once per returned investor, not per request.
Pagination, deduplication, and limits
Signal lists are fetched in bounded pages. The Actor follows public cursors until
maxItems is reached or the source reports no next page.
If one investor occurs in multiple supplied lists, the Actor stores that person
once. The first input list that yields the person is retained in sourceListSlug
and sourceListUrl; the enriched investorLists array can still show broader
public list membership.
Scheduling and monitoring changes
Create an Apify Task with a fixed set of Signal lists and schedule it weekly or
monthly. Export each run's dataset to your warehouse, then compare records by
personId.
Useful changes to track include:
- firm or position changes;
- check-range changes;
- newly displayed social links;
- changes in stage or sector list membership;
- new public portfolio context.
This Actor returns snapshots. It does not itself send alerts or calculate diffs.
Export to spreadsheets and data pipelines
From the Dataset tab, choose JSON, CSV, Excel, XML, or RSS. Nested arrays such as education and portfolio are richest in JSON.
Common workflows include:
- schedule an Apify Task;
- send the dataset to Google Sheets, Airtable, Make, Zapier, or a webhook;
- upsert on
personId; - keep
profileUrlandscrapedAtfor provenance; - review public source links before outreach.
Run through the Apify API with cURL
Replace <APIFY_TOKEN> with your token:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~signal-nfx-investor-profiles/runs?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"listSlugs": ["fintech-series-a"],"maxItems": 10,"includeProfileDetails": true}'
Poll the returned run, then read its default dataset.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/signal-nfx-investor-profiles').call({listSlugs: ['fintech-series-a'],maxItems: 10,includeProfileDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/signal-nfx-investor-profiles").call(run_input={"listSlugs": ["fintech-series-a"],"maxItems": 10,"includeProfileDetails": True,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/signal-nfx-investor-profiles"
Claude Desktop, Cursor, and VS Code setup
Desktop and editor clients such as Claude Desktop, Cursor, and VS Code can use:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/signal-nfx-investor-profiles"}}}
Example prompts:
- “Run the Signal investor Actor for the fintech-series-a list and return 20 rows.”
- “Extract this public Signal investor profile and summarize the displayed check range.”
- “Refresh my two seed-investor lists and save the dataset URL.”
Responsible use and legality
This Actor accesses public Signal pages and public structured responses without a login. You are responsible for complying with Signal's terms, applicable privacy and database laws, and rules governing your intended use.
Investor data can be incomplete, stale, or self-reported. Do not use it as the sole basis for financial, credit, employment, or other high-impact decisions. Do not send unlawful or deceptive outreach. Respect opt-outs and data-subject rights. Public availability does not remove your compliance obligations.
Limitations
- Signal controls the source structure and can change it without notice.
- Results reflect public data available at run time, not a historical archive.
- Some profiles omit checks, links, education, positions, or portfolio details.
emailis commonlynull; the Actor does not infer an address.- Profile enrichment is slower than list-only extraction.
- The Actor supports public Signal investor list and profile URLs only.
- It does not log in, reveal private introduction paths, or access Gmail data.
maxItemsis capped at 1,000 per run.
Failure behavior and retries
Transient network resets, HTTP 429, and temporary server errors retry up to three total attempts with backoff. Stable invalid URLs and permanent client errors do not retry blindly.
The run fails with a non-zero status when:
- no supported input is supplied;
- a URL uses another host or unsupported path;
- a list or profile does not exist;
- Signal returns an unrecognized response shape after retries.
This avoids presenting an unexpected empty dataset as a successful scrape.
Troubleshooting
Why did my run fail before producing records?
Check that at least one supported input field is non-empty. A list slug should look
like advertising-seed, not the full top-advertising-seed-investors wrapper.
Full URLs belong in startUrls or profileUrls.
Why are social links, education, and portfolio arrays empty?
Enable includeProfileDetails. Even then, fields remain empty when Signal does
not publicly display them.
Why is email null?
Signal did not explicitly display an email in the public profile data. This is expected and preferable to returning a guessed or unrelated address.
How can I make a run faster?
Disable profile details or lower maxItems. Avoid supplying overlapping lists
unless cross-list deduplication is part of your workflow.
Can I use a proxy?
No proxy input is needed or exposed. The public source worked directly during release validation, avoiding residential-proxy transfer and session complexity.
Data quality tips
- Keep
profileUrlwith every CRM record for manual verification. - Treat check ranges as public source context, not guaranteed commitments.
- Prefer
personIdfor deduplication within Signal. - Preserve
scrapedAtwhen comparing scheduled snapshots. - Review displayed links before initiating contact.
- Start with 10–25 items before increasing a recurring Task.
Related Automation Lab Actors
Signal-specific output is intentionally standalone. For adjacent public profile and contact workflows, see:
Those Actors have different sources and contracts. They are not automatic fallbacks or included enrichment steps in this Actor.
FAQ
Does the Actor scrape every Signal investor?
It paginates the specific public lists you provide, up to maxItems. It does not
claim to enumerate private profiles or all possible Signal records.
Does it return investor emails?
Only when an email is explicitly exposed in the public Signal profile data. No inferred, pattern-generated, brokered, or private email is returned.
Can I combine several lists?
Yes. Add multiple slugs or URLs. Duplicate people are returned once.
Can I extract only one investor?
Yes. Supply a public profile URL in profileUrls or startUrls.
Are portfolio companies complete?
No. The portfolio field reflects the bounded public investment context displayed
on the Signal profile and should not be treated as a complete investment history.
Is enrichment charged separately?
No. Only the start and returned-item events are configured. Enrichment requests do not create an additional customer charge.
Can I schedule recurring runs?
Yes. Save the input as an Apify Task and use the platform scheduler. Compare the resulting datasets in your own workflow.
Where are the results stored?
Each run writes normalized investor records to its default Apify dataset. Use the Dataset tab or API to preview and export them.