Focus groups are polite. Twitter is noisy. But Reddit is honest.
If your product has a flaw, Reddit will find it. If your customer support is slow, r/YourBrand will know about it.
For brands, this is terrifying. But for data-driven marketers, it's a goldmine.
In this guide, we'll build a Reddit Sentiment Monitor. We will search for mentions of a brand, scrape the comments from the top discussions, and analyze the sentiment to see what people really think.
The Strategy
- Search: Find threads mentioning your brand (e.g., "Huel", "Notion", "Cursor").
- Scrape: Extract the top comments from those threads.
- Analyze: Classify the sentiment (Positive vs. Negative).
Prerequisites
You'll need a SociaVault API key. You can get one here.
Step 1: Find the Conversations
First, we need to find where people are talking about you. We'll use the /scrape/reddit/search endpoint.
const axios = require('axios');
const API_KEY = 'YOUR_SOCIAVAULT_API_KEY';
const BASE_URL = 'https://api.sociavault.com/v1';
async function findBrandDiscussions(brandName) {
console.log(`🔍 Searching Reddit for "${brandName}"...`);
const response = await axios.get(`${BASE_URL}/scrape/reddit/search`, {
params: {
query: brandName,
sort: 'relevance',
timeframe: 'month', // Only recent discussions
trim: true
},
headers: { 'x-api-key': API_KEY }
});
if (response.data.success) {
const threads = response.data.data;
console.log(`Found ${threads.length} threads.`);
return threads.slice(0, 3); // Let's analyze the top 3
}
}
Step 2: Scrape the Comments
Now that we have the threads, we need to read the comments. The title of a post is often just the tip of the iceberg; the real sentiment is in the replies.
We'll use /scrape/reddit/post/comments.
async function analyzeSentiment(brandName) {
const threads = await findBrandDiscussions(brandName);
for (const thread of threads) {
console.log(`\nAnalyzing Thread: "${thread.title}"`);
console.log(`URL: ${thread.url}`);
const response = await axios.get(`${BASE_URL}/scrape/reddit/post/comments`, {
params: {
url: thread.url,
trim: true
},
headers: { 'x-api-key': API_KEY }
});
if (response.data.success) {
const comments = response.data.data;
// Simple Keyword Sentiment Analysis
let positive = 0;
let negative = 0;
comments.forEach(comment => {
const text = comment.body.toLowerCase();
if (text.includes('love') || text.includes('great') || text.includes('best')) positive++;
if (text.includes('hate') || text.includes('worst') || text.includes('broken')) negative++;
});
console.log(` 👍 Positive Signals: ${positive}`);
console.log(` 👎 Negative Signals: ${negative}`);
if (positive > negative) console.log(" ✅ Verdict: Mostly Positive");
else if (negative > positive) console.log(" ❌ Verdict: Mostly Negative");
else console.log(" 😐 Verdict: Neutral");
}
}
}
// Run it for a brand
analyzeSentiment('Cursor Editor');
Sample Output
🔍 Searching Reddit for "Cursor Editor"...
Found 25 threads.
Analyzing Thread: "Is Cursor actually better than VS Code?"
URL: https://www.reddit.com/r/programming/comments/...
👍 Positive Signals: 12
👎 Negative Signals: 2
✅ Verdict: Mostly Positive
Analyzing Thread: "Cursor AI keeps crashing on large files"
URL: https://www.reddit.com/r/webdev/comments/...
👍 Positive Signals: 1
👎 Negative Signals: 8
❌ Verdict: Mostly Negative
Advanced: Using LLMs for "Vibe Checks"
Counting keywords is a good start, but it misses nuance. "I hate that I love this so much" would be counted as negative by a simple script.
For production use, you should feed the scraped comments into an LLM (like GPT-4 or Claude) with a prompt like:
"Here are 50 comments about Brand X. Summarize the top 3 complaints and the top 3 praises."
This gives you a qualitative report you can send directly to your Product Manager.
Why Reddit Data is Unique
Unlike Twitter Trends, which are fleeting, Reddit threads stick around. They rank on Google. A single negative thread can hurt your conversion rate for years.
Monitoring this data allows you to jump in and fix issues before they become permanent stains on your brand's reputation.
Get Started
Ready to hear the truth? Get your API key here.
Found this helpful?
Share it with others who might benefit
Ready to Try SociaVault?
Start extracting social media data with our powerful API. No credit card required.