Reddit Leads Scraper avatar

Reddit Leads Scraper

Pricing

from $1.40 / 1,000 post scanneds

Go to Apify Store
Reddit Leads Scraper

Reddit Leads Scraper

Scan the newest posts in subreddits you choose for buying-intent leads. Returns title, snippet, author, post URL, matched phrases, a rule-based 0-100 intent score, hot/warm/cold tier and a reply angle. Reads about 25 posts per subreddit and feed, up to 20 subreddits. No login.

Pricing

from $1.40 / 1,000 post scanneds

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Returns: one row per Reddit post with title, body, author, post_url, published_at, matched_keywords, intent_score and intent_tier. Input: {"subreddits": ["SaaS", "https://www.reddit.com/r/smallbusiness/"], "keywords": ["CRM"], "maxAgeHours": 48, "excludeKeywords": ["hiring"]} Best for: finding buying-intent threads for lead lists, monitoring subreddits for new leads on a schedule, and spotting product-comparison discussions.

{
"post_id": "t3_1x4edkl",
"subreddit": "SaaS",
"title": "Founders with data in Stripe/CRM/other tools, do you actually know how to pull insight out of it, or does it just sit there?",
"author": "SnooOpinions1809",
"published_at": "2026-10-12T21:22:05+00:00",
"intent_score": 67,
"intent_tier": "warm"
}

What does Reddit Leads Scraper do?

Reddit Leads Scraper scans the newest posts in the subreddits you choose and returns posts that contain your keywords together with buying-intent wording such as asking for a recommendation, comparing tools, or weighing a purchase. Each Reddit post becomes one lead with an intent score from 0 to 100, a tier (hot, warm or cold), the phrases that matched, and a suggested reply angle.

The score_breakdown explains the ranking rather than hiding it behind an AI label. The optional postTypes filter focuses review on text discussions or other feed-supported formats. The body field keeps the available context beyond the short snippet, which helps manual review and downstream analysis.

What data can you get?

One dataset item is returned per matched Reddit post, highest intent score first.

FieldDescriptionExample
idStable post ID, same as post_idt3_1wtsth5
sourceUrlPost permalink the lead came fromhttps://www.reddit.com/r/smallbusiness/comments/1wtsth5/...
post_idReddit post ID in the form t3_idt3_1wtekx2
post_urlPermalink of the Reddit posthttps://www.reddit.com/r/smallbusiness/comments/1wtekx2/...
subredditSubreddit name without the r/ prefixsmallbusiness
titlePost titleLooking for a CRM recommendation
bodyComplete cleaned text provided by the RSS feed, or null when empty; no additional page fetchLooking for recommendations...
snippetFirst 300 characters of the post body as plain textA delivery app refused our evidence...
authorReddit username without the u/ prefix (may be empty or [deleted])example_user
published_atISO 8601 publish time2026-09-29T16:21:04+00:00
matched_keywordsYour keywords or built-in phrases that matched["CRM", "recommend"]
matched_inWhere the match was found: title, body or both["title"]
intent_scoreBuying-intent score from 0 to 10092
intent_tierhot (70 and above), warm (40 to 69) or cold (below 40)hot
score_breakdownPoints per component: keyword_strength (max 45), recency (max 30), question_signal (max 15), author_heuristic (max 10), self_promo (0 or -30), total{"keyword_strength": 45, "recency": 25, ...}
suggested_reply_angleAn ethical outreach approach for this type of leadTeach first, mention second...
scraped_atTime of the run that produced the lead2026-09-29T18:48:07+00:00

Reddit's RSS feeds carry no upvote or comment counts, so those are not part of the output.

How to use Reddit Leads Scraper

  1. Open Reddit Leads Scraper in Apify Console and go to the Input tab.
  2. Enter the subreddits to mine, for example SaaS and smallbusiness, without the r/ prefix.
  3. Add your product or category keywords, for example CRM or email marketing tool. Leave built-in buying-intent phrases on if you also want generic signals.
  4. Optionally set a minimum intent score, for example 40 to keep only warm and hot leads, and a maximum number of leads.
  5. Leave the proxy setting on the prefilled residential Apify Proxy and click Start.
  6. When the run finishes, open the Output tab, use the Leads overview, Outreach or Scoring view, and export the dataset as JSON, CSV or Excel.

Input

