Substack People Scraper avatar

Substack People Scraper

Pricing

Pay per event

Go to Apify Store
Substack People Scraper

Substack People Scraper

Find Substack creators by keyword and export public profile, publication, bio, website, and social-link data for outreach.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Find creators, newsletter operators, and publication leads from Substack's public People search.

What does Substack People Scraper do?

Substack People Scraper searches public Substack people results by keyword and exports structured creator, profile, and publication data.

Use it to turn broad topics such as AI newsletter, climate policy, sales ops, or web scraping into a spreadsheet of public Substack profiles.

The actor is designed for lead discovery, partnership research, sponsorship prospecting, market mapping, and creator outreach.

Who is it for?

  • ๐Ÿ“ฃ Sponsorship teams building lists of newsletter creators in a niche.
  • ๐Ÿค Partnership managers finding Substack writers for co-marketing.
  • ๐Ÿงฒ Lead generation agencies researching creator-owned audiences.
  • ๐Ÿ“ฐ Media researchers mapping publications by topic.
  • ๐Ÿง‘โ€๐Ÿ’ผ B2B marketers looking for public creator profiles and websites.
  • ๐Ÿงช Analysts comparing newsletter categories and public creator metadata.

Why use this actor?

Substack's built-in search is useful for browsing, but it is not built for exporting repeatable research.

This actor gives you a clean dataset with result rank, profile identity, bio, publication metadata, profile links, and the original search URL.

You can run the same keyword set every week, enrich the output in your CRM, or combine it with other Apify actors.

What data can I extract?

FieldDescription
queryKeyword used for the search
rankResult position within that keyword
profileIdPublic Substack profile ID when available
profileNameCreator or profile display name
handleSubstack handle
profileUrlPublic Substack profile URL
bioProfile biography
photoUrlProfile image URL
publicationNameAttached primary publication name
publicationUrlPublication URL or custom domain
publicationDescriptionPublication hero text/description
publicationLanguageLanguage returned by Substack
paymentsStatePublic payment state when present
communityEnabledWhether community features are enabled
userLinksPublic social/website links from the profile
sourceSearchUrlBrowser search URL for the query
scrapedAtTimestamp for the row

The actor uses pay-per-event pricing.

You pay a small start fee for the run and a per-result fee for saved people rows.

For a typical lead discovery job, you can start with 50 results and scale up after reviewing output quality.

Exact live pricing is shown on the Apify actor page before you run the actor.

How to use Substack People Scraper

  1. Open the actor on Apify.
  2. Add one or more keywords in the Keywords field.
  3. Keep maxResults small for the first test run.
  4. Optionally add Substack people search URLs.
  5. Click Start.
  6. Download the dataset as JSON, CSV, Excel, or via API.

Input options

Keywords

Use creator topics, audiences, niches, or business categories.

Examples:

  • AI newsletter
  • climate policy
  • venture capital
  • web scraping
  • local news

Substack people search URLs

You can paste URLs such as:

https://substack.com/search/AI%20newsletter?searching=people

The actor extracts the query from the URL and searches public people results.

Maximum people

Controls the total number of rows saved across all keywords.

Use a low value for a quick first run.

Maximum pages per keyword

A safety cap for pagination.

The default is conservative and works for most discovery jobs.

Language filter

Substack supports language filters on some search surfaces.

Leave this blank unless you specifically need a language-constrained result set.

When enabled, the actor saves public social and website links returned by Substack.

Output example

{
"query": "AI newsletter",
"rank": 1,
"profileName": "AI Fyndings Newsletter",
"handle": "aifyndings",
"profileUrl": "https://substack.com/@aifyndings",
"bio": "Every Friday, one smart read on how AI is transforming Business...",
"publicationName": "AI Fyndings Newsletter",
"publicationUrl": "https://newsletter.pixelbin.io",
"publicationDescription": "Every Friday, one smart read on how AI is transforming Business...",
"sourceSearchUrl": "https://substack.com/search/AI%20newsletter?searching=people"
}

