B2B Reddit Conversation Monitor
Pricing
from $1.50 / 1,000 thread rows
B2B Reddit Conversation Monitor
Find the Reddit threads that name a company, its competitors, or a product category. Enter a domain, category keywords, or a topic and get tagged threads and comments (complaint, switching, buying intent, alternative request) with an intent score, plus summary rows. CSV or Clay ready.
Pricing
from $1.50 / 1,000 thread rows
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Find the Reddit conversations that name a company, its competitors, or a product category. Enter a company domain, a few category keywords, or a topic. You get one row per thread or comment, tagged as complaint, praise, comparison, alternative request, switching, buying intent, feature request, or question, with a 0 to 100 intent score, plus summary rows: share of voice against competitors for a company, the most discussed companies in a category, or recurring questions grouped by theme. Rows are flat, so they export to CSV or drop into a Clay table.
Features
- Three modes. Company: a domain in, the threads and comments that name the company and its competitors out, plus one company summary row. Category: product lane keywords in, the companies discussed most in that lane, with mention counts and sentiment. Gap: subreddits and a topic in, the questions people keep asking, grouped by theme, with how many went unanswered and which tools the answers named.
- Competitor displacement signals. A row gets
displacement_signaltrue when one sentence names a competitor and complains about it, switches from it, or asks for an alternative to it. The row names that competitor and links the thread. - Share of voice. The company summary row carries the brand share of voice and, for up to 5 competitors, thread count, share of voice, and negative percent, as flat columns. Competitors are yours, or found in the brand threads from "X vs Y", "alternative to X", and "switched from X" phrasing.
- Rule based tags and score. Tags, sentiment, and the intent score come from fixed patterns, not from an AI model, so the same text always gets the same tags and the cost of a row never changes.
- Tool names from the answers. Product and company names in the comments are collected into
tools_mentioned. In gap mode, a question whose comments name a tool counts asanswered_with_tool. - Subreddit discovery. In gap mode with no subreddits given, up to 8 subreddits are found from the topic, and the list used is on every theme row.
- Scheduling. Only new results skips rows an earlier run already returned (free), and an optional webhook posts a Slack ready summary with the top rows by intent score.
- Cost guards. Max threads, threads opened for comments, comments per thread, comment depth, and a max charge per run.
- Hacker News, optional. Add Hacker News stories and comments through its public search API.
How it reads Reddit
Public Reddit feeds (the Atom feeds Reddit serves for search, subreddits, and threads) through the Apify proxy. No Reddit account, no API key, and no other developer's actor. Only public usernames and permalinks are returned; no profile is read. Reddit feeds carry no vote scores, so engagement is the number of comments read.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
mode | string | company | company, category, or gap |
company_domain | string | Company mode. One domain, for example smartlead.ai | |
domains | array | Company mode. Several domains, up to 50 | |
brand_names | array | Company mode. Names to search for. Empty: resolved for you (see use_identity_resolver) | |
product_names | array | Company mode. Product names to search for beside the brand | |
competitors | array | Company mode. Competitor names. Empty: discovered when discover_competitors is on | |
discover_competitors | boolean | true | Company mode. Find competitors in the brand threads; a name must appear in 2 or more threads |
max_competitors | integer | 5 | Company mode. 0 to 5 |
use_identity_resolver | boolean | true | Company mode, when brand_names is empty. Runs Mamba Labs Company Identity Resolver from your account; Apify charges you its own result event (0.007 USD per domain). Off: the homepage title is used |
category_keywords | array | Category mode. Product lane phrases, for example cold email tools | |
known_companies | array | Category and gap modes. Names to always count | |
topic | string | Gap mode. What the questions are about | |
topic_terms | array | Gap mode. More search phrases for the same need. Reddit returns only posts with every word of a query, so a two word topic can be narrow | |
subreddits | array | Limit every search to these subreddits | |
exclude_subreddits | array | Drop rows from these subreddits | |
vendor_subreddits | string | exclude | A vendor's own subreddit (r/smartlead, r/artikle) is read as marketing. exclude drops those threads; flag keeps them with vendor_subreddit true and out of every count; include keeps them with vendor_subreddit true and counts them. A subreddit you name is never treated as one |
discover_subreddits | boolean | true | Gap mode. Find subreddits from the topic when none are given |
since_days | integer | 90 | Only threads from the last this many days |
max_threads | integer | 100 | Thread rows per input (company and gap), threads read (category). Up to 1,000 |
include_comments | boolean | on in company and gap, off in category | Return comments as rows: comments that name the brand or a competitor (company), a company or keyword (category), or answers that name a tool (gap) |
max_comment_threads | integer | 20, 30 in category, 50 in gap | Threads opened to read comments, highest intent first |
max_comments_per_thread | integer | 25 | Comments read per opened thread, top first |
comment_depth | integer | 2 | Reply levels read |
include_hacker_news | boolean | false | Add Hacker News results |
max_charge_usd | string | Stop before a row would pass this amount | |
only_new | boolean | false | Skip rows an earlier run with the same state_key returned |
state_key | string | Names the seen list; one key per schedule | |
webhook_url | string | https URL for one POST at the end of the run | |
webhook_top_n | integer | 10 | Rows in the webhook |
proxy_mode | string | auto | auto (datacenter, then residential when refused) or residential. A reliability choice |
Every field also accepts text, as Clay sends it: "true", "30", a comma separated list, or a JSON array.
Output
One row layout for every row type, so no column is lost between them. Key fields:
| Field | Rows | Example |
|---|---|---|
row_type | all | thread, comment, company_summary, category_company, gap_theme |
url, thread_url, subreddit, author, title, body_excerpt, created_at | thread, comment | |
tags, primary_tag, sentiment, intent_score | thread, comment | ["question","alternative_request"], alternative_request, neutral, 87 |
matched_entity, matched_terms, competitor_named | thread, comment | brand, ["Smartlead"], Instantly |
displacement_signal, displacement_competitor | thread, comment | true, Instantly |
tools_mentioned, answer_status, comment_count | thread | ["Instantly","Smartlead"], answered_with_tool, 25 |
vendor_subreddit | thread, comment | false |
mention_count, thread_count, sentiment counts, negative_pct | summaries | |
share_of_voice_pct, competitor_1_name to competitor_5_negative_pct | company summary | 42.5, Instantly, ... |
displacement_count, top_complaint_themes, tag_counts_json | company summary | |
entity_name, entity_domain | category company | Instantly, instantly.ai |
theme_label, question_count, unanswered_count, answered_with_tool_count, tools_recommended | gap theme | warmup inbox, 4, 0, 2, ["Instantly"] |
row_status, error_reason, billable_events_json | all | ok, null, {"thread-row":1} |
The run summary (key-value store record RUN_SUMMARY) lists rows by type, charged events, requests, the proxy route used, the subreddits used, and Reddit's robots.txt as read on the run.
Pricing
Pay per event. You pay only these events; the Apify platform and proxy costs of your run are paid by Mamba Labs.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
Thread row (thread-row) | $0.0018 | $0.0017 | $0.0016 | $0.0015 |
Comment row (comment-row) | $0.001 | $0.00095 | $0.0009 | $0.00085 |
Summary row (summary-row): company summary, category company, or question theme | $0.003 | $0.00285 | $0.0027 | $0.00255 |
Actor start (apify-actor-start), once per run | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Free rows: blocked, error, and no results rows, and rows skipped by Only new results. A company summary with no mentions is free. With Only new results on, the summary rows are still returned and billed on every run, because they describe the whole date window. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 833 thread rows); any paid Apify plan removes that cap.
When brand_names is empty and use_identity_resolver is on, the run also starts Mamba Labs Company Identity Resolver, and Apify charges you that actor's own result event (0.007 USD per domain) beside the prices above.
Example: company mode on one domain with defaults returns about 30 to 100 thread rows, 0 to 30 comment rows, and 1 summary row, about 0.06 to 0.25 USD.
Usage examples
Apify Console or API
{ "mode": "company", "company_domain": "smartlead.ai", "brand_names": ["Smartlead"], "competitors": ["Instantly", "lemlist"], "since_days": 60 }
{ "mode": "category", "category_keywords": ["cold email tools", "cold email software"], "since_days": 365, "max_threads": 100 }
{ "mode": "gap", "subreddits": ["sales", "Coldemailing", "LeadGeneration"], "topic": "", "since_days": 30 }
Clay
Add an HTTP API or Apify column, send company_domain from your table, and read share_of_voice_pct, negative_pct, displacement_count, and competitor_1_name from the company summary row. For a displacement lead list, filter thread rows on displacement_signal true and sort by intent_score.
Scheduled monitoring
Save the input as an Apify task with only_new true, a state_key, and a Slack incoming webhook in webhook_url, then schedule it daily or weekly. Each run posts only the new conversations.
MCP
The MCP server @mambalabs/mcp-b2b-reddit-conversation-monitor exposes this actor as a tool for Claude and other MCP clients.
Error handling
| Situation | What you get |
|---|---|
| Reddit refuses every route for an input | One free summary row with row_status blocked and the reason |
| A subreddit does not exist (banned, private, or renamed) | It is skipped and named in error_reason |
| A thread's comments cannot be read | The thread row ships with answer_status not_checked |
| Company Identity Resolver cannot be reached | The homepage title is used; with no name the domain alone is searched, and the summary says so |
| No mentions in the window | One free row with row_status no_results |
| Max charge reached | The run stops before the next billable row and says why in the status message |
Limitations
- Reddit feeds return at most about 1,000 posts per search, newest first; counts are counts within the date window and the thread cap, not all time totals.
- A brand name that is also a common word (Close, Notion, Instantly) is matched only as written, capitalized, or as its domain. Sentence starts can still match; give
subredditsfor the cleanest results. - Share of voice is measured in the subreddits used (yours, or the 5 where the brand is discussed most).
- A company name counts in category and gap summaries only when a domain, your known companies list, or a recommendation or switching phrase ("use X", "switched to X", "alternative to X") names it somewhere in the run. Countries, cities, nationalities, and link hosts (GIF, chat, and image hosts, video and document sites) never count.
- Tags, sentiment, tool names, and competitors are found by fixed patterns. Sarcasm reads as written. Check
tools_mentionedand discovered competitors before you act on them. - Reddit feeds carry no vote scores; engagement is comments read.
- Reddit's robots.txt and its Public Content Policy govern automated access to Reddit content. You are responsible for how you use the rows.
More from Mamba Labs
Built by Mamba Labs.