FieldTypeDefault / prefillDescription
subredditsarray of stringsprefill ["SaaS", "smallbusiness", "Entrepreneur"]Subreddit names or URLs, for example SaaS, r/SaaS or https://www.reddit.com/r/SaaS/. Max 20 per run. Each subreddit and feed scans about 25 of the newest posts.
keywordsarray of stringsprefill ["CRM", "software", "tool"]Your product or category terms, matched against post titles and bodies. Optional if built-in phrases are on.
useBuiltInIntentPhrasesbooleantrueAlso match generic buying signals such as "looking for", "recommend", "alternative to" and "worth it".
feedsarray of stringsprefill ["new"]Listing feeds to scan per subreddit: new, hot, rising. Each extra feed scans about 25 more posts per subreddit and adds to the posts scanned.
requireKeywordMatchbooleantrueOnly return posts that contain at least one of your keywords. Built-in buying-intent phrases then raise the score but never qualify a post alone.
excludeKeywordsarray of strings[]Skip posts whose title or body contains any of these words or phrases, for example "hiring" or "crypto".
maxAgeHoursintegeremptyOnly consider posts published within this many hours. Empty means no age limit.
skipSeenPostsbooleanfalseWhen true, posts already returned in earlier runs are skipped (ids are kept in a named key-value store), so scheduled runs deliver only new leads.
postTypesarray[]Keep only text, link, image or video posts. Empty keeps all. Classification is based on the feed link, not a detail page. Scanned posts still count toward billing.
maxItemsinteger 1 to 500omittedOverride maxResults with a shared lead limit across all subreddits and feeds.
minScoreinteger 0 to 1000Only return leads scoring at least this. Use 40 for warm and hot leads only.
maxResultsinteger 1 to 500default 100, prefill 10Cap on leads returned per run, highest scores first. Billing is per post scanned (about 25 per subreddit per feed), not per lead returned, so this does not cap cost; fewer subreddits and feeds do.
requestDelayMsinteger 500 to 10000default 2000, prefill 1500Delay between feed fetches in milliseconds. Reddit rate-limits aggressively, so keep it conservative.
proxyConfigurationobjectprefill residential Apify ProxyProxy settings. Reddit blocks datacenter IPs, so the RESIDENTIAL group is recommended.

subreddits is required and needs at least one valid name; an empty list stops the run immediately with a clear message.

Example input:

{
"subreddits": ["SaaS", "smallbusiness", "Entrepreneur"],
"keywords": ["CRM", "software", "tool"],
"useBuiltInIntentPhrases": true,
"feeds": ["new"],
"requireKeywordMatch": true,
"minScore": 0,
"maxResults": 10,
"requestDelayMs": 1500,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output

Below is a real item extracted locally from the public r/SaaS feed on 2026-10-13. The snippet remains short; body contains the complete cleaned text supplied by that feed.

[
{
"id": "t3_1x4edkl",
"sourceUrl": "https://www.reddit.com/r/SaaS/comments/1x4edkl/founders_with_data_in_stripecrmother_tools_do_you/",
"post_id": "t3_1x4edkl",
"post_url": "https://www.reddit.com/r/SaaS/comments/1x4edkl/founders_with_data_in_stripecrmother_tools_do_you/",
"subreddit": "SaaS",
"title": "Founders with data in Stripe/CRM/other tools, do you actually know how to pull insight out of it, or does it just sit there?",
"snippet": "Genuine question, not a pitch. I’m trying to understand something before I build anything around it. I work with enterprise-scale data day to day (BI/analytics background), and I keep wondering if the same problem shows up at the early-stage level. You’ve got real data, like Stripe, a CRM, maybe a…",
"body": "Genuine question, not a pitch. I’m trying to understand something before I build anything around it. I work with enterprise-scale data day to day (BI/analytics background), and I keep wondering if the same problem shows up at the early-stage level. You’ve got real data, like Stripe, a CRM, maybe a spreadsheet or two, but no time, team, or know-how to actually turn it into something you’d act on. Not “we need a dashboard,” more like “we have the data and have no idea what it’s actually telling us.” Curious how common that actually is: Do you have data sitting in tools you know isn’t being used well? If so, is it a “haven’t gotten to it yet” problem, a “don’t know how” problem, or a “can’t justify the cost of a data person” problem? Would you ever pay someone to just look at what you’ve already got and tell you what matters? Not build you a tool, just read it and tell you. Not selling anything here. I’m trying to work out whether this is a real gap or something people already have covered another way.",
"author": "SnooOpinions1809",
"published_at": "2026-10-12T21:22:05+00:00",
"matched_keywords": [
"tool",
"CRM"
],
"matched_in": [
"body",
"title"
],
"intent_score": 67,
"intent_tier": "warm",
"score_breakdown": {
"keyword_strength": 20,
"recency": 25,
"question_signal": 15,
"author_heuristic": 7,
"self_promo": 0,
"total": 67
},
"suggested_reply_angle": "Add value before mentioning anything of yours. Read the subreddit's self-promo rules first — most buying-intent subs ban undisclosed promotion.",
"scraped_at": "2026-10-13T00:06:18.745739+00:00",
"post_type": "text",
"external_url": null,
"thumbnail_url": null,
"updated_at": "2026-10-12T21:22:05+00:00"
}
]

Run statistics (posts_scanned, posts_matched, feeds_ok, feeds_failed, feeds_blocked, failures) are saved to the default key-value store under run-stats.

How much does it cost?

This existing Actor charges the post-scanned event per scanned post; consult the Pricing tab for the current terms. A returned lead is not a separate scan. The run stops at the available scan budget and reports the maximum cost limit instead of asking for a rating when that limit is reached. This billing contract is unchanged by the new body field or post-type filter.

Reddit Leads Scraper uses pay-per-event pricing and charges per post scanned, not per lead returned. Tighter keywords lower your lead count but not the number of posts scanned. The number of posts scanned is driven by how many subreddits and feeds you choose, at about 25 posts per feed.

Apify's free plan credit covers small runs, so you can try a few subreddits at no cost. See the Pricing tab of this Actor for the exact price per event on each plan. You are never charged for a run that scanned nothing, and the Actor stops scanning before it would exceed the maximum charge you set for the run. Apify Proxy traffic is billed separately by your Apify plan.

Use with AI agents (MCP)

Reddit Leads Scraper can be called by AI assistants such as Claude, ChatGPT and Cursor through the Apify MCP server at https://mcp.apify.com. The server exposes the tools search-actors and call-actor, and this Actor's typed input and output schemas let an agent fill in the fields and read the results without guessing.

To load this Actor directly, add it to your MCP client configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=axiomworks/reddit-lead-miner"
}
}
}

