reddit-insights
Semantic search across Reddit to find pain points, validate ideas, discover niches, and analyze sentiment. Use when a user asks to research Reddit, find Reddit discussions about a topic, analyze Reddit sentiment, discover what people complain about on Reddit, validate a business idea on Reddit, find pain points in a subreddit, or mine Reddit for product insights.
What this skill does
# Reddit Insights
## Overview
Perform semantic research across Reddit to extract actionable insights. Search for discussions, analyze sentiment patterns, identify recurring pain points, validate product ideas, and discover niche opportunities. Uses Reddit's public JSON API to access posts and comments without requiring authentication.
## Instructions
When a user asks you to research Reddit for insights, follow these steps:
### Step 1: Define the research scope
Clarify with the user:
- **Topic/query**: What subject, product, or idea to research
- **Subreddits** (optional): Specific subreddits to focus on, or search broadly
- **Time range**: Recent (week/month) or historical (year/all)
- **Research goal**: Pain points, sentiment, idea validation, competitor analysis, or trend discovery
- **Output format**: Summary report, raw data, or structured analysis
### Step 2: Fetch Reddit data via public JSON API
Access Reddit's public JSON endpoints without authentication:
```python
import requests
import time
HEADERS = {"User-Agent": "research-bot/1.2.0"}
def search_reddit(query, subreddit=None, sort="relevance", time_filter="year", limit=100):
"""Search Reddit posts via public JSON API."""
if subreddit:
url = f"https://www.reddit.com/r/{subreddit}/search.json"
params = {"q": query, "sort": sort, "t": time_filter,
"limit": min(limit, 100), "restrict_sr": "on"}
else:
url = "https://www.reddit.com/search.json"
params = {"q": query, "sort": sort, "t": time_filter,
"limit": min(limit, 100)}
response = requests.get(url, headers=HEADERS, params=params, timeout=30)
response.raise_for_status()
time.sleep(1) # Rate limiting
data = response.json()
posts = []
for child in data["data"]["children"]:
post = child["data"]
posts.append({
"title": post["title"],
"selftext": post.get("selftext", ""),
"subreddit": post["subreddit"],
"score": post["score"],
"num_comments": post["num_comments"],
"url": f"https://reddit.com{post['permalink']}",
"created_utc": post["created_utc"],
})
return posts
def get_post_comments(permalink, limit=200):
"""Fetch comments for a specific post."""
url = f"https://www.reddit.com{permalink}.json"
params = {"limit": limit, "sort": "top"}
response = requests.get(url, headers=HEADERS, params=params, timeout=30)
response.raise_for_status()
time.sleep(1)
comments = []
data = response.json()
if len(data) > 1:
for child in data[1]["data"]["children"]:
if child["kind"] == "t1":
c = child["data"]
comments.append({
"body": c["body"],
"score": c["score"],
"author": c.get("author", "[deleted]"),
})
return comments
```
### Step 3: Analyze the content
Process the collected posts and comments to extract insights:
**Pain point extraction:**
- Search for phrases like "I wish", "frustrated with", "hate that", "switched from", "biggest problem"
- Group recurring complaints by theme
- Count frequency and upvote weight of each pain point
**Sentiment analysis:**
- Categorize posts/comments as positive, negative, neutral, or mixed
- Track sentiment trends over time
- Identify polarizing topics
**Idea validation:**
- Find existing discussions about similar solutions
- Look for "someone should build" or "is there a tool that" posts
- Assess demand signals: upvotes, comment engagement, frequency of asks
**Competitive analysis:**
- Search for competitor product names
- Analyze praise and criticism patterns
- Identify feature gaps users mention
### Step 4: Compile the research report
Structure the output as an actionable report:
```markdown
# Reddit Research Report: [Topic]
## Research Parameters
- Query: [search terms used]
- Subreddits: [list of subreddits searched]
- Time range: [period]
- Posts analyzed: [count]
- Comments analyzed: [count]
## Key Findings
### Top Pain Points
1. **[Pain point 1]** (mentioned 23 times, avg score: 45)
- Example: "[quoted user comment]"
- Subreddits: r/subreddit1, r/subreddit2
2. **[Pain point 2]** (mentioned 18 times, avg score: 32)
- Example: "[quoted user comment]"
### Sentiment Overview
- Positive: 35% | Neutral: 40% | Negative: 25%
- Most positive aspect: [topic]
- Most negative aspect: [topic]
### Opportunity Signals
- [Unmet need identified from discussions]
- [Feature request pattern observed]
- [Gap in existing solutions mentioned]
### Notable Discussions
1. [Post title](url) - [X] upvotes, [Y] comments
Summary: [brief takeaway]
## Recommendations
- [Actionable recommendation 1]
- [Actionable recommendation 2]
- [Actionable recommendation 3]
```
### Step 5: Save the report
```bash
cat > reddit_research_[topic].md << 'EOF'
[compiled report]
EOF
```
## Examples
### Example 1: Validate a SaaS idea
**User request:** "Research Reddit to see if people need a better project management tool for small agencies."
**Research approach:**
1. Search queries: "project management agency", "PM tool freelancer", "manage client projects"
2. Target subreddits: r/agency, r/freelance, r/smallbusiness, r/projectmanagement
3. Look for: complaints about existing tools, feature wish lists, "what do you use" threads
4. Analyze: frequency of complaints, which tools are mentioned negatively, unmet needs
**Key findings format:**
```
Pain Points Found:
1. "Asana/Monday are too complex for a 5-person team" (seen 15 times)
2. "No good tool combines project tracking with client invoicing" (seen 9 times)
3. "Switching between 4 tools to manage one project" (seen 12 times)
Validation Signal: MODERATE-STRONG
- Clear demand exists, but space is crowded
- Differentiation opportunity: simplicity + invoicing integration
```
### Example 2: Analyze sentiment around a product launch
**User request:** "What is Reddit saying about the new Arc browser?"
**Research approach:**
1. Search for "Arc browser" across all subreddits
2. Fetch top 50 posts and their comments from the past 3 months
3. Categorize sentiment per feature area (UI, speed, extensions, sync)
4. Identify most loved and most criticized features
### Example 3: Discover underserved niches
**User request:** "Find underserved developer tool niches by mining Reddit complaints."
**Research approach:**
1. Search r/programming, r/webdev, r/devops for frustration keywords
2. Queries: "annoying that", "wish there was", "no good tool for", "why is there no"
3. Group complaints by category (testing, deployment, documentation, etc.)
4. Rank by frequency and engagement
5. Cross-reference with existing tools to identify true gaps
## Guidelines
- Always add a 1-second delay between API requests to respect Reddit's rate limits.
- Set a descriptive User-Agent header. Reddit blocks requests without one.
- Reddit's public JSON API has a 100-post limit per request. Use pagination with the `after` parameter for larger datasets.
- Do not scrape user profiles or collect personally identifiable information.
- Present findings with context: a single upvoted complaint does not equal a validated market need. Look for patterns across multiple discussions.
- Always include source links so the user can verify findings and read full context.
- Distinguish between vocal minorities and genuine widespread sentiment. A post with 500 upvotes carries more weight than one with 3.
- Note the subreddit context: complaints in r/technology have different implications than those in r/startups.
- For idea validation, look for both demand signals (people wanting a solution) and supply signals (existing tools already addressing the need).
- Save all raw data alongside the analysis so the user can explore further.
- If the public API is rate-limited or returns errors, suggest the user try again after a brief wait.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.