Shadow Inbox/blog
Subscribe
← back to indexblog / reddit / reddit-lead-generation-playbook
Reddit

The Reddit lead generation playbook for SaaS founders

Reddit lead generation is the cheapest high-intent channel left for SaaS founders. Here's the exact pipeline, scoring rubric, and 30-min ritual we run.

A
ArthurFounder, Shadow Inbox
publishedOct 08, 2025
read9 min
The Reddit lead generation playbook for SaaS founders

Reddit is the last public corner of the internet where buyers still describe their problem in plain English before they Google a solution. They post a 200-word rant in r/SaaS at 9:14am, list the three tools they tried, name the budget they

Reddit is the last public corner of the internet where buyers still describe their problem in plain English before they Google a solution. They post a 200-word rant in r/SaaS at 9:14am, list the three tools they tried, name the budget they have, and ask the room what to use. Then they wait.

Most founders never see that post. The ones who do see it are scrolling at the wrong hour, reply with a one-liner pitch, get downvoted, and conclude Reddit doesn't work. It works. They're doing it wrong.

Reddit is the only channel where the buyer writes the brief, posts it publicly, and waits for someone to read it.

The economics of Reddit have flipped in our favor.

LinkedIn outbound costs $1.20 to $4 per touch once you load in seat fees, enrichment, and SDR time. Cold email pulls a 1 to 3 percent reply rate on cold lists. Paid acquisition on B2B SaaS keywords is a bidding war we'll never win against Salesforce.

Reddit, by contrast, is free at the source. The signal cost is your reading time. The conversion math is brutal in your favor when the buyer has already self-qualified by typing "best alternative to Calendly under $50/mo for a 4-person agency."

73%of B2B buyers research peer recommendations before vendor sites
11minmedian time we see between post and first useful reply on r/SaaS
4.2×reply rate on contextual Reddit DMs vs templated cold email
$0marginal cost per qualified signal at the source

The catch: volume is the enemy. r/Entrepreneur alone posts hundreds of threads a day, 80% of which are "how do I find my first customer" noise. If you read it raw, you'll burn out in a week. The whole game is filtering.

Here's the pipeline we run.

We've shipped this exact shape across hundreds of customer search profiles. It works for SaaS, agencies, real estate, and dev tools. The boxes are the same; the keywords and subreddits change.

Reddit firehose (subreddit list + keyword list)


Relevance filter (semantic match against ICP profile)
    │  drops ~85% of posts

Intent filter (LLM classifier: buyer / talker / lurker)
    │  drops another ~60% of what survives

Enrichment (username → comment history → company hint → email)


Surface to operator (with reply draft + decay timer)

The two filters are non-negotiable. Skip the relevance filter and you'll read 800 posts to find 12 worth replying to. Skip the intent filter and you'll DM students writing capstone projects.

The enrichment step is optional but raises reply rates 2 to 3x because you can move the conversation off Reddit before the post falls off the front page.

Subreddit selection beats keyword selection.

New operators obsess over keyword lists. The right move is subreddit selection. A sharp keyword in the wrong subreddit is noise; a fuzzy keyword in the right subreddit is gold.

For a typical horizontal SaaS, we start with this map:

  • Core (5): the 2 biggest subreddits where your direct buyer lives. For a Calendly competitor that's r/SaaS and r/Entrepreneur. For a CRM, r/sales and r/CRM. For a dev tool, r/devops and r/programming.
  • Adjacent (3): subreddits where your buyer hangs out for unrelated reasons. r/smallbusiness, r/freelance, r/digital_marketing.
  • Wildcards (2): niche subreddits where your specific use case shows up. r/Coldemail, r/AgencyGrowth, r/RealEstate.

We deep-dive subreddit-by-subreddit picks in the niche mapping piece, but the rule of thumb is: if a subreddit has fewer than 5,000 members it's probably too small unless your ACV is over $20K. If it has more than 2 million, you'll need aggressive filtering.

Post mining and comment mining are different sports.

Most operators only mine posts. The thread title pops up, you read the body, you reply. Fine, but you're missing half the gold.

Post mining catches the buyer when they explicitly ask. High intent, low volume, fast decay.

Comment mining catches the buyer when they reply to someone else's thread saying "yeah we have the same problem, currently using X and it sucks." Lower intent per signal but 8 to 10x more volume, and the decay is gentler because you're already two layers deep in a thread the OP has stopped watching.

