Pain Point Finder
Discover validated pain points on Reddit. Searches for frustrations, complaints, and unmet needs, then analyzes comment threads for agreement signals and failed solutions. Powered by PullPush API — no API keys needed.
Workflow
Follow these 4 phases in order. Each phase builds on the previous.
Phase 1: Discover Subreddits
Find the right subreddits for the user's domain.
CODEBLOCK0
Example:
CODEBLOCK1
Take the top 3-5 subreddits from the output for phase 2.
Phase 2: Scan for Pain Points
Broad search across discovered subreddits.
CODEBLOCK2
Example:
CODEBLOCK3
Review the scored posts. Posts with high painScore and high num_comments are the best candidates for deep analysis.
Phase 3: Deep-Dive Analysis
Analyze comment threads of top posts for agreement and solution signals.
Single post:
CODEBLOCK4
Top N from scan output:
CODEBLOCK5
Look at the validationStrength field:
- - strong: widespread, validated pain (agreementRatio > 0.20, 10+ agreements)
- moderate: notable pain with some validation
- weak: some signal but limited agreement
- anecdotal: one person's complaint, needs more evidence
Phase 4: Synthesis (you do this)
For each validated pain point, present a structured proposal:
- 1. Problem: One-sentence description of the pain
- Evidence: Top quotes + agreement count + subreddit
- Who feels this: Type of person/business affected
- Current solutions & gaps: What people have tried (from
solutionAttempts) and why it fails - Competitive landscape: Tools mentioned (from
mentionedTools) - Opportunity: What's missing in current solutions
- Idea sketch: Brief product/service concept
- Validation: strong/moderate/weak + data backing it
Options Reference
discover
| Flag | Default | Description |
|---|
| INLINECODE5 | required | Domain to explore |
| INLINECODE6 |
10 | Max subreddits to return |
scan
| Flag | Default | Description |
|---|
| INLINECODE7 | required | Comma-separated subreddit list |
| INLINECODE8 |
| Domain for extra search queries |
|
--days | 365 | How far back to search |
|
--minScore | 1 | Min post score filter |
|
--minComments | 3 | Min comment count filter |
|
--limit | 30 | Max posts to return |
|
--pages | 2 | Pages per query (more = deeper, slower) |
deep-dive
| Flag | Default | Description |
|---|
| INLINECODE14 | | Single post ID or Reddit URL |
| INLINECODE15 |
| Path to scan output JSON |
|
--stdin | | Read scan JSON from stdin |
|
--top | 10 | How many posts to analyze from scan |
|
--maxComments | 200 | Max comments to fetch per post |
Rate Limits
The script self-limits to 1 request/sec, 30/min, 300/run. If PullPush is slow or returns errors, it retries with exponential backoff. Progress is logged to stderr.
Tips
- - Start broad with
--days 90 then narrow to --days 30 for recent trends - High
num_comments + high score = validated pain (many people agree) - High
painScore + low num_comments = niche pain (worth investigating) - The
mentionedTools in deep-dive output maps the competitive landscape - Posts with
validationStrength: "strong" are the best startup candidates
痛点发现器
在Reddit上发现经过验证的痛点。搜索用户的挫败感、抱怨和未满足的需求,然后分析评论线程中的认同信号和失败解决方案。由PullPush API驱动——无需API密钥。
工作流程
按顺序执行以下4个阶段。每个阶段都建立在前一阶段的基础上。
第一阶段:发现子版块
找到与用户领域相关的正确子版块。
bash
node {baseDir}/scripts/pain-points.mjs discover --domain <用户领域> --limit 8
示例:
bash
node {baseDir}/scripts/pain-points.mjs discover --domain 项目管理 --limit 8
从输出结果中选取前3-5个子版块用于第二阶段。
第二阶段:扫描痛点
在发现的子版块中进行广泛搜索。
bash
node {baseDir}/scripts/pain-points.mjs scan \
--subreddits <子版块1>,<子版块2>,<子版块3> \
--domain <领域> \
--days 90 \
--limit 20
示例:
bash
node {baseDir}/scripts/pain-points.mjs scan \
--subreddits projectmanagement,SaaS,smallbusiness \
--domain 项目管理 \
--days 90 \
--limit 20
审查评分后的帖子。具有高painScore和高num_comments的帖子是进行深度分析的最佳候选。
第三阶段:深度分析
分析热门帖子的评论线程,寻找认同和解决方案信号。
单个帖子:
bash
node {baseDir}/scripts/pain-points.mjs deep-dive --post <帖子ID>
从扫描输出中选取前N个:
bash
node {baseDir}/scripts/pain-points.mjs deep-dive --from-scan --top 5
查看validationStrength字段:
- - 强:广泛存在且经过验证的痛点(agreementRatio > 0.20,10+个认同)
- 中等:有一定验证的显著痛点
- 弱:有一定信号但认同有限
- 轶事:单个人的抱怨,需要更多证据
第四阶段:综合(由你完成)
针对每个经过验证的痛点,提出结构化方案:
- 1. 问题:一句话描述该痛点
- 证据:关键引用 + 认同数量 + 子版块
- 受影响人群:受影响的个人/企业类型
- 当前解决方案与差距:人们尝试过的方法(来自solutionAttempts)及其失败原因
- 竞争格局:被提及的工具(来自mentionedTools)
- 机会:当前解决方案中缺失的部分
- 创意草图:简要的产品/服务概念
- 验证:强/中等/弱 + 支持数据
选项参考
discover
| 标志 | 默认值 | 描述 |
|---|
| --domain | 必填 | 要探索的领域 |
| --limit |
10 | 返回的最大子版块数量 |
scan
| 标志 | 默认值 | 描述 |
|---|
| --subreddits | 必填 | 逗号分隔的子版块列表 |
| --domain |
| 用于额外搜索查询的领域 |
| --days | 365 | 搜索回溯的天数 |
| --minScore | 1 | 最低帖子分数筛选 |
| --minComments | 3 | 最低评论数筛选 |
| --limit | 30 | 返回的最大帖子数量 |
| --pages | 2 | 每次查询的页数(越多越深入,但越慢) |
deep-dive
| 标志 | 默认值 | 描述 |
|---|
| --post | | 单个帖子ID或Reddit URL |
| --from-scan |
| 扫描输出JSON的路径 |
| --stdin | | 从标准输入读取扫描JSON |
| --top | 10 | 从扫描结果中分析的帖子数量 |
| --maxComments | 200 | 每个帖子获取的最大评论数 |
速率限制
脚本自动限制为每秒1个请求,每分钟30个,每次运行300个。如果PullPush响应缓慢或返回错误,将使用指数退避重试。进度信息输出到stderr。
提示
- - 从--days 90的广泛搜索开始,然后缩小到--days 30以获取近期趋势
- 高numcomments + 高score = 经过验证的痛点(许多人认同)
- 高painScore + 低numcomments = 小众痛点(值得调查)
- deep-dive输出中的mentionedTools映射了竞争格局
- validationStrength: strong的帖子是最佳的创业候选