Reddit + X public-social pain mining: a tutorial
Step by step: turning public posts into qualified pipeline. Subreddit selection, intent classifier prompts, ICP matching, and a calm answer to "is this allowed" — yes, with caveats.
By Bora Esen

Public-social pain mining is the most under-rated B2B signal source in 2026. Buyers post their problems in real time on Reddit and X, in language the marketing team would never write. Most outbound tools ignore the whole channel because the data is messy and unstructured. That is exactly why it is worth mining: a prospect who has just written out the problem you solve, in their own words, in public, is the cheapest qualification signal available to you.
This is a step-by-step tutorial on the pattern we use at Leafer. It works for any B2B niche and you do not need a data-science team to run it.
Step 1: build the subreddit and keyword universe
For each ICP, pick five to fifteen subreddits where your buyer hangs out. For Leafer’s ICP — B2B SaaS founders plus marketing agencies — the universe looks like this: r/SaaS, r/Entrepreneur, r/marketing, r/sales, r/devops, r/sysadmin, r/EntrepreneurRideAlong. Add a layer of keyword filters on top: “cold email,” “sales tool,” “outbound burnout,” “Apollo alternative.”
For X (formerly Twitter), the universe is harder to define because there are no subreddits. You build it instead with saved searches. Three patterns that consistently pull intent: “anyone using [competitor] for [use case],” “looking for [category] that does [feature],” “our [tool] just broke again.”
Step 2: intent classifier
Every matched post goes through a small LLM classifier. We use a fine-tuned GPT-4o-mini prompt that returns a JSON with three fields: intent_type (pain | recommendation_request | buying_intent | noise),confidence (0–1), reasoning (one short sentence).
Filter at confidence >= 0.7 and discard everything else. You will throw away roughly 60% of what you scraped. That is the point. The remaining 40% is the signal that matters.
Step 3: ICP match
A post matches an intent topic but the author might not match your ICP. Pull the author’s last 20 posts and comments and pass them through a second prompt that maps them to your ICP traits — company size, function, role, geography. If the author fingerprint is clearly outside your ICP, drop the post.
Anonymous accounts (throwaway usernames, no profile data) are common on Reddit. You cannot ICP-match them directly, so you fall back to evidence-only signals — you can still cite the post in outreach to other people working on the same problem, even if you cannot reach the original poster.
Step 4: cite when you reach out
Once a post clears intent and ICP, write the email or DM with a direct cite. “Saw your post in r/SaaS about cold email tooling burning out your team — Leafer was built specifically for that case. Three minutes if you want to see it.”
We have no delivery data to quote you here — Leafer stops at the draft and does not send, so any performance figure we published would be invented. The argument for the cite does not need one. An uncited cold message asks the reader to accept that you might be relevant. A cited one shows them a thing they wrote, forty-eight hours ago, describing the problem. Those are not the same ask, and the reader can tell in the first line which one they are reading.
Step 5: respect the ethics
Reddit’s TOS bans cold DMs from non-friends. If you DM a Reddit user without prior engagement, they can and will report you and your account will be suspended within hours. The pattern that works instead is commenting in the public thread first — “hey, this is the exact problem we built X for, happy to share what we learned” — and letting the user reach out via DM if they want to.
X is more permissive. DMs are open if the user opted in at the account level (most B2B accounts do). The cite-first message still works because it reads as a peer reaching out rather than an automation firing.
What this looks like in volume
A focused setup running across six subreddits and twelve X saved searches surfaces a few hundred raw signals per week for a typical B2B niche. The intent and ICP filters cut most of that. What survives is a couple of dozen threads a week where someone has described your problem out loud and is plausibly your buyer. Budget the operator’s time against that number, not against the raw feed.
It is not a fire-hose. It is a small, ICP-tight pool of people who are actively talking about the problem you solve. Leafer runs the front of this loop for you — the saved searches, the intent classifier, the ICP filter, finding and verifying the contact behind the handle, and drafting the message with the thread quoted underneath it. It stops at the approval queue; the comment or the DM is still yours to post. The pattern is the point either way, and every step above is one you can run by hand.