Our pipeline runs both. We tag each signal with source: post | comment and the operator dashboard sorts post signals first because of the decay curve.

The relevance filter is a cheap embedding match.

We don't need GPT-5 to figure out if a post about "best email marketing tool for ecom" is relevant to a Calendly competitor. We need a $0.0001 embedding lookup.

The shape:

// pseudocode — actual implementation uses a vector DB
const profileEmbedding = embed(userSearchProfile);
const postEmbedding = embed(post.title + " " + post.body);
const score = cosineSim(profileEmbedding, postEmbedding);
 
if (score < 0.62) return { drop: true, reason: "low_relevance" };
return { passToIntentFilter: true, score };

The threshold (0.62 in our case) is the only knob worth tuning per customer. Too low and you pay LLM costs on garbage. Too high and you miss laterally-phrased posts. We start at 0.58 and let it drift up as the user marks false positives.

The whole semantic-vs-keyword tradeoff is covered in more depth in our breakdown of LLM intent classifiers, but the short version: keywords are how you ship the demo, embeddings are how you ship the product.

The intent filter is one LLM call with chain of thought.

After relevance, we hand the post to a Claude Sonnet 4.6 call with a structured prompt. The job is to answer one question: is this person buying, asking for help, venting, or showing off?

You are a buying-intent classifier. The user sells: {one-line product}.
Read the Reddit post below.
 
Step 1: Summarize what the OP is asking in one sentence.
Step 2: Identify whether the OP has (a) a current pain, (b) a budget signal,
        (c) a deadline, (d) tools they've already tried.
Step 3: Classify intent as one of:
        - buyer_now (will purchase in <30 days)
        - buyer_soon (researching, 30-90 days)
        - tire_kicker (curious, no urgency)
        - venting (no purchase intent)
        - off_topic
Step 4: Return JSON: { intent, confidence (0-1), evidence: [quoted spans] }

A few things matter here.

Chain of thought before the verdict. If you ask the LLM to classify cold, it hallucinates the budget and deadline. Forcing it to extract evidence first cuts false positives roughly in half in our internal eval.

Quoted evidence spans. The dashboard shows the operator the exact quoted line from the post that triggered the buyer_now verdict. If the model can't quote, it can't classify. This catches roughly 1 in 12 hallucinations in production.

Temperature 0. This is a classifier, not a creative task. We pin it.

The 10 specific signals we pull at this stage are itemized in the high-intent post anatomy piece.

Score, then sort, then act.

The intent classifier returns a JSON blob. We turn it into a single score on a 100-point rubric. Operators don't need to read the JSON; they need a sorted inbox.

Our rubric:

  • Intent class (buyer_now=40, buyer_soon=25, tire_kicker=10, else 0)
  • Budget mentioned (+15)
  • Deadline mentioned (+10)
  • Competitor named (+10)
  • First-time asker on this topic (+8)
  • Posted in last 6 hours (+12)
  • Subreddit weight (0.6x to 1.4x multiplier on the total)

A post over 65 lights up red in the dashboard. Over 80 triggers a Slack ping. Below 40 we don't surface unless the user has cleared their queue.

This rubric is calibrated, not theoretical. We backtested it against 6 weeks of manually-labeled signals and tuned weights until precision at the top decile hit 82%.

Intent decays in hours, not days.

The single biggest mistake new operators make is treating Reddit signals like email leads. They're not. They have an expiration time.

A typical r/SaaS post gets:

  • 60% of its comments in the first 4 hours
  • 85% in the first 24 hours
  • ~99% in the first 72 hours

After hour 24, the OP has either picked a tool or stopped checking the thread. Replying then is a comment for posterity, not a conversation.

Our dashboard shows a decay timer on every signal. Green for 0-3 hours, yellow for 3-12, red for 12-24, gray after that. The red signals are the ones we want operators to drop everything for. The full timing math is broken down in our outbound timing piece.

Reply mechanics: comment first, DM later, never both at once.

We've watched founders torch good signals by leading with a DM. Don't.

The pattern that works:

  1. Public comment first. Useful, specific, no link. Demonstrate you read the post. Mention your tool only if directly asked or if the OP listed competitors.
  2. Wait for engagement. A reply, an upvote, a thank-you. That's permission.
  3. DM with context. Reference the comment thread. Offer something the comment couldn't ("happy to send a Loom of how we'd handle your specific stack").

