Reddit Lead Finder — Buying Intent Leads avatar

Reddit Lead Finder — Buying Intent Leads

Pricing

$2.50 / 1,000 leads

Go to Apify Store
Reddit Lead Finder — Buying Intent Leads

Reddit Lead Finder — Buying Intent Leads

Find the Reddit threads where people are openly asking for what you sell — "looking for", "any recommendations", "alternative to". Every lead is scored 0-100 for buying intent, freshness and engagement, with the quote, thread link and the author's profile. A ranked warm-lead list, not a firehose.

Pricing

$2.50 / 1,000 leads

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Reddit Lead Finder

Every day people go on Reddit and ask, in public, for exactly what you sell — "looking for a project management tool", "any recommendations for a CRM under $50?", "what do you all use for time tracking?". This actor hunts those threads down for you. Give it the words your buyers use, and it searches Reddit's posts and comments, scores every hit from 0 to 100 for buying intent, freshness and engagement, and hands you a ranked list with the exact sentence they wrote, a link to the thread and a link to the author's profile. It is a warm-lead list you can work through in an afternoon, not a firehose of mentions.

What you can do with it

  • Find people shopping for your category right now — combine project management tool with ten buying-intent phrases and get back only the threads where somebody is actually asking, not just talking.
  • Steal your competitor's unhappy customers — search alternative to <competitor> and reach the people already looking for the door.
  • Feed a weekly outreach list — schedule it, take the top 20 leads by score, reply where you can genuinely help.
  • Watch the communities that matter — restrict the hunt to the handful of subreddits your buyers live in, and blacklist the ones that only produce noise.
  • Validate a new product or feature — read the top-scoring threads for a keyword to see how people describe the problem in their own words.
  • Brief your sales or community team — each lead ships with the quote, the subreddit, the upvotes and the age, so anyone can pick it up and act.

What you get

One record per lead, best score first:

{
"leadScore": 90,
"intentScore": 50,
"recencyScore": 29.4,
"engagementScore": 10.3,
"matchedKeyword": "project management tool",
"matchedIntent": "looking for",
"matchedIntents": ["looking for"],
"snippet": "…If customers are asking AI before looking for something online, then AI visibility becomes another channel of growth for your product…",
"foundVia": "intent-phrase",
"searchQuery": "\"project management tool\" \"looking for\"",
"type": "post",
"id": "1v8qmwd",
"title": "I decided to test whether AI recommends SaaS products. The results have been… weird.",
"url": "https://www.reddit.com/r/microsaas/comments/1v8qmwd/i_decided_to_test_whether_ai_recommends_saas/",
"subreddit": "microsaas",
"author": "Classic_Turnover_896",
"authorProfileUrl": "https://www.reddit.com/user/Classic_Turnover_896/",
"score": 15,
"numComments": 23,
"upvoteRatio": 1,
"createdAt": "2026-07-28T07:01:45.000Z",
"ageHours": 13.6,
"isSelfPost": true,
"over18": false
}

Comment leads carry the same shape, with type: "comment", the parent thread in title / postId / postUrl, and a link straight to the comment in url.

Where comment leads come from

Reddit's own search covers posts, not replies. So when Search comments too is on, comment leads are drawn out of the strongest threads each keyword surfaced — and a reply earns a row only when the person writing it is themselves asking for something, not merely talking in a thread that matched. Those rows are marked foundVia: "thread-comment". At most 20 threads per keyword and 100 per run are mined this way, so the extra reach is bounded and predictable.

How the score works

leadScore is a plain sum of three capped parts, so you can always explain a ranking:

PartOut ofWhat it measures
intentScore50How strong the matched buying phrase is, plus small bonuses when a second phrase matches, when the match is in the title, and when the text asks a question.
recencyScore30How fresh the thread is, decaying evenly across the time window you chose. A brand-new post gets the full 30; one at the edge of the window gets 0.
engagementScore20Upvotes (60%) and comment count (40%), both log-scaled, so 1,000 upvotes maxes out the upvote part and 100 comments maxes out the comment part.

No AI, no black box, no extra cost — just arithmetic you can audit in the output, since all three parts are stored on every record.

