Reddit Leads / Purchase Intent Finder
Pricing
from $50.00 / 1,000 qualified leads
Reddit Leads / Purchase Intent Finder
Find Reddit posts and comments where people ask for recommendations, alternatives, tools or services. Explainable 0–100 intent score, HOT/WARM/COLD tiers, competitor-switching, budget and urgency, vendor filtering, one row per person, only-new monitoring. No Reddit login or API key.
Pricing
from $50.00 / 1,000 qualified leads
Rating
0.0
(0)
Developer
Delowar Munna
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share

Find Reddit posts and comments where people are actively looking for products, services, tools, alternatives or recommendations. Every result gets a 0–100 purchase-intent score with the reason behind it: the buying signals that fired, the exact phrases that fired them, and a point-by-point breakdown. Competitor switching, budgets and urgency are extracted, vendors and self-promoters are filtered out, and you get one row per person. No Reddit login, API key or AI cost.
Not just score = 87 — why this person is a lead.
What it does
- Searches all of Reddit or the subreddits you choose for your keywords and your competitors' names, within a time window (past hour to all time).
- Scores posts and their comments. Many of the best leads are replies in recommendation threads — "same here, did you find one?", "we're leaving HubSpot too".
- Detects 18 buying signals (recommendation requests, looking for a tool or provider, hiring, switching, alternatives, competitor replacement, price comparison, budget, deadline, pain with a current solution, trial interest, migration, local service needs …) and 8 negative signals (vendor promotion, affiliate links, job seekers, academic surveys, past purchases, no current need, people giving advice rather than asking, bots).
- Tiers every result HOT / WARM / COLD, extracts budget (amount, range, currency, period) and urgency, and estimates the buyer-journey stage.
- Returns one row per person (lead mode) with their best post or comment and every other qualifying mention — or one row per post/comment (mention mode).
- Only-new monitoring: schedule it hourly or daily and get only leads you have not seen.
- Adds each lead's public karma and account age.
Quick start
The minimal run — one keyword, all of Reddit, the past month:
{"keywords": ["CRM"],"timeRange": "MONTH","maxPostsPerKeyword": 100,"scanComments": true,"minIntentScore": 50}
Competitor churn — people leaving HubSpot or Salesforce in two communities:
{"keywords": ["CRM"],"competitors": ["HubSpot", "Salesforce"],"subreddits": ["SaaS", "sales"],"timeRange": "MONTH","intentTiers": ["HOT", "WARM"],"scanComments": true}
Local service leads:
{"keywords": ["plumber", "electrician", "builder"],"subreddits": ["canberra"],"timeRange": "WEEK","scanComments": true,"minIntentScore": 60}
Only-new monitoring for a daily schedule:
{"keywords": ["website redesign", "web developer"],"subreddits": ["smallbusiness", "Entrepreneur"],"timeRange": "DAY","scanComments": true,"onlyNewLeads": true,"monitorKey": "web-agency-leads","intentTiers": ["HOT", "WARM"]}
FAQ
What counts as purchase intent?
Someone who is about to choose, buy, switch, hire, trial or compare. The engine looks for phrase families such as:
| Signal | Example phrasing |
|---|---|
REQUESTING_RECOMMENDATION | "can anyone recommend", "what CRM should I use", "has anyone used" |
ASKING_WHAT_TO_BUY | "should I buy", "is it worth it?", "what would you buy" |
LOOKING_FOR_TOOL / LOOKING_FOR_PROVIDER | "I'm looking for a…", "need a plumber", "is there an app that…" |
LOOKING_TO_HIRE | "looking to hire", "[Hiring]", "need someone to…" |
LOOKING_TO_SWITCH / ALTERNATIVE_REQUEST | "switching from", "alternative to", "need a HubSpot alternative" |
COMPETITOR_REPLACEMENT | one of your competitors named next to a switching word |
PRICE_COMPARISON | "cheaper than", "how much does it cost", "getting quotes" |
BUDGET_MENTION | "budget is $100/month", "under €500", "$2k–3k" |
TIME_SENSITIVE / PURCHASE_TIMELINE | "asap", "this week", "by Friday" / "this month", "before launch" |
CURRENT_SOLUTION_PROBLEM / PAIN_POINT | "too expensive", "keeps crashing", "frustrated with" |
TRIAL_OR_DEMO_INTEREST, MIGRATION_INTENT, IMPLEMENTATION_INTENT | "free trial", "migrate our data", "setting up a new…" |
LOCAL_SERVICE_NEED | a provider need tied to a place: "near me", "in Canberra" |
CUSTOM_INTENT_PHRASE | one of your own intentPhrases |
Purchase intent is inferred from public text, not guaranteed.
Do you scan posts and comments?
Yes. Every post found is scored. With scanComments on (the default), the comments of threads that
ask, compare, complain or name a competitor are scored too, up to maxCommentsPerPost each. A reply
that echoes a buying thread ("same here — did you find one?") inherits that thread's intent. Each
comment row keeps its parent post's title and URL.
Can I search all of Reddit? Can I restrict subreddits?
Both. Leave subreddits empty to search all of Reddit, or list communities (SaaS, r/SaaS or the
full URL). With subreddits listed, each keyword is searched in each of them. Turn on
includeSubredditNewPosts to also read each community's newest posts — those still have to mention
a keyword or competitor to qualify.
Can I track competitors?
Yes — list them in competitors. Each is searched by name, and a post or comment that names one
next to a switching word ("leaving", "alternative to", "replacing", "too expensive") is flagged
COMPETITOR_REPLACEMENT. Complaints about a named competitor are CURRENT_SOLUTION_PROBLEM.
How is the intent score calculated?
The strongest buying signal sets a base (15–50 points); a second, different kind of intent, a stated
budget, a deadline, specific requirements, a local need, a named competitor and asking a question
add to it; negative signals subtract. Every lead carries a scoreBreakdown, so the arithmetic is
never hidden:
"scoreBreakdown": [{ "factor": "COMPETITOR_REPLACEMENT", "points": 50 },{ "factor": "SECOND_INTENT_FAMILY", "points": 10 },{ "factor": "BUDGET_MENTION", "points": 15 },{ "factor": "URGENCY_HIGH", "points": 15 },{ "factor": "COMPETITOR_NAMED", "points": 5 }]
A plain "What CRM should I use?" scores 50. Without any buying signal a result is capped at 25, so a topic mention with a dollar figure in it never passes as a buyer.
What do HOT / WARM / COLD mean?
| Tier | Score | Meaning |
|---|---|---|
| HOT | 70–100 | Clear near-term action: a budget, a deadline, actively switching or hiring |
| WARM | 50–69 | A real need, request or comparison with less urgency |
| COLD | 0–49 | A relevant pain point or topic with little current buying intent |
The default returns HOT and WARM. To receive COLD as well, add it to intentTiers and lower
minIntentScore.
Are vendors and self-promoters filtered?
Yes, by default (excludeVendors). "We offer", "our product", "DM me", "I built", "check out my",
affiliate and promo codes are detected, and the same promotional text posted by one author in three
or more threads is treated as spam. Replies that give advice ("you probably don't need a full
CRM yet", "been using Pipedrive for two years") are scored down, because the buying phrases in them
describe someone else. Founders writing about their own product ("I'm building…", "our free trial",
"paying customers", "day 15 of 30"), launch posts, pilot recruitment, "Top 10 / 6 best" articles and
job-board ads are scored down or filtered too. You can add your own excludePhrases and
excludeAuthors.
Is AI required?
No. Scoring is a transparent rule engine — no LLM call, no AI cost, and the same text always gets the same score.
Can I find only new leads?
Yes: onlyNewLeads: true. The Actor remembers what it delivered under your monitorKey (a named
key-value store in your account) and skips it next time. Without a monitorKey, one is derived from
your keywords, competitors and subreddits.
Can the same author appear more than once?
Not in lead mode: mentions are merged by username, the highest-scoring one becomes bestSource, and
the rest are listed in allMatchedSources. A lead's budget and urgency come from whichever of their
mentions states them. Deleted or anonymous authors are never merged — each of their mentions is its
own row. In mention mode, every qualifying post or comment is its own row. With onlyNewLeads, an
author already delivered is not delivered again.
Is karma / account age included?
Yes, by default (includeAuthorProfile): total, post and comment karma and the account creation
date, looked up only for leads that are delivered. author.profileStatus says when a profile could
not be read (deleted, not_found_or_suspended, unavailable). Accounts Reddit marks as automated
are dropped.
Is budget extracted?
When it is written down: budget.text, amountMin, amountMax, currency and period (MONTH,
YEAR, PER_USER …). "I paid $500 last year" is not a budget; "budget is $500" is. Nothing is inferred.
Can I schedule hourly or daily runs?
Yes — use an Apify schedule with timeRange HOUR or DAY and onlyNewLeads on.
How does pricing work?
Pay per result: you are charged once per qualified result delivered — one lead in lead mode, one post or comment in mention mode. Posts and comments that are scanned but do not qualify, vendors, bots, merged duplicates, leads already delivered to your monitor, profile lookups and failed searches are never charged. Rows are delivered best-first, so a spending limit keeps the highest-intent leads. See the Pricing tab for the current rate — this README deliberately does not quote figures.
Can I use the API / MCP?
Yes. Run it like any Apify Actor through the API, the JavaScript/Python clients, integrations (Make, Zapier, n8n) or Apify's MCP server, and read the dataset views below.
Input reference
| Field | Default | What it does |
|---|---|---|
keywords | ["CRM"] | What your buyers look for. Required. |
competitors | — | Products whose unhappy users you want to find. |
subreddits | — (all of Reddit) | Communities to search in. |
timeRange | MONTH | HOUR, DAY, WEEK, MONTH, YEAR, ALL. |
sort | NEW | NEW, RELEVANCE, TOP, HOT, COMMENTS. |
maxPostsPerKeyword | 100 | Posts scanned per keyword or competitor (per subreddit when listed). |
scanComments | true | Score the comments of buying threads. |
maxCommentsPerPost | 50 | Comments scored per thread. |
includeSubredditNewPosts | false | Also read each listed subreddit's newest posts. |
minIntentScore | 50 | 0–100. |
intentTiers | HOT, WARM | Tiers to return. |
intentPhrases | — | Your own buying phrases. |
excludePhrases | — | Drop anything containing these. |
excludeAuthors | — | Usernames to ignore. |
excludeVendors | true | Drop self-promotion and affiliate copy. |
outputMode | LEAD | LEAD (one row per person) or MENTION (one row per post/comment). |
includeAuthorProfile | true | Karma and account age. |
includeReplyAngle | false | A one-line, rule-based suggestion of what a helpful reply would address. |
onlyNewLeads | false | Skip what earlier runs delivered. |
monitorKey | derived | Names the memory onlyNewLeads uses. |
Output
Leads (default) — one row per person

A real lead from a CRM search in r/SaaS and r/smallbusiness (username anonymised):
{"rowType": "lead","author": {"username": "example_user_1","profileUrl": "https://www.reddit.com/user/example_user_1/","karma": 66,"linkKarma": 56,"commentKarma": 10,"accountCreatedAt": "2026-06-10T00:00:00.000Z","isVerified": false,"profileStatus": "found"},"intentScore": 85,"intentTier": "HOT","intentSignals": ["REQUESTING_RECOMMENDATION","LOOKING_FOR_TOOL","ALTERNATIVE_REQUEST","TIME_SENSITIVE"],"matchedKeywords": ["CRM"],"matchedCompetitors": [],"matchedPhrases": ["any suggestion","i need a","any good wiza alternatives","right now"],"budget": {"mentioned": false,"text": null,"amountMin": null,"amountMax": null,"currency": null,"period": null},"urgency": "HIGH","buyerJourneyStage": "PURCHASE_READY","leadReason": "Asking for an alternative and asking for recommendations; gives a near-term timeline (\"right now\").","replyAngle": null,"scoreBreakdown": [{"factor": "REQUESTING_RECOMMENDATION","points": 45},{"factor": "SECOND_INTENT_FAMILY","points": 20},{"factor": "URGENCY_HIGH","points": 15},{"factor": "QUESTION","points": 5}],"bestSource": {"type": "POST","id": "t3_1x512b2","postId": "1x512b2","commentId": null,"subreddit": "SaaS","title": "Any good wiza alternatives? I don't really like the credit system","text": "We're using wiza for outbound at an industrial maintenance SaaS right now, it's the usual thing like we go after plant and ops people in the UK, Germany and sometimes Italy.\n\nI have no problem with the linkedin side but my outbound volume is all over the place (it's an internal issue ik)\n\nBecause sometimes we're running a new territory campaign and everything's on fire, then other months goes quiet and all the credits we didnt use are wasted. And I am not liking the fact that I need to pay overages again next month for the next campaign\n\nI also got a bunch of older CRM lists where I need a decent direct mobile and work email so I really don't wanna pay for some huge unlimited plan.\n\nSo do you guys have any suggestion that works better for our case?","textAvailable": true,"url": "https://www.reddit.com/r/SaaS/comments/1x512b2/any_good_wiza_alternatives_i_dont_really_like_the/","postUrl": "https://www.reddit.com/r/SaaS/comments/1x512b2/any_good_wiza_alternatives_i_dont_really_like_the/","publishedAt": "2026-10-13T16:18:49.080Z","score": 1,"commentsCount": 8,"intentScore": 85,"intentTier": "HOT","intentSignals": ["REQUESTING_RECOMMENDATION","LOOKING_FOR_TOOL","ALTERNATIVE_REQUEST","TIME_SENSITIVE"]},"mentionCount": 1,"subreddits": ["SaaS"],"allMatchedSources": [{"type": "POST","id": "t3_1x512b2","postId": "1x512b2","commentId": null,"subreddit": "SaaS","title": "Any good wiza alternatives? I don't really like the credit system","text": "We're using wiza for outbound at an industrial maintenance SaaS right now, it's the usual thing like we go after plant and ops people in the UK, Germany and sometimes Italy. I have no problem with the linkedin side but my outbound volume is all over the place (it's an internal issue ik) Because…","textAvailable": true,"url": "https://www.reddit.com/r/SaaS/comments/1x512b2/any_good_wiza_alternatives_i_dont_really_like_the/","postUrl": "https://www.reddit.com/r/SaaS/comments/1x512b2/any_good_wiza_alternatives_i_dont_really_like_the/","publishedAt": "2026-10-13T16:18:49.080Z","score": 1,"intentScore": 85,"intentTier": "HOT","intentSignals": ["REQUESTING_RECOMMENDATION","LOOKING_FOR_TOOL","ALTERNATIVE_REQUEST","TIME_SENSITIVE"]}],"searchQueries": ["CRM in r/SaaS"],"firstSeenAt": "2026-10-14T13:50:46.769Z","scrapedAt": "2026-10-14T13:54:19.863Z","capturedSequence": 1}
Mentions — one row per qualifying post or comment
outputMode: "MENTION" returns every qualifying post or comment as its own row, with the post's
title and URL on comment rows. A post from the same run, laid out as a mention row (username
anonymised):
{"rowType": "mention","sourceType": "POST","sourceId": "t3_1wusags","postId": "1wusags","commentId": null,"subreddit": "SaaS","author": {"username": "example_user_2","profileUrl": "https://www.reddit.com/user/example_user_2/","karma": 3907,"linkKarma": 1684,"commentKarma": 2223,"accountCreatedAt": "2020-07-14T00:00:00.000Z","isVerified": false,"profileStatus": "found"},"title": "What CRM are you using to manage customers?","text": "I'm at the point where I need some kind of CRM/customer management system, but I'm not sure if I should use an existing tool or build something myself.\n\nMy current setup is pretty simple: React + Convex. I don't have 3rd party analytics on the dashboard right now, so I don't really have detailed user segmentation or a proper view of what each customer is doing and i like to keep it that way for privacy reasons.\n\nWhat I'd ideally like to manage from one place:\n\n* Customer communication\n* Support tickets\n* Abuse reports / account issues\n* Custom offers for specific users or groups\n\nI'm not looking for a full-blown sales CRM. Most of my needs are around managing existing SaaS users and communicating with them.\n\nHas anyone else had a similar setup? Is there an off-the-shelf tool that works well for this, or would it make more sense to build a simple internal dashboard on top of Convex and connect separate tools for email/support?","textAvailable": true,"url": "https://www.reddit.com/r/SaaS/comments/1wusags/what_crm_are_you_using_to_manage_customers/","postUrl": "https://www.reddit.com/r/SaaS/comments/1wusags/what_crm_are_you_using_to_manage_customers/","publishedAt": "2026-10-01T06:38:42.263Z","score": 4,"commentsCount": 11,"intentScore": 60,"intentTier": "WARM","intentSignals": ["LOOKING_FOR_TOOL","TIME_SENSITIVE"],"matchedKeywords": ["CRM"],"matchedCompetitors": [],"matchedPhrases": ["looking for a","right now"],"budget": {"mentioned": false,"text": null,"amountMin": null,"amountMax": null,"currency": null,"period": null},"urgency": "HIGH","buyerJourneyStage": "PURCHASE_READY","leadReason": "Looking for a product or tool; gives a near-term timeline (\"right now\").","replyAngle": null,"scoreBreakdown": [{"factor": "LOOKING_FOR_TOOL","points": 40},{"factor": "URGENCY_HIGH","points": 15},{"factor": "QUESTION","points": 5}],"searchQueries": ["CRM in r/SaaS"],"firstSeenAt": "2026-10-14T13:50:46.769Z","scrapedAt": "2026-10-14T13:54:19.953Z"}
Why each score — the explainability view
Signals, the phrases that fired them and the points each one added — the breakdown always sums to the score (username anonymised):
{"rowType": "lead","author": {"username": "example_user_3"},"intentScore": 80,"intentTier": "HOT","intentSignals": ["REQUESTING_RECOMMENDATION","LOOKING_FOR_TOOL","LOOKING_TO_SWITCH","CURRENT_SOLUTION_PROBLEM"],"matchedPhrases": ["would you recommend","i need some","leaving my","pain in the","compatible with"],"scoreBreakdown": [{"factor": "REQUESTING_RECOMMENDATION","points": 45},{"factor": "SECOND_INTENT_FAMILY","points": 20},{"factor": "SPECIFIC_REQUIREMENTS","points": 10},{"factor": "QUESTION","points": 5}],"budget": {"mentioned": false,"text": null,"amountMin": null,"amountMax": null,"currency": null,"period": null},"urgency": "UNKNOWN","buyerJourneyStage": "COMPARISON","leadReason": "Planning to switch away from a current solution and asking for recommendations.","searchQueries": ["CRM in r/smallbusiness"]}
null means "not available", never "no": an author whose profile could not be read has karma: null.
textAvailable: false marks a post whose body could not be read (only its title was scored).
Dataset views and run records
| View / record | What it shows |
|---|---|
| Leads | Author, score, tier, why, best source, karma — the lead-mode table |
| Mentions | One row per post or comment — the mention-mode table |
| Why each score | Signals, matched phrases and the score breakdown |
RUN_SUMMARY | Posts and comments scanned, candidates per tier, vendors filtered, authors merged, leads saved, what each delivered lead cost to find |
SOURCE_SUMMARY | Each search's status: SUCCESS, NO_RESULTS, INVALID_KEYWORD, INVALID_SUBREDDIT, SUBREDDIT_NOT_FOUND, RATE_LIMITED, BLOCKED, PARTIAL_RESULT, TEMPORARY_REDDIT_ERROR |
One failed keyword or subreddit never fails the run; it is reported there.
Limitations
- Search depth is bounded. Reddit's search returns roughly 250 results per query, sort and time window. To go deeper, narrow the window or add subreddits.
- Results vary by sort and time window, as they do on Reddit itself.
- Comments are capped per thread, and only the comments Reddit shows first (by its "best" ranking) are read; comment scanning covers threads that mention one of your keywords or competitors and ask, compare, complain or name a competitor.
- Keyword matching is literal, not topical: a post that mentions your keyword in passing ("a PC for work, CRM apps and gaming") can qualify if it shows buying intent of another kind.
- Long runs stop early to deliver. Shortly before the run's timeout, searching stops and the leads found so far are delivered (the status message says so). Raise the timeout to search further. Leads are delivered at the end of a run, so aborting a run part-way can leave it with none.
- Deleted, removed and private content is unavailable.
- Coverage is not exhaustive — this finds people who are visibly asking, not every buyer on
Reddit. Rule-based scoring is transparent but not perfect: read the
leadReasonand the source. - When a post's body cannot be read, it is scored on its title alone (
textAvailable: false).
🚦 Proxy policy
Use Apify Datacenter proxy (the default) or no proxy — both work for Reddit search and comment pages at this Actor's conservative request rate.
Apify Residential proxy is not supported. The Actor fails at startup if apifyProxyGroups
includes RESIDENTIAL. Reason: on pay-per-result Actors residential bandwidth is billed to the
developer, not the run, and Reddit comment pages are large, while Reddit serves the same pages to
datacenter addresses.
If you genuinely need residential routing, supply your own provider through the proxy editor's Custom proxy URLs field — that traffic goes through your provider, not Apify:
http://user:pass@proxy.iproyal.com:12321http://user:pass@proxy.brightdata.com:22225http://user:pass@proxy.oxylabs.io:7777
Responsible use
This is an unofficial tool and is not affiliated with Reddit. It reads public posts and comments only, with no login.
- Purchase intent is inferred, not guaranteed.
- You are responsible for lawful and respectful outreach. Reddit users may not expect unsolicited commercial contact — follow each subreddit's rules and Reddit's terms.
- Do not use the output for harassment or spam.
The Actor never sends messages or posts replies, never looks for private contact details, and never
infers sensitive attributes. replyAngle is a prompt for a human, not a message to send.
Related Actors
- Reddit Posts & Search Scraper — every post for a search or subreddit, not just the leads
- Reddit Comments Scraper — whole comment threads
- Reddit User Scraper — full public profiles and activity
Changelog
- 1.0 — first release: posts + comments, 18 buying signals and 8 negative signals with score breakdowns, HOT/WARM/COLD tiers, budget and urgency extraction, vendor and advice filtering, lead and mention modes, only-new monitoring, author karma and account age.