Tips for better results

  • ๐ŸŽฏ Use specific niches instead of generic words.
  • ๐Ÿงฉ Combine topic and audience terms, such as AI for lawyers.
  • ๐Ÿงช Run several small keyword tests before scaling.
  • ๐Ÿ“Š Deduplicate by profileId, handle, or publicationUrl in your downstream workflow.
  • ๐Ÿ”— Use userLinks for enrichment in Clay, Airtable, or your CRM.

Common use cases

Sponsorship prospecting

Find newsletters and creator profiles relevant to a product category.

Creator partnership research

Build a list of public creators for collaborations, guest posts, or swaps.

Market mapping

Track which Substack publications appear for important topics.

PR outreach

Find independent writers covering a theme or industry.

Competitive intelligence

Monitor public creator profiles around a category your company serves.

Integrations

Export results to CSV for spreadsheet review.

Send the dataset to Google Sheets using Apify integrations.

Connect the actor with Make or Zapier for recurring lead-list updates.

Use the Apify API to push results into Airtable, Clay, HubSpot, or a warehouse.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/substack-people-scraper').call({
keywords: ['AI newsletter'],
maxResults: 25
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/substack-people-scraper').call(run_input={
'keywords': ['AI newsletter'],
'maxResults': 25,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~substack-people-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords":["AI newsletter"],"maxResults":25}'

MCP usage

Use the Apify MCP server to run this actor from AI tools.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/substack-people-scraper

Claude Code setup:

$claude mcp add apify-substack-people "https://mcp.apify.com/?tools=automation-lab/substack-people-scraper"

Claude Desktop JSON config:

{
"mcpServers": {
"apify-substack-people": {
"url": "https://mcp.apify.com/?tools=automation-lab/substack-people-scraper"
}
}
}

Example prompts showing MCP usage:

  • "Use the Apify MCP tool automation-lab/substack-people-scraper for AI newsletter and summarize the top creator profiles with publication URLs."
  • "Run the Substack People Scraper MCP tool to find 50 Substack creators writing about B2B SaaS. Return profile URLs, publication URLs, and website links."
  • "Use the Substack people MCP tool to find public creators around climate policy, then rank the results by publication relevance and available website links."

Scheduling

You can schedule recurring runs in Apify.

A weekly schedule works well for monitoring new creators in a niche.

Use the same keyword list each time and compare datasets by profileId or handle.

Data quality notes

The actor returns public data supplied by Substack's people search.

Some profiles have no attached publication.

Some publications use custom domains.

Some profiles have no social links.

Result order follows Substack's public search ranking at run time.

Limitations

This actor does not log in.

It does not scrape private subscriber lists.

It does not extract email addresses that are not publicly returned by Substack.

It does not scrape post archives; use related post/archive actors for that workflow.

Legality and responsible use

This actor extracts publicly available Substack search/profile metadata.

You are responsible for using the data in line with applicable laws, privacy rules, platform terms, and outreach regulations.

Avoid spam.

Respect opt-outs.

Use the data for legitimate research and outreach workflows.

Troubleshooting

Why did I get fewer results than requested?

Substack may return fewer public people results for a narrow keyword.

Try broader related keywords or increase the number of keywords.

Why are some publication fields empty?

Not every public profile has a primary publication attached in search results.

The actor keeps profile rows even when publication metadata is missing.

Creators choose which public links to add to their profiles.

If Substack does not return links, the userLinks array may be empty.

Changelog

Initial version: public Substack people search by keyword with profile, publication, and user-link extraction.

Support

If a run fails or returns unexpected results, open an issue on the Apify actor page and include your input and run ID.

FAQ

Can I search multiple topics at once?

Yes. Add multiple keywords. The actor searches each keyword and combines rows in one dataset.

Can I use this for newsletter sponsorship lists?

Yes. The output is designed for sponsorship and partnership research.

Does it require proxies?

No proxy is configured for the MVP because the public endpoint is reachable with normal HTTP requests.

Does it scrape posts?

No. This actor focuses on people/profile discovery.

Can I export to Excel?

Yes. Apify datasets can be downloaded as Excel, CSV, JSON, XML, RSS, or HTML.