Input reference

FieldTypeDefaultDescription
productKeywordsarray of strings["project management tool"]Required. What you sell, in your buyers' words. Each keyword is searched alone and paired with every intent phrase. Up to 20 per run.
intentPhrasesarray of strings10 shipped phrasesPhrases that signal somebody is asking for a recommendation: looking for, any recommendations, recommend a, alternative to, anyone using, best tool for, worth it, help me choose, suggestions for, what do you use. Pass your own list to override (up to 15), or an empty list to run bare keyword searches only.
subredditsarray of strings[] (all of Reddit)Limit the hunt to specific communities. SaaS, r/SaaS and a full subreddit URL all work. Up to 20 per run.
excludeSubredditsarray of strings[]Communities to drop from the results — job boards, meme subs, your own support community. Up to 50.
searchCommentsbooleantrueAlso pull leads out of the replies inside the best threads found. Many of the strongest leads are a comment inside somebody else's thread.
timeselectmonthHow far back to search: hour, day, week, month, year, all. Also sets the horizon the recency score decays over.
maxLeadsPerKeywordinteger50Highest-scoring leads to keep per keyword (1–1000). Everything below the cut is discarded before it reaches your dataset.
minScoreinteger1Drop posts and comments below this upvote count.
excludeKeywordsarray of strings[]Drop any lead whose text contains one of these words — very effective against hiring, giveaway or a competitor's name. Up to 50.
maxConcurrencyinteger8Searches to run at the same time (1–20). Higher is faster.
countryselectusWhich country's view of Reddit your results should reflect.

Output fields

FieldTypeDescription
leadScorenumber0–100 overall lead quality. The dataset is sorted by this, highest first.
intentScore / recencyScore / engagementScorenumberThe three parts of the score, so you can re-rank however you like.
matchedKeywordstringThe product keyword this lead was found for.
matchedIntentstring | nullThe strongest buying-intent phrase actually found in the text. null when Reddit matched the thread but the phrase is not present verbatim.
matchedIntentsarrayEvery intent phrase found in the text, in the order they appear.
snippetstringRoughly 150 characters either side of the match — the sentence you reply to.
foundViastringintent-phrase when a phrase query surfaced it, keyword when the bare keyword search did, thread-comment when it came out of a thread's replies.
searchQuerystringThe query that produced this lead — for a thread-comment row, the query that surfaced the thread it sits in.
typestringpost or comment.
id / fullIdstringReddit's identifiers. Use id to de-duplicate across scheduled runs.
titlestringThe post title, or for a comment the title of the thread it sits in.
bodystring | nullFull text of the post or comment.
urlstringDirect link to the post or comment.
permalinkstringReddit-relative path to the same place.
subreddit / subredditSubscribersstring / numberWhere it was posted, and how big that community is.
author / authorProfileUrlstringWho wrote it, and a link to their profile.
score / upvoteRationumberUpvotes and the share of votes that were upvotes.
numCommentsnumberComments on the post (posts only).
createdAt / ageHoursdate / numberWhen it was posted, and how old it was when the run happened.
flair / authorFlairstring | nullPost and author flair.
linkUrl / domainstring | nullFor link posts, where it points.
over18 / locked / archived / stickiedbooleanThread state — locked and archived threads can no longer be replied to.
postId / postUrl / isTopLevelstring / booleanFor comment leads, the thread they belong to and whether the comment is a direct reply to the post.

A SUMMARY record is also written to the run's key-value store with the keyword list, how many searches ran, how many candidates were considered, the top and average lead score, and the elapsed time.

Pricing

This actor is pay per event, and there is exactly one event: the standard dataset item, apify-default-dataset-item, priced at $0.0025 per lead — $2.50 per 1,000 leads. There are no custom events and no surcharges. You are charged once for every lead that lands in your dataset, and nothing else — no charge per search, no charge per keyword, no monthly fee beyond your Apify plan.

Candidates that fail your filters (too few upvotes, an excluded subreddit or keyword, a deleted author, removed content) and everything below your maxLeadsPerKeyword cut are dropped before they are pushed, so you never pay for them. That makes the cost of a run easy to predict: at most maxLeadsPerKeyword × number of keywords items, usually fewer once duplicates across keywords are merged. Three keywords at the default 50 leads each works out at roughly $0.38 a run.