Example prompts you can type into your agent:

"Find buying-intent Reddit posts in r/SaaS and r/smallbusiness that mention CRM and show me the five hottest leads." "Scan the newest posts in r/Entrepreneur for people asking for an alternative to a project management tool, and suggest how to reply." "Run Reddit Leads Scraper on r/webdev with minScore 40 and summarize what people are asking for."

Integrations and API

Run Reddit Leads Scraper from code. Set your Apify API token in the APIFY_TOKEN environment variable.

Python:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("axiomworks/reddit-lead-miner").call(run_input={
"subreddits": ["SaaS", "smallbusiness"],
"keywords": ["CRM"],
"minScore": 40,
"maxResults": 20,
})
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
print(lead["intent_score"], lead["title"], lead["post_url"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('axiomworks/reddit-lead-miner').call({
subreddits: ['SaaS', 'smallbusiness'],
keywords: ['CRM'],
minScore: 40,
maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
process.stdout.write(JSON.stringify(items, null, 2));

cURL:

curl -X POST "https://api.apify.com/v2/acts/axiomworks~reddit-lead-miner/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"subreddits": ["SaaS", "smallbusiness"], "keywords": ["CRM"], "maxResults": 20}'

Connect Reddit Leads Scraper to Zapier, Make, n8n, Google Sheets, Slack and other tools through Apify integrations, or use webhooks to trigger your own workflow when a run finishes. Schedule it every few hours in Apify Console to keep a steady stream of fresh leads.

FAQ

How do I focus on discussion posts?

Set postTypes to ["text"]. Leave it empty to retain all supported types. This narrows the returned leads after scanning; it does not reduce the number of posts fetched or billed. Image, video and link types are inferred from feed URLs. The body is the text Reddit supplies in the RSS feed, which may be empty or incomplete; the Actor does not visit linked websites or fetch comments to fill it.

What happens when a feed is blocked?

Each feed has a bounded deadline including queueing and retries. Failed feeds are recorded in run-stats while other feeds continue. If none is accessible, the run ends successfully with no dataset rows and a message explaining which target or proxy setting to change. A missing required subreddit input still fails validation.

Do I need a proxy to scrape Reddit? Reddit can block direct connections. Apify Proxy is prefilled with RESIDENTIAL and defaults to it on Apify when omitted. Failed feeds are skipped; no posts scanned means no scan events charged.

How far back does it look? Each feed returns roughly the 25 newest posts, so this is a fresh-intent radar and not a historical search. Schedule it, for example every few hours, to keep coverage and catch new posts while they are still actionable.

Why did I get no leads? Lower the minimum intent score, add more keywords, or turn on the built-in buying-intent phrases. Also check the run-stats record in the key-value store to confirm feeds were fetched.

Why are some subreddits skipped? Private, banned or misspelled subreddits return HTTP 403 or 404. They are logged in run-stats and the run continues with the rest.

Why no upvotes or comment counts? Reddit's RSS feeds do not include them, so engagement is not scored. Recency stands in for how actionable a lead is.

Does it contact anyone? No. Outreach is your job. Read each subreddit's self-promotion rules first, because undisclosed promotion can get accounts banned.

This Actor reads only the public RSS feeds that Reddit publishes for syndication, and it collects public post data. It does not log in, and it does not access private content. You are responsible for how you use the data. Follow privacy law such as GDPR and CCPA when you store or process personal data like usernames, respect each subreddit's rules and Reddit's terms, keep request volume modest, and do not use the output for spam. Reddit can change or block these feeds at any time. This Actor is not affiliated with or endorsed by Reddit. This is general information, not legal advice.

Feedback

Found a bug or want a new field? Open an issue in the Issues tab of this Actor and it will be looked at. Feature requests and examples of runs that behaved unexpectedly are welcome.