If you have ever found out about a Reddit thread mentioning your product three days too late, in the comments, after someone already answered wrong, this is for you.
Reddit is where people ask real questions about tools like yours before they buy, complain where support teams never look, and compare you to competitors in public. The problem is not that the conversations do not exist. It is that nobody is watching all of Reddit in real time, and refreshing search results by hand does not scale past a day or two.
This post walks through building a small, free pipeline that watches Reddit for your brand name and drops a message in Slack within moments of a new mention. No scraping code, no cron job babysitting, about twenty lines of Python.
The approach
We will use Redlisten (redlisten.com), an API for public Reddit posts and comments that also offers keyword streams: a saved search that pushes new matches to a destination of your choice instead of making you poll for them. Redlisten is not affiliated with Reddit, Inc. It indexes public posts and comments and exposes them through a normal REST API, so you can build this without running your own search infrastructure.
You can see the idea without writing any code first. Here is a live example for the keyword “notion”: redlisten.com/reddit/notion. Swap in your own brand name once you have an idea of the shape of the results.
Step 1: Create a free account
Sign up at app.redlisten.com. The free plan includes one stream delivered as an email digest, which is enough to confirm your filter is catching the right posts. Grab your API key from the dashboard.
Step 2: Create a stream
A stream is a saved filter. Here we are matching any mention of the brand name or domain:
bash
curl -X POST "https://api.redlisten.com/v1/streams" \
-H "Authorization: Bearer rl_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "brand-mentions",
"any": ["yourbrand", "yourbrand.com"],
"types": ["post", "comment"]
}'
A couple of field notes that trip people up. The word list goes under any (or all if you want every term present), not keywords. You can narrow further with subreddits, exclude_subreddits, or authors if your brand name is a common word and needs some noise filtering.
Step 3: Point the stream at Slack
Slack, Discord and webhook delivery are on the Pro plan and above. The free plan’s email digest is enough to confirm the stream catches the right posts first; upgrade when you are ready to wire it into Slack.
Once you are on Pro, open your stream in the dashboard and add a Slack destination under the Streams tab. This uses an incoming webhook, so you will need a Slack app with an Incoming Webhooks integration pointed at the channel you want alerts in. Redlisten posts a formatted message for each new match: who posted it, which subreddit, a one line snippet, and a link to the thread.
That is genuinely the whole setup for the no code version. If you stopped here, you would have working brand alerts in Slack.
Step 4 (optional): Do it yourself with webhooks
If you want more control over the message format, point the stream at a webhook you own instead of Slack directly, and format the Slack message yourself. Webhook payloads use Redlisten’s own post shape, not Reddit’s raw field names, so match these exactly:
python
from flask import Flask, request
import requests
app = Flask(name)
SLACK_WEBHOOK = "https://hooks.slack.com/services/your/webhook/url"
@app.route("/redlisten-webhook", methods=["POST"])
def handle_mention():
item = request.json
text = (
f"📢 New mention in r/{item['community']}\n"
f"{item.get('title') or item['body'][:140]}\n"
f"Posted by u/{item['author']['name']}\n"
f"<{item['permalink']}|View on Reddit>"
)
requests.post(SLACK_WEBHOOK, json={"text": text})
return "", 200
The subreddit comes through as community, not subreddit, the author is an object (author.name), and the body text is body (there is no separate selftext field). permalink is already a full URL. Point your stream’s webhook URL at wherever this is deployed, and you own the formatting end to end. Add emoji by subreddit, route high signal mentions to a different channel, or log everything to a database before it hits Slack.
What this is actually worth
The value is not the alert itself, it is the minutes between someone posting and your team seeing it. A frustrated customer complaint answered within the hour reads completely differently than one answered three days later, after it has already collected twenty agreeing replies.
The free plan is enough to test a filter and watch results land by email. Once you want Slack, Discord or a webhook running live, or need search going back further than a week, the paid tiers cover that. Current plans and pricing are listed at redlisten.com/#pricing.
Questions about the API itself are answered in the docs at redlisten.com/docs.
Top comments (0)