Limits and what this actor cannot do

  • Results are a relevance-ranked sample, not an exhaustive archive. Reddit itself limits any single feed to roughly 1,000 posts, and its search stops well short of that: expect a relevance-ranked selection of a few hundred results per query, with the best-matching threads first. "Every post that ever mentioned my product" is not achievable through Reddit search, by this actor or any other.
  • Searching more widely widens the net, but the results overlap. Each keyword × intent phrase × subreddit combination is searched separately, so more phrases and more subreddits do reach further — measured at roughly 1.8× the hits of a single query across four combinations, not 4×, because the same strong threads come back in several of them. Duplicates are merged before you are charged.
  • A run performs at most 400 searches. Very large combinations (many keywords × many phrases × many subreddits) are trimmed, keyword by keyword in turn, so every keyword still gets covered. The run log tells you when that happened.
  • Long input lists are trimmed too. A single run uses at most 20 product keywords, 15 intent phrases, 20 named subreddits and 50 entries in each exclusion list; anything beyond that is ignored without failing the run. Split a bigger list across several runs.
  • Reddit has no comment search. Asking it for comments gives back the same posts a post search would. That is why comment leads are drawn out of the threads themselves instead: only the threads your searches surfaced can contribute comments, up to 20 threads per keyword and 100 per run — and within each of those threads only the top few hundred replies are read, so a lead buried deep in a very long discussion can be missed.
  • Reddit decides what "matches". Its search stems and loosens queries, so a thread can come back without containing your intent phrase word for word. Those leads keep a null matchedIntent and score on recency and engagement alone — usually landing well down the list.
  • Intent phrases are matched literally, on whole words. "looking for" will not match "looking forward", which keeps false leads out — but it also means a phrase only counts when somebody wrote it the way you spelled it.
  • Private and banned communities are not readable. If you name one it is skipped with a warning and the run continues; quarantined communities are expected to behave the same way, though that has not been confirmed. Moderator-only data (mod lists, removal reasons, mod queues) is not available at all.
  • There is no "users online now" figure. Reddit does not make one available; use subredditSubscribers and posting activity to judge how alive a community is.
  • Deleted and removed content is dropped, as are leads whose author is [deleted] or AutoModerator — you cannot reply to any of them.
  • Intent scoring is a transparent formula, not AI. It reads phrases, dates and vote counts. It cannot tell sarcasm from sincerity, and it does not look at images or videos.
  • It finds and ranks leads. It does not contact anybody. No posting, no commenting, no DMs, no voting. Reaching out is your job — and Reddit communities have their own rules about self-promotion, so read them before you reply.
  • Every run returns everything that matches, including leads you have already seen. De-duplicate on id if you run it on a schedule.

FAQ

Do I need a Reddit account? No. You do not need a Reddit account, a login, or any credentials — just enter what you want and run it.

How fast is it? Leads come back in large batches, so even big jobs finish quickly. A focused run — one keyword, one phrase, posts only — takes a couple of seconds; a broad run across several keywords, ten intent phrases and comments takes a few minutes, mostly determined by how many searches your settings imply and your maxConcurrency.

Can I run it on a schedule? Yes, and it is designed for it — a daily run with time: "day" gives you that day's fresh leads. It always returns every current match, so de-duplicate on id against what you have already worked.

Why do some leads score high without an intent phrase? Because the score also rewards freshness and engagement. A brand-new, heavily upvoted thread about your keyword can be worth reading even if nobody typed "looking for" — but it will never beat a genuine ask, which starts 50 points ahead.

How do I get rid of job ads and giveaways? Put hiring, [hiring] or giveaway in excludeKeywords, and the subreddits they come from in excludeSubreddits. Those filters run before anything is pushed, so filtered noise costs you nothing.

Can I use my own intent phrases? Yes. Replace intentPhrases with the wording your market actually uses — anything you supply is treated as a strong buying signal, slightly below the built-in phrases that were tuned for this.