Reddit Leads / Purchase Intent Finder avatar

Reddit Leads / Purchase Intent Finder

Pricing

from $50.00 / 1,000 qualified leads

Go to Apify Store
Reddit Leads / Purchase Intent Finder

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

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

Reddit Leads / Purchase Intent Finder

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:

SignalExample 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_REPLACEMENTone 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_NEEDa provider need tied to a place: "near me", "in Canberra"
CUSTOM_INTENT_PHRASEone 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?

TierScoreMeaning
HOT70–100Clear near-term action: a budget, a deadline, actively switching or hiring
WARM50–69A real need, request or comparison with less urgency
COLD0–49A 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

FieldDefaultWhat 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.
timeRangeMONTHHOUR, DAY, WEEK, MONTH, YEAR, ALL.
sortNEWNEW, RELEVANCE, TOP, HOT, COMMENTS.
maxPostsPerKeyword100Posts scanned per keyword or competitor (per subreddit when listed).
scanCommentstrueScore the comments of buying threads.
maxCommentsPerPost50Comments scored per thread.
includeSubredditNewPostsfalseAlso read each listed subreddit's newest posts.
minIntentScore500–100.
intentTiersHOT, WARMTiers to return.
intentPhrases—Your own buying phrases.
excludePhrases—Drop anything containing these.
excludeAuthors—Usernames to ignore.
excludeVendorstrueDrop self-promotion and affiliate copy.
outputModeLEADLEAD (one row per person) or MENTION (one row per post/comment).
includeAuthorProfiletrueKarma and account age.
includeReplyAnglefalseA one-line, rule-based suggestion of what a helpful reply would address.
onlyNewLeadsfalseSkip what earlier runs delivered.
monitorKeyderivedNames the memory onlyNewLeads uses.

Output

Leads (default) — one row per person

Reddit Leads / Purchase Intent Finder — Leads view, table (author, score, tier, why, best source, karma)

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 / recordWhat it shows
LeadsAuthor, score, tier, why, best source, karma — the lead-mode table
MentionsOne row per post or comment — the mention-mode table
Why each scoreSignals, matched phrases and the score breakdown
RUN_SUMMARYPosts and comments scanned, candidates per tier, vendors filtered, authors merged, leads saved, what each delivered lead cost to find
SOURCE_SUMMARYEach 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 leadReason and 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:12321
http://user:pass@proxy.brightdata.com:22225
http://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.

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.