Finding leads on Reddit without a semantic search engine
A brand keyword finds posts that name your product. The people you most want to talk to never do. They ask for "any Arcade alternative?" or "how do I record a product demo?", get three replies within a day, and pick one. Overhear's lead finding is built for those posts. This is how it works, what we tested along the way, and the parts we decided not to build.
One expectation first, because it shapes everything below: a tracked phrase surfaces a handful of genuine requests a month, not a daily feed. The job is to find those few and not bury them.
Start from the buyer's words
A lead phrase is something your customer would type, not something you would. "Navattic alternative", "record a product walkthrough", "interactive demo for onboarding". You describe your ideal customer, the problems you solve, the alternatives people use today, buying signals and exclusions in a lead profile, and Save & suggest searches proposes phrases from it. Edit them, track the ones that fit, add your own.
Specific phrases find buyers and generic ones find noise. "Arcade alternative" also matches music plugins and arcade games. A competitor's name or the problem in your customer's own words works best.
Each phrase runs every 6 hours on the same sources as brand keywords by default. On hosted Overhear a Reddit search costs one credit and an X search two, so a phrase that returns vendors is a phrase to drop, and the Search quality card on the Leads tab compares up to three phrases over 30 days for that purpose.
Most of what comes back is sellers
Search for a buyer's question and half the results are vendors, listicles and job ads. Sending all of that to a language model would cost more than the leads are worth, so the results pass a cheaper gate first. A small TypeSafe model ranks each source's results on three questions: is the post on topic, is the author asking for help, is the author selling. Only the top few go to Claude.
Claude then scores two things separately, because they are different things:
- Fit, 0 to 100, is how well the author suits you as a customer. It is not a chance of purchase. Sellers, job ads and anything your exclusions name get zero and stay hidden.
- Intent is whether they are actively looking, exploring a problem, showing no buying signal, or unclear.
Every assessment carries a reason and a supporting quote, and the quote is checked against the source post before the lead is shown. The Leads tab lists results at or above your minimum fit, 60 by default. An email alert needs active intent and a fit of at least 80.
We tested semantic search and kept keywords
Keyword search has an obvious weakness: a post can describe your problem without using any of your words. So on 2026-10-29 we tried a "problem search" source with the profile of our own product, Stepshots, which makes screenshot-based product walkthroughs.
- Exa has no Reddit index.
- Tavily returned nothing usable.
- Perplexity, restricted to reddit.com, cost 10 credits per question, has no date filter, and its one fresh qualifying post was already in the keyword results.
Meanwhile three plain keyword searches, 3 credits in total with Reddit's relevance sort over a month, found seven fresh posts at a fit of 60 or more. Reddit's own relevance search already widens beyond the exact phrase, and the gate plus Claude do the rest. We dropped the idea. If problem-first search comes back, it will be a change to the interface, with a problem as the unit and two or three derived phrasings each, not a new search vendor.
Haiku was enough
The scoring prompt runs on Claude Haiku. We checked whether a larger model would judge better with a hand-labelled set: nine posts from Reddit and X searches for Stepshots, labelled by hand on 2026-10-17, where the positives are genuine asks for demo tools and everything else is a seller that must score zero. Sonnet did no better on it than Haiku.
Nine posts is a small set, so the set grows from use. Every lead a team saves, replies to or dismisses can be exported into the same format, and a prompt change is measured against those verdicts before it ships.
Scoring learns from your clicks
The model does not know your market the way you do, and a profile cannot say everything. So the project's last four kept leads and eight dismissed ones, with the reason you gave, go into every later assessment as examples. "Seller" and "Excluded" teach the zero-fit flags, "Wrong audience" lowers fit for people like them, "Not asking" teaches intent.
The examples are shared across all of a project's phrases, not kept per phrase. Who fits you is a property of your buyer profile, and one phrase alone yields too few verdicts to learn from.
We considered a memory service for this and decided against it. It would mean a second processor for text other people wrote, latency inside the scan, and a system built for long conversations applied to ten to fifty clicks. A dozen examples in the prompt do the job. Once you have reviewed five leads, a card compares the median fit of the leads you dismissed with those you kept over the last 90 days, so you can see whether the scoring tracks your judgment.
What we look up, and what we don't
For a lead from X at or above your minimum fit, Overhear fetches the author's public profile once, for one credit, and shows the bio and follower count on the card. The reply draft reads the bio too. Misses are stored so a profile is never bought twice, and dismissing a lead deletes the bio.
The bio does not feed the fit score. That would mean looking up every X candidate that passes the gate before Claude sees it, several credits per scan, for a signal the card already shows you.
We also decided against LinkedIn profiles, Reddit posting history and email enrichment. They sit outside what a mention monitor should do, and they sit badly with the GDPR.
Replying
Every lead has Draft reply. The draft answers the question first, says plainly that you work on the product, and links your site once through a tracked link. Drafts run on Claude Sonnet and cost 15 credits each; we tried Opus and it bought nothing for 60 words a human edits before posting. Overhear never posts for you. You edit, open the post, paste, and click Mark replied.
The tracked link counts clicks and sends readers to your homepage with utm_source=overhear. Link previews from X, Slack and Discord fetch every link they show, so those fetches are not counted. The Leads tab shows leads, replies and clicks for the last 30 days.
What to expect
A few real requests a month per phrase, each with a quote you can check and the post's age next to it, and a reply in your own voice ready to edit. Lead finding is marked beta in the app until kept leads score clearly above dismissed ones across several projects. The leads guide has the details, and the lead finding page shows what one phrase costs at the default pace.