.claude/skills/forum-monitor/SKILL.md
Use when monitoring online forums (Reddit, HN, ProductHunt) for recurring user pain points, feature requests, and unmet needs. Invoke for market research, pain-point discovery, trend detection, and competitive intelligence. Designed for scheduled execution via CronCreate.
npx skillsauth add oimiragieo/agent-studio forum-monitorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematic workflow for monitoring online communities to discover recurring user pain points. Transforms unstructured forum discussions into ranked, evidence-backed opportunity reports suitable for automated app generation pipelines.
Core principle: Pain points with high frequency and high engagement are the strongest product signals. Monitor, classify, rank, report.
This skill is designed to run on a schedule via CronCreate:
CronCreate({
name: 'weekly-forum-scan',
schedule: '0 9 * * MON', // Every Monday at 9 AM
prompt:
'Run forum monitor scan for [target domain]. Invoke Skill({ skill: "forum-monitor" }). Save report to .claude/context/reports/backend/',
});
Define the forums to monitor based on the target domain:
Forum Selection Matrix:
| Forum | Best For | Query Pattern |
| ------------- | ------------------------------- | --------------------------------------------- |
| Reddit | Consumer pain points, UX issues | site:reddit.com <topic> frustrating OR wish |
| Hacker News | Developer tools, B2B SaaS | site:news.ycombinator.com <topic> |
| ProductHunt | New product gaps, feature envy | site:producthunt.com <topic> |
| Indie Hackers | Solo dev pain points, pricing | site:indiehackers.com <topic> |
| Dev.to | Developer workflow friction | site:dev.to <topic> pain OR annoy |
Query Templates:
"{topic} frustrating OR annoying OR wish OR need OR missing"
"{topic} alternative to OR better than OR looking for"
"{topic} feature request OR roadmap OR please add"
For each configured forum, execute searches and extract content:
// Search for pain points
WebSearch({ query: 'site:reddit.com {topic} frustrating OR wish OR need 2026' });
// Fetch specific threads with high engagement
WebFetch({
url: '{thread-url}',
prompt:
'Extract all complaints, feature requests, and pain points. For each, note the exact quote, upvote count, and whether others agreed.',
});
Collection Requirements:
Categorize each collected item into one of these categories:
| Category | Signal Words | Example |
| ------------------- | --------------------------------------- | ------------------------------------ |
| missing-feature | "wish", "need", "please add", "roadmap" | "I wish Notion had offline mode" |
| workflow-friction | "slow", "clunky", "takes forever" | "It takes 10 clicks to export a PDF" |
| bug-report | "broken", "crashes", "error" | "The app crashes on large files" |
| pricing | "expensive", "not worth", "free alt" | "Too expensive for a solo dev" |
| ux-confusion | "confusing", "can't find", "intuitive" | "I had no idea where settings were" |
| integration-gap | "connect to", "integrate with", "API" | "No Zapier integration available" |
Group similar pain points into clusters:
For each cluster, compute:
Opportunity Score = (Frequency x 0.4) + (Engagement x 0.3) + (Recency x 0.2) + (Sentiment Intensity x 0.1)
Where:
Write structured output to .claude/context/reports/backend/forum-monitor-report-{YYYY-MM-DD}.md:
<!-- Agent: forum-monitor-agent | Task: #{id} | Session: {date} -->
# Forum Monitor Report
**Scan Period**: {start-date} to {end-date}
**Forums Monitored**: {list}
**Total Posts Analyzed**: {count}
**Pain Point Clusters Found**: {count}
## Top Pain Points (Ranked by Opportunity Score)
| Rank | Pain Point | Category | Freq | Engagement | Score | Sources |
| ---- | ---------- | -------- | ---- | ---------- | ----- | ------- |
| 1 | [desc] | [cat] | [n] | [n] | [n.n] | [n] |
## Detailed Findings
### 1. [Pain Point Title] (Score: X.X)
**Category**: [type]
**Frequency**: [n] mentions across [n] sources
**Engagement**: [total upvotes] upvotes, [total comments] comments
**Forums**: [list of forums where this appeared]
**Representative Quotes:**
1. "[exact quote]" - [source URL] ([n] upvotes)
2. "[exact quote]" - [source URL] ([n] upvotes)
3. "[exact quote]" - [source URL] ([n] upvotes)
**App Opportunity Assessment:**
- Buildable as standalone app: YES/NO
- Estimated complexity: LOW/MEDIUM/HIGH
- Existing solutions: [list or "none found"]
- Differentiation angle: [what would make a new solution win]
| Anti-Pattern | Why It Fails | Correct Approach | | ----------------------------- | --------------------------------------------------- | --------------------------------------------- | | Single-forum reports | One community is not representative | Cross-reference 2+ forums before trending | | Subjective ranking | Personal opinion is not data | Use weighted opportunity formula | | Missing source URLs | Downstream agents cannot validate findings | Every finding must have a clickable source | | Stale data without date range | Trends from 2024 are not 2026 trends | Always specify scan period in report header | | Over-counting duplicates | Same user posting in 3 threads is not 3 data points | Deduplicate by unique user + unique complaint |
browser-automation -- for deeper scraping when WebSearch/WebFetch are insufficientdeep-research -- for comprehensive investigation of specific pain pointsfeedback-analysis -- for structured sentiment and NPS analysis| Agent | Role |
| --------------------- | --------------------------------------- |
| forum-monitor-agent | Primary -- executes the full workflow |
| researcher | Supporting -- deeper investigation |
| app-generator-agent | Consumer -- reads reports for app ideas |
Before starting:
node .claude/lib/memory/memory-search.cjs "forum monitor pain points trends"
Read .claude/context/memory/learnings.md
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
tools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.