The full anti-ban playbook including account warmth, comment-to-post ratio, and how to handle mods is in the reply-without-getting-banned guide. Read it before you start. Mod bans cost more than the leads are worth.

The contextual message itself — what to say in the DM — has its own playbook in the contextual cold message piece. Spoiler: don't paste the post URL back at them.

The 30-minute daily ritual.

Reddit lead gen falls apart when operators try to do it ad-hoc. It works when it's a ritual. Here's the one we recommend.

Morning, 20 minutes.

  • 8:30am: open the dashboard. Sort by score descending.
  • Triage the red queue (decay <12 hours, score >65). For each: read the post, draft a comment, post it.
  • Skip anything where the OP already got a great answer in the thread.

Afternoon, 10 minutes.

  • 2:00pm: check for replies on this morning's comments.
  • For anyone who replied, draft a DM with context.
  • Move them into your CRM with source: reddit, post_url: ... so attribution doesn't get lost.

That's it. Thirty minutes a day, run consistently, generates 40 to 80 qualified conversations a month for a typical solo founder. We have customers who've booked 40 calls in 60 days running this ritual; one of them is profiled in the agency case study.

What this stops working when.

Every playbook has a failure mode. This one has three.

Your ICP doesn't post publicly. If you sell to fortune 500 procurement, they're not in r/SaaS. Reddit lead gen works best for SMB and mid-market buyers under 200 employees.

Your category is too new for vocabulary. If buyers don't know what to call your product, they can't post asking for it. We see this with brand-new categories. Workaround: monitor adjacent pain language ("I keep losing track of...") instead of category names.

You're not the operator who replies. If you delegate Reddit to an SDR who has never used the product, the comment quality collapses and you get banned within two weeks. The founder or a senior product person has to write the comments for the first 90 days. After that you can hand off the workflow but keep the voice.

Where Shadow Inbox fits.

We built Shadow Inbox to run the pipeline above without you having to wire up the Reddit API, the embedding store, the LLM classifier, and the enrichment graph yourself. The dashboard surfaces scored signals with decay timers, drafts the reply, and hands you the email if you want to move off-platform. If you'd rather build it yourself, the architecture above is what we'd build again — and we go deep on the build-vs-buy math in the build vs buy piece.

● FAQ

How many subreddits should we monitor to start?
Eight to twelve. Fewer than that and you miss volume. More than twenty and your relevance filter starts drowning in r/Entrepreneur noise. We tell new operators to pick five core subreddits where their buyer lives, three adjacent ones, and two wildcards, then re-evaluate after two weeks of signal volume.
Is Reddit lead generation against Reddit's TOS?
Reading public posts, classifying them, and notifying yourself is fine. Replying with naked promo, brigading, or spinning up sock-puppet accounts is not. The line is whether you'd be embarrassed if the mod saw your full activity. Reply as a human in public when you have something useful to say, and DM only when the OP invited it.
How fast does a Reddit buying signal decay?
Most posts get the bulk of their replies in the first six hours. By hour twenty-four the OP has either picked a tool, given up, or moved on. We treat anything past forty-eight hours as a comment-only opportunity, not a primary outreach window.
Do we need a Reddit API key to do this?
Not strictly. The public JSON endpoints work for low-volume monitoring. For anything serious you want OAuth credentials so you don't get rate-limited at 60 requests per minute. Shadow Inbox handles the auth and rate-limit dance for you, but if you're rolling your own, register a script-type app in your account preferences.
What's the realistic conversion rate from Reddit signal to booked call?
From qualified signal to reply, we see 18 to 35 percent for well-written contextual messages. From reply to booked call, another 25 to 40 percent. So roughly five to fourteen calls per hundred qualified signals, which is why the relevance and intent filters matter more than the reply copy.
— share
— keep reading

Three more from the log.

Buyer intent is the new marketing
001 · Buyer Intent

Buyer intent is the new marketing

Buyer intent is the new marketing: revealed demand vs manufactured demand, what intent-based marketing looks like operationally, and the org-design implications.

Apr 16, 2026 · 13 min
How to reply on Reddit without getting banned
003 · Reddit

How to reply on Reddit without getting banned

Reddit reply strategy for founders: why most marketing advice gets you banned, how moderators actually think, and the disclosure pattern that earns upvotes.

Jan 09, 2026 · 10 min