Original:🇺🇸 English
Translated
2 scripts
Monitor Reddit communities worldwide to discover niche product opportunities — unmet pain points, frustrated users, tool-seeking posts — from high-purchasing-power markets (US, UK, EU, DACH, Nordics, JP, KR, AU). Use this skill whenever the user mentions Reddit, product opportunities, pain point hunting, market research, niche discovery, subreddit monitoring, or wants to find SaaS/product ideas from real user discussions. Also use for /reddit commands and /loop /reddit scheduled scans.
7installs
Sourcesky-flux/skills
Added on
NPX Install
npx skill4agent add sky-flux/skills redditTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Reddit Opportunity Hunter
Mission
Product Opportunity Hunting, NOT Lead Hunting.
- Input: Reddit discussions from high-purchasing-power markets
- Output: Actionable product opportunity reports with build assessments
- Goal: Surface 1-2 week MVP opportunities in USD/EUR/GBP markets
- You are scanning for patterns of unmet need, not individual sales leads
- Every recommendation must pass the Solo Dev Fit test before being highlighted
- Reference data lives in — subreddits, keywords, seasonal patterns
references/
Quick Start / First Run
- Install dependencies:
brew install curl jq - Run health check: — verifies curl, jq, network connectivity
reddit.sh diagnose - The script auto-creates with
.reddit/,reports/,opportunities/archive/ - Verify includes
.gitignore— the script warns if missing.reddit/ - Review — confirm subreddits match the user's domain
references/subreddits.json - Review — adjust if the user targets a specific niche
references/intent_keywords.json - First scan:
bash
reddit.sh fetch --campaign global_english --sort new --pages 1 - Inspect the enriched JSON output, then proceed to Phase 2 (Analysis)
Core Workflow
Phase 1: Data Collection
Run for each campaign defined in , ordered by :
reddit.sh fetchreferences/subreddits.jsonscan_prioritybash
reddit.sh fetch --campaign global_english --sort new --pages 2
reddit.sh fetch --campaign dach_german --sort new --pages 1
reddit.sh fetch --campaign nordic_scandi --sort new --pages 1Key details:
- Multi-sub merge: the script combines subreddits as to reduce API calls
r/A+B+C/new.json - Output is enriched JSON — jq computes fields (intent matches, sentiment, age)
_jq_enriched - Do NOT re-compute what jq already provides; read the enriched fields directly
- Rate limit budget: ~100 requests per ~260 seconds; a single fetch loop uses ~40-45
- Fetch Tier S campaigns every loop, Tier A daily, Tier B weekly
Phase 2: Analysis (Claude)
Read the enriched JSON from Phase 1. For each batch:
- Pain point clustering — group similar complaints across posts and subreddits
- Frequency counting — how many posts mention this pain this week?
- Intensity assessment — use and
intent_keywords_matchedfrom the enriched datanegative_signals - Market validation signals — look for: budget mentions, team size, products, willingness to pay
already_tried - Score each opportunity using the scoring algorithm below
- Deduplicate against in
seen_posts.reddit/.reddit.json
Phase 3: Deep Verification (score >= 8)
For opportunities scoring 8 or above:
- Fetch comment trees:
reddit.sh comments <post_id> <subreddit> - Search competitive landscape:
reddit.sh search "competitor alternative" --global - Add post to for ongoing monitoring
watched_threads - Optional: use WebSearch for cross-platform validation (Twitter/X, HN, G2, Capterra)
Phase 3.5: Micro-Validation
Before promoting an opportunity to "validated":
- Suggest a landing page smoke test to the user
- Cross-platform search: Twitter/X, Hacker News, Indie Hackers for the same pain
- Search for failed attempts at similar products (important signal)
- Check Product Hunt / GitHub for recent launches in the space
Phase 4: Report
- Daily scan report ->
.reddit/reports/YYYY-MM-DD-scan.md - High-value opportunities ->
.reddit/opportunities/<slug>.md - Use the templates defined below
reddit.sh Reference
| Mode | Usage | Purpose |
|---|---|---|
| fetch | | Fetch & enrich posts |
| comments | | Comment tree for deep-dive |
| search | | Reddit search |
| discover | | Find new subreddits |
| profile | | User history analysis |
| crosspost | | Cross-poster detection |
| stickied | | Stickied post mining |
| firehose | | Real-time comment stream |
| duplicates | | Link propagation tracking |
| wiki | | Community wiki content |
| stats | | Database / state statistics |
| export | | CRM-ready export |
| cleanup | | Purge expired data |
| diagnose | | Health check (jq, dirs, state) |
Helper functions (called during loop cycles, not directly by user):
- — check watched threads for new comments since last check
watch_check - — expand competitor query templates from config
competitor_search <campaign> - — track hit rates per subreddit
update_subreddit_quality <sub> <scanned> [opportunities]
Scoring Algorithm
raw_score = intensity * 0.20
+ competitive_gap * 0.20
+ build_feasibility * 0.20
+ market_value * 0.20
+ frequency * 0.15
+ timeliness * 0.05Each dimension is scored 1-10 individually.
Adjustments:
adjusted = raw_score
+ cross_market_bonus (same pain in 3+ Tier S markets -> +1.5)
+ seasonal_bonus (matches upcoming seasonal pattern -> +1.0; just passed -> -1.0)
- false_positive_penalty (see below)
final_score = clamp(adjusted, 1, 10)Weekly decay: if no new mentions this week:
final_score *= 0.88Market tier bonuses (applied to dimension, not final score):
market_value- Tier S (US, UK, DE, FR, NL, JP, AU, KR, Nordics): +3
- Tier A (IN, BR, SEA, LATAM, PL, CZ): +1
- Tier B (Africa, South Asia, rest): +0
Thresholds:
-
= 8: Deep verification (Phase 3) + highlight in report
-
= 7: Show in daily report under New Opportunities
- < 7: Aggregate only under Trending Pain Points
False positive penalties:
- Single user mention, no corroboration: -3
- One-time complaint (user has no topic history): -2
- Strong open-source alternative (>5k GitHub stars): -2
- Requires enterprise sales process: mark as "not solo dev fit", do not penalize score but flag
Intent Tiers
Reference for the full keyword list. You classify intent tier from context — jq only provides raw keyword matches.
references/intent_keywords.json| Tier | Signal | Examples |
|---|---|---|
| 1 | Direct purchase intent | "willing to pay", "budget for", "take my money" |
| 2 | Active solution seeking | "looking for a tool", "switching from", "need alternative" |
| 3 | Pain expression | "frustrated with", "too expensive", "waste of time" |
| 4 | Research | "what do you use for", "best practices", "recommendations" |
| 5 | Indirect signals | Domain discussions implying unmet need |
Solo Dev Fit Assessment
Evaluate independently of opportunity score. All must be true for a pass:
- Build time < 2 weeks for MVP
- No ongoing compliance burden (HIPAA, SOC2, etc.)
- Self-serve distribution (no enterprise sales cycle)
- Subscription or usage-based pricing model viable
- Known tech stack (no deep domain R&D)
- No network effects required for initial value
Opportunity Report Template
markdown
## Product Opportunity: [Name]
**Score:** X.X/10 | **Intent Tier:** N | **Solo Dev Fit:** Yes/No
### Pain Point
[2-3 sentence summary of the unmet need]
### Market Evidence
- **Frequency:** N posts in last 7 days across M subreddits
- **Intensity:** [low/medium/high] — key signals: ...
- **Geography:** [primary markets]
- **Target user:** [persona]
- **Budget signals:** [quotes or indicators]
### Competitive Landscape
- **Existing paid tools:** [list with pricing]
- **Open-source alternatives:** [list with GitHub stars]
- **Why they fail:** [gap analysis]
- **Recent launches:** [last 6 months]
### Build Assessment
- **Complexity:** [low/medium/high]
- **MVP scope:** [3-5 core features]
- **Build time:** [estimate]
- **Tech stack:** [recommendation]
- **Technical moat:** [if any]
- **Solo Dev Fit:** [Yes/No + reasoning]
### Revenue Model
- **Pricing anchor:** [competitor pricing context]
- **Suggested tiers:** [USD/EUR with PPP notes]
- **Distribution:** [channels]
- **Market size estimate:** [TAM/SAM]
- **Revenue potential:** [12-month projection]
- **CAC / Payback:** [estimate]
- **Churn risk:** [assessment]
### Cross-Market Signal
[Evidence from other markets/platforms]
### Source Posts
- [post title](url) — r/subreddit — N upvotes, M comments — YYYY-MM-DDDaily Report Template
markdown
# Reddit Opportunity Scan — YYYY-MM-DD
## New Opportunities (score >= 7)
[Opportunity cards with score, pain summary, top source post]
## Trending Pain Points
[Clusters below threshold but gaining frequency]
## Time-Sensitive (< 2h old, high intent)
[Posts needing immediate attention — Tier 1-2 intent, fresh]
## Scan Stats
- Subreddits scanned: N
- Posts analyzed: N
- New opportunities: N
- Watched threads updated: N
- API calls used: N / 100Loop Integration
Trigger with:
/loop 30m /redditEach cycle:
- Read (hot reload — picks up edits between cycles)
references/subreddits.json - Fetch per : Tier S every loop, Tier A daily, Tier B weekly
scan_priority - Deduplicate against in
seen_posts.reddit/.reddit.json - for watched threads with new activity
watch_check - for configured campaigns
competitor_search - Analyze, score, cluster new posts
- Output incremental report (append to daily scan file)
- Score >= 8 -> alert:
OPPORTUNITY: [title] (score X.X) - with hit rates
update_subreddit_quality
Scheduled reports:
- Weekly summary: trigger on Sundays (or first loop after Sunday midnight)
- Monthly summary: last day of month (or first loop after)
- If a scheduled report was missed, generate it on next run
State Management
.reddit/.reddit.json| Key | Purpose | TTL |
|---|---|---|
| Deduplication | 30 days |
| Monitor for new comments | 7 days default |
| Lifecycle tracking | Permanent |
| Known tools/competitors | Permanent |
| High-value Reddit users | Permanent |
| Cross-sub posting patterns | 30 days |
| Hit rate per subreddit | Permanent |
Opportunity lifecycle:
discovered -> investigating -> validated -> building -> launched -> revenue -> archivedSafety
- Public data only — no PII beyond Reddit usernames
- Rate limit compliant — respect the ~100 req/260s budget
- must be in
.reddit/— never commit user data.gitignore - Reply drafts always marked [REVIEW BEFORE POSTING]
- Suggest max 5 replies per day to avoid spam patterns
Skill Integration
Related skills for downstream workflows:
- content-strategy — turn validated pain points into content calendars
- copywriting — turn opportunities into landing page copy
- competitor-alternatives — deep competitive analysis
- cold-email — draft outreach / DM templates
- social-content — repurpose Reddit insights for social posts