Community signals
Extract leads from developer forums (Hacker News, Reddit) by detecting intent signals — alternative seeking, competitor pain, scaling challenges, DIY solutions, and migration intent.
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit gooseworks-ai/goose-skills/skills/lead-generation/packs/lead-gen-devtools/community-signals#main ~/.claude/skills/community-signalsFor one project only, change the path to .claude/skills/community-signals.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text332 lines
Community Signals
Extract high-intent leads from developer community forums by detecting buying signals in public discussions. Currently supports Hacker News and Reddit.
When to Use
- User wants to find leads from developer communities or forums
- User wants to identify people publicly expressing pain with competitors
- User wants to find people asking "what tool should I use for X"
- User mentions Hacker News, Reddit, Stack Overflow, or developer forums as lead sources
- User describes prospects who discuss tools, complain about solutions, or ask for recommendations in public forums
- User wants to find developers who built DIY/hacky solutions for problems the user's product solves
Prerequisites
- Python 3.9+ with
requestsand optionallypython-dotenv - Apify API token in
.env(for Reddit scraping) - No auth needed for Hacker News (free Algolia API)
- Working directory: the project root containing this skill
Phase 1: Collect Context
Step 1: Gather Product & ICP Information
Ask the user for the following. Do NOT proceed without this — the entire query generation depends on it.
"To find the right leads from developer communities, I need to understand:
- What does your product do? (one-liner)
- Who are your competitors? (list the main ones)
- What specific problems does your product solve? (the pain points)
- Who is your ideal buyer? (role, company type, tech stack)
- Any specific technologies or keywords associated with your space?"
If the user has already provided this context (e.g., from running the github-repo-signals skill), use that — don't ask again.
Phase 2: Generate Search Queries
Step 2: Generate Queries Across 9 Categories
Based on the user's product info, generate 3-5 search queries per category. These are the fixed categories — do not skip any:
Category 1: Alternative Seeking (intent score: 9) People actively looking to switch tools.
- Pattern: "[competitor] alternative", "alternative to [competitor]", "looking for [product type]"
- Example: "twilio alternative", "alternative to agora", "looking for video SDK"
Category 2: Competitor Pain (intent score: 8) People frustrated with a specific competitor.
- Pattern: "[competitor] issues", "frustrated with [competitor]", "[competitor] doesn't support"
- Example: "twilio video quality issues", "frustrated with agora pricing", "vonage api unreliable"
Category 3: Problem Space Questions (intent score: 6) People trying to solve the exact problem the product addresses.
- Pattern: "how to [thing product does]", "best way to [problem]", "recommendations for [category]"
- Example: "how to add video calling to app", "best webrtc framework", "real-time communication SDK"
Category 4: Tool Comparison (intent score: 8) People actively comparing options — in buying mode.
- Pattern: "[competitor A] vs [competitor B]", "comparing [tools]", "which [product type] should I use"
- Example: "twilio vs agora", "comparing video APIs", "which webrtc platform"
Category 5: DIY / Built Own Solution (intent score: 9) People who built a custom solution — validated the need, would pay for a proper product.
- Pattern: "I built my own [thing]", "Show HN: [thing product replaces]", "custom [solution type]"
- Example: "I built my own video conferencing", "Show HN: open source video call", "custom webrtc server"
Category 6: Scaling Challenges (intent score: 7) People hitting limits that the product solves.
- Pattern: "[problem] at scale", "scaling [thing]", "[thing] breaks with many users"
- Example: "webrtc scaling issues", "video calls lagging with 50+ participants", "scaling real-time communication"
Category 7: Migration Intent (intent score: 9) People who have already decided to leave — looking for where to go.
- Pattern: "migrating from [competitor]", "moving away from [competitor]", "switching from [competitor]"
- Example: "migrating from twilio video", "moving away from agora", "switching video API providers"
Category 8: Budget / Pricing Pain (intent score: 7) Cost is the trigger — open to cheaper or better-value alternatives.
- Pattern: "[competitor] too expensive", "[competitor] pricing", "cheaper alternative to [competitor]"
- Example: "twilio too expensive", "agora pricing 2026", "cheaper video API"
Category 9: Feature Gap Complaints (intent score: 7) Needs something their current tool doesn't do — and the user's product does.
- Pattern: "does [competitor] support [feature]", "[competitor] missing [feature]", "wish [competitor] had"
- Example: "does twilio support recording", "agora missing breakout rooms", "wish vonage had better docs"
Step 3: Discover Relevant Subreddits
Do a web search to find subreddits where the user's ICP is active. Search for:
- "[product category] subreddit"
- "[technology] subreddit"
- "[competitor name] subreddit"
Common developer subreddits to consider (pick the relevant ones):
- r/programming, r/webdev, r/devops, r/selfhosted
- r/kubernetes, r/aws, r/googlecloud, r/azure
- r/node, r/python, r/golang, r/rust
- r/startups, r/SaaS, r/entrepreneur
- r/sysadmin, r/networking
- Technology-specific: r/VOIP, r/machinelearning, r/dataengineering, etc.
Select 5-10 subreddits most relevant to the user's space.
Step 4: Present Queries for Review
Present ALL generated queries to the user in a structured table:
Category | Queries
--------------------------|------------------------------------------
Alternative Seeking | "twilio alternative", "agora alternative", ...
Competitor Pain | "twilio issues", "frustrated with agora", ...
... | ...
Subreddits to scan: r/webdev, r/VOIP, r/programming, ...
Ask:
"Here are the search queries I've generated. Would you like to:
- Run with these as-is
- Add or remove specific queries
- Add or remove subreddits
Estimated cost: HN is free. Reddit via Apify will cost approximately $[estimate based on query count x ~$0.05 per query]."
Wait for user approval before proceeding.
Step 5: Save Queries File
Once approved, save the queries as a JSON file:
cat > ${CLAUDE_SKILL_DIR}/../.tmp/community_queries.json << 'QUERIESEOF'
{
"product": "Product Name",
"queries": [
{"category": "alternative_seeking", "query": "twilio alternative"},
{"category": "alternative_seeking", "query": "agora alternative"},
{"category": "competitor_pain", "query": "twilio video quality issues"}
],
"subreddits": ["r/webdev", "r/VOIP", "r/programming"]
}
QUERIESEOF
Phase 3: Execute Scan
Step 6: Verify Environment
python3 -c "import requests; print('OK')"
Step 7: Run the Tool
python3 ${CLAUDE_SKILL_DIR}/scripts/community_signals.py \
--queries ${CLAUDE_SKILL_DIR}/../.tmp/community_queries.json \
--days 30 \
--max-reddit-posts 50 \
--max-reddit-comments 20 \
--output ${CLAUDE_SKILL_DIR}/../.tmp/community_signals.csv
The tool will:
- Search Hacker News (stories + comments) for all queries — free
- Search Reddit via Apify for all queries + scan subreddits — pay per result
- Filter to last 30 days
- Deduplicate users across platforms
- Score by intent strength, signal count, category diversity, and cross-platform presence
- Fetch HN user profiles (karma, bio) — free
- Export two CSV files:
_users.csvand_signals.csv
Optional flags:
--skip-reddit— only search HN (free, for testing)--skip-hn— only search Reddit--days 7— narrower time window for very fresh signals
Phase 4: Analyze & Recommend
Step 9: Analyze the Results
Read the output CSV files and present a structured briefing:
9a. Overall Stats
- Total signals found (HN + Reddit)
- Unique users
- Split by platform (HN vs Reddit)
- Cross-platform matches (same username on both)
9b. Signal Category Breakdown
- How many signals per category
- Which categories produced the most results
- Which categories had the highest-engagement posts (upvotes, comments)
9c. Top Subreddits Discovered
- Which subreddits appeared most frequently
- This tells the user where their prospects hang out — valuable for community marketing, not just outreach
9d. Highest-Intent Users
- List top 15-20 users by composite score
- For each: username, platform, categories they appeared in, sample post/comment, engagement
- Flag cross-platform users prominently
9e. Common Themes
- What are people specifically asking for or complaining about?
- Any patterns in the pain points that the user's product addresses?
- Any surprising findings (e.g., a competitor getting mentioned negatively much more than others)?
Step 10: Recommend Next Steps
Based on findings + user's product context:
If strong signals found (>50 high-intent users):
- Recommend enriching top users via SixtyFour
- For HN users: use their HN bio/karma + username for enrichment context
- For Reddit users: username is the only identifier — enrichment hit rates may be lower
- Suggest starting with HN users (more likely to have real names in bio)
If cross-platform matches found:
- These are highest priority — someone active on both HN and Reddit in your space is deeply engaged
- Recommend enriching these first
If specific subreddits emerged as hotspots:
- Recommend ongoing monitoring of those subreddits
- Suggest the user consider community engagement (commenting, answering questions) in those subreddits
If "alternative seeking" or "migration intent" signals dominate:
- These are the most time-sensitive leads — they're actively evaluating RIGHT NOW
- Recommend immediate outreach
If "DIY / built own" signals found:
- These are the highest-quality leads — they've validated the need
- Recommend personalized outreach referencing their project
Always include:
- Cost estimate for enrichment
- Suggested outreach angle per signal category
- Reminder that community forum users respond better to helpful engagement than cold outreach
Step 11: Ask for Go-Ahead
"Would you like me to:
- Enrich the top [N] users via SixtyFour (estimated cost: $X)
- Run a deeper scan on the hotspot subreddits
- Export this data for manual review first
- Combine these results with GitHub signals data (if available)"
Wait for user confirmation.
Output Schema
community_signals_users.csv — One row per unique user across all platforms
| Column | Description |
|---|---|
| username | Forum username |
| platform | hackernews or reddit |
| composite_score | Overall lead score (intent + diversity + cross-platform) |
| intent_score | Sum of category-weighted intent scores |
| signal_count | Number of matching posts/comments |
| categories | Which signal categories they appeared in |
| platforms_active | Which platforms they were found on |
| subreddits | Reddit subreddits they posted in |
| hn_karma | HN karma score (HN users only) |
| hn_bio | HN profile bio (HN users only) |
| total_engagement | Sum of upvotes + comments across their signals |
| first_seen | Earliest matching post/comment |
| latest_seen | Most recent matching post/comment |
| sample_url | Link to one of their matching posts |
community_signals_signals.csv — One row per matching post/comment
| Column | Description |
|---|---|
| platform | hackernews or reddit |
| author | Username |
| category | Signal category code |
| category_label | Human-readable category name |
| content_type | story, comment, or post |
| title | Post/story title |
| text | Post/comment body (truncated) |
| subreddit | Reddit subreddit (if applicable) |
| score | Upvotes |
| num_comments | Comment count |
| created_at | Date posted |
| query_matched | Which search query found this |
| url | Permalink to the post/comment |
Scoring System
Intent scores by category:
| Category | Score per Signal |
|---|---|
| Alternative Seeking | 9 |
| DIY / Built Own | 9 |
| Migration Intent | 9 |
| Competitor Pain | 8 |
| Tool Comparison | 8 |
| Scaling Challenge | 7 |
| Budget / Pricing | 7 |
| Feature Gap | 7 |
| Problem Space | 6 |
Composite score bonuses:
- +2 per unique category the user appeared in (diversity)
- +10 if user found on multiple platforms (cross-platform)
- +2 per signal (capped at +10)
Cost Estimates
| Platform | Cost | Notes |
|---|---|---|
| Hacker News | Free | Algolia API, 10k req/hr |
| Reddit (Apify) | ~$0.004/result + $0.04/run | Pay per result |
| Typical run (45 queries) | ~$5-10 total | HN free + Reddit ~$5-10 |
Limitations
- Reddit comments: Can't search comments directly — finds posts first, then fetches comments on those posts. Some comment-only discussions may be missed.
- Reddit date filter: No native date range parameter in Apify actor. Filtering happens in post-processing using
created_attimestamps. - User identity: Forum usernames are pseudonymous. Enrichment hit rates will be lower than GitHub (where people often use real names). HN users are more identifiable (many put real names in bio).
- Rate limits: HN Algolia: 10k req/hr. Apify: depends on plan.
| 1 | |
| 2 | name community-signals |
| 3 | description Extract leads from developer forums (Hacker News, Reddit) by detecting intent signals — alternative seeking, competitor pain, scaling challenges, DIY solutions, and migration intent. Scores users by intent strength and cross-platform presence. |
| 4 | user-invocable true |
| 5 | allowed-tools Bash, Read, Write, Edit, Grep, Glob, WebSearch |
| 6 | argument-hint [queries-json-path] |
| 7 | |
| 8 | |
| 9 | # Community Signals |
| 10 | |
| 11 | Extract high-intent leads from developer community forums by detecting buying signals in public discussions. Currently supports Hacker News and Reddit. |
| 12 | |
| 13 | ## When to Use |
| 14 | |
| 15 | User wants to find leads from developer communities or forums |
| 16 | User wants to identify people publicly expressing pain with competitors |
| 17 | User wants to find people asking "what tool should I use for X" |
| 18 | User mentions Hacker News, Reddit, Stack Overflow, or developer forums as lead sources |
| 19 | User describes prospects who discuss tools, complain about solutions, or ask for recommendations in public forums |
| 20 | User wants to find developers who built DIY/hacky solutions for problems the user's product solves |
| 21 | |
| 22 | ## Prerequisites |
| 23 | |
| 24 | Python 3.9+ with `requests` and optionally `python-dotenv` |
| 25 | Apify API token in `.env` (for Reddit scraping) |
| 26 | No auth needed for Hacker News (free Algolia API) |
| 27 | Working directory: the project root containing this skill |
| 28 | |
| 29 | ## Phase 1: Collect Context |
| 30 | |
| 31 | ### Step 1: Gather Product & ICP Information |
| 32 | |
| 33 | Ask the user for the following. Do NOT proceed without this — the entire query generation depends on it. |
| 34 | |
| 35 | > "To find the right leads from developer communities, I need to understand: |
| 36 | > 1. **What does your product do?** (one-liner) |
| 37 | > 2. **Who are your competitors?** (list the main ones) |
| 38 | > 3. **What specific problems does your product solve?** (the pain points) |
| 39 | > 4. **Who is your ideal buyer?** (role, company type, tech stack) |
| 40 | > 5. **Any specific technologies or keywords** associated with your space?" |
| 41 | |
| 42 | If the user has already provided this context (e.g., from running the github-repo-signals skill), use that — don't ask again. |
| 43 | |
| 44 | ## Phase 2: Generate Search Queries |
| 45 | |
| 46 | ### Step 2: Generate Queries Across 9 Categories |
| 47 | |
| 48 | Based on the user's product info, generate 3-5 search queries per category. These are the fixed categories — do not skip any: |
| 49 | |
| 50 | **Category 1: Alternative Seeking** (intent score: 9) |
| 51 | People actively looking to switch tools. |
| 52 | Pattern: "[competitor] alternative", "alternative to [competitor]", "looking for [product type]" |
| 53 | Example: "twilio alternative", "alternative to agora", "looking for video SDK" |
| 54 | |
| 55 | **Category 2: Competitor Pain** (intent score: 8) |
| 56 | People frustrated with a specific competitor. |
| 57 | Pattern: "[competitor] issues", "frustrated with [competitor]", "[competitor] doesn't support" |
| 58 | Example: "twilio video quality issues", "frustrated with agora pricing", "vonage api unreliable" |
| 59 | |
| 60 | **Category 3: Problem Space Questions** (intent score: 6) |
| 61 | People trying to solve the exact problem the product addresses. |
| 62 | Pattern: "how to [thing product does]", "best way to [problem]", "recommendations for [category]" |
| 63 | Example: "how to add video calling to app", "best webrtc framework", "real-time communication SDK" |
| 64 | |
| 65 | **Category 4: Tool Comparison** (intent score: 8) |
| 66 | People actively comparing options — in buying mode. |
| 67 | Pattern: "[competitor A] vs [competitor B]", "comparing [tools]", "which [product type] should I use" |
| 68 | Example: "twilio vs agora", "comparing video APIs", "which webrtc platform" |
| 69 | |
| 70 | **Category 5: DIY / Built Own Solution** (intent score: 9) |
| 71 | People who built a custom solution — validated the need, would pay for a proper product. |
| 72 | Pattern: "I built my own [thing]", "Show HN: [thing product replaces]", "custom [solution type]" |
| 73 | Example: "I built my own video conferencing", "Show HN: open source video call", "custom webrtc server" |
| 74 | |
| 75 | **Category 6: Scaling Challenges** (intent score: 7) |
| 76 | People hitting limits that the product solves. |
| 77 | Pattern: "[problem] at scale", "scaling [thing]", "[thing] breaks with many users" |
| 78 | Example: "webrtc scaling issues", "video calls lagging with 50+ participants", "scaling real-time communication" |
| 79 | |
| 80 | **Category 7: Migration Intent** (intent score: 9) |
| 81 | People who have already decided to leave — looking for where to go. |
| 82 | Pattern: "migrating from [competitor]", "moving away from [competitor]", "switching from [competitor]" |
| 83 | Example: "migrating from twilio video", "moving away from agora", "switching video API providers" |
| 84 | |
| 85 | **Category 8: Budget / Pricing Pain** (intent score: 7) |
| 86 | Cost is the trigger — open to cheaper or better-value alternatives. |
| 87 | Pattern: "[competitor] too expensive", "[competitor] pricing", "cheaper alternative to [competitor]" |
| 88 | Example: "twilio too expensive", "agora pricing 2026", "cheaper video API" |
| 89 | |
| 90 | **Category 9: Feature Gap Complaints** (intent score: 7) |
| 91 | Needs something their current tool doesn't do — and the user's product does. |
| 92 | Pattern: "does [competitor] support [feature]", "[competitor] missing [feature]", "wish [competitor] had" |
| 93 | Example: "does twilio support recording", "agora missing breakout rooms", "wish vonage had better docs" |
| 94 | |
| 95 | ### Step 3: Discover Relevant Subreddits |
| 96 | |
| 97 | Do a web search to find subreddits where the user's ICP is active. Search for: |
| 98 | "[product category] subreddit" |
| 99 | "[technology] subreddit" |
| 100 | "[competitor name] subreddit" |
| 101 | |
| 102 | Common developer subreddits to consider (pick the relevant ones): |
| 103 | r/programming, r/webdev, r/devops, r/selfhosted |
| 104 | r/kubernetes, r/aws, r/googlecloud, r/azure |
| 105 | r/node, r/python, r/golang, r/rust |
| 106 | r/startups, r/SaaS, r/entrepreneur |
| 107 | r/sysadmin, r/networking |
| 108 | Technology-specific: r/VOIP, r/machinelearning, r/dataengineering, etc. |
| 109 | |
| 110 | Select 5-10 subreddits most relevant to the user's space. |
| 111 | |
| 112 | ### Step 4: Present Queries for Review |
| 113 | |
| 114 | Present ALL generated queries to the user in a structured table: |
| 115 | |
| 116 | |
| 117 | Category | Queries |
| 118 | --------------------------|------------------------------------------ |
| 119 | Alternative Seeking | "twilio alternative", "agora alternative", ... |
| 120 | Competitor Pain | "twilio issues", "frustrated with agora", ... |
| 121 | ... | ... |
| 122 | |
| 123 | Subreddits to scan: r/webdev, r/VOIP, r/programming, ... |
| 124 | |
| 125 | |
| 126 | Ask: |
| 127 | > "Here are the search queries I've generated. Would you like to: |
| 128 | > 1. Run with these as-is |
| 129 | > 2. Add or remove specific queries |
| 130 | > 3. Add or remove subreddits |
| 131 | > |
| 132 | > Estimated cost: HN is free. Reddit via Apify will cost approximately $[estimate based on query count x ~$0.05 per query]." |
| 133 | |
| 134 | Wait for user approval before proceeding. |
| 135 | |
| 136 | ### Step 5: Save Queries File |
| 137 | |
| 138 | Once approved, save the queries as a JSON file: |
| 139 | |
| 140 | |
| 141 | cat > ${CLAUDE_SKILL_DIR}/../.tmp/community_queries.json << 'QUERIESEOF' |
| 142 | { |
| 143 | "product": "Product Name", |
| 144 | "queries": [ |
| 145 | {"category": "alternative_seeking", "query": "twilio alternative"}, |
| 146 | {"category": "alternative_seeking", "query": "agora alternative"}, |
| 147 | {"category": "competitor_pain", "query": "twilio video quality issues"} |
| 148 | ], |
| 149 | "subreddits": ["r/webdev", "r/VOIP", "r/programming"] |
| 150 | } |
| 151 | QUERIESEOF |
| 152 | |
| 153 | |
| 154 | ## Phase 3: Execute Scan |
| 155 | |
| 156 | ### Step 6: Verify Environment |
| 157 | |
| 158 | |
| 159 | python3 -c "import requests; print('OK')" |
| 160 | |
| 161 | |
| 162 | ### Step 7: Run the Tool |
| 163 | |
| 164 | |
| 165 | python3 ${CLAUDE_SKILL_DIR}/scripts/community_signals.py \ |
| 166 | --queries ${CLAUDE_SKILL_DIR}/../.tmp/community_queries.json \ |
| 167 | --days 30 \ |
| 168 | --max-reddit-posts 50 \ |
| 169 | --max-reddit-comments 20 \ |
| 170 | --output ${CLAUDE_SKILL_DIR}/../.tmp/community_signals.csv |
| 171 | |
| 172 | |
| 173 | The tool will: |
| 174 | Search Hacker News (stories + comments) for all queries — free |
| 175 | Search Reddit via Apify for all queries + scan subreddits — pay per result |
| 176 | Filter to last 30 days |
| 177 | Deduplicate users across platforms |
| 178 | Score by intent strength, signal count, category diversity, and cross-platform presence |
| 179 | Fetch HN user profiles (karma, bio) — free |
| 180 | Export two CSV files: `_users.csv` and `_signals.csv` |
| 181 | |
| 182 | **Optional flags:** |
| 183 | `--skip-reddit` — only search HN (free, for testing) |
| 184 | `--skip-hn` — only search Reddit |
| 185 | `--days 7` — narrower time window for very fresh signals |
| 186 | |
| 187 | ## Phase 4: Analyze & Recommend |
| 188 | |
| 189 | ### Step 9: Analyze the Results |
| 190 | |
| 191 | Read the output CSV files and present a structured briefing: |
| 192 | |
| 193 | **9a. Overall Stats** |
| 194 | Total signals found (HN + Reddit) |
| 195 | Unique users |
| 196 | Split by platform (HN vs Reddit) |
| 197 | Cross-platform matches (same username on both) |
| 198 | |
| 199 | **9b. Signal Category Breakdown** |
| 200 | How many signals per category |
| 201 | Which categories produced the most results |
| 202 | Which categories had the highest-engagement posts (upvotes, comments) |
| 203 | |
| 204 | **9c. Top Subreddits Discovered** |
| 205 | Which subreddits appeared most frequently |
| 206 | This tells the user where their prospects hang out — valuable for community marketing, not just outreach |
| 207 | |
| 208 | **9d. Highest-Intent Users** |
| 209 | List top 15-20 users by composite score |
| 210 | For each: username, platform, categories they appeared in, sample post/comment, engagement |
| 211 | Flag cross-platform users prominently |
| 212 | |
| 213 | **9e. Common Themes** |
| 214 | What are people specifically asking for or complaining about? |
| 215 | Any patterns in the pain points that the user's product addresses? |
| 216 | Any surprising findings (e.g., a competitor getting mentioned negatively much more than others)? |
| 217 | |
| 218 | ### Step 10: Recommend Next Steps |
| 219 | |
| 220 | Based on findings + user's product context: |
| 221 | |
| 222 | **If strong signals found (>50 high-intent users):** |
| 223 | Recommend enriching top users via SixtyFour |
| 224 | For HN users: use their HN bio/karma + username for enrichment context |
| 225 | For Reddit users: username is the only identifier — enrichment hit rates may be lower |
| 226 | Suggest starting with HN users (more likely to have real names in bio) |
| 227 | |
| 228 | **If cross-platform matches found:** |
| 229 | These are highest priority — someone active on both HN and Reddit in your space is deeply engaged |
| 230 | Recommend enriching these first |
| 231 | |
| 232 | **If specific subreddits emerged as hotspots:** |
| 233 | Recommend ongoing monitoring of those subreddits |
| 234 | Suggest the user consider community engagement (commenting, answering questions) in those subreddits |
| 235 | |
| 236 | **If "alternative seeking" or "migration intent" signals dominate:** |
| 237 | These are the most time-sensitive leads — they're actively evaluating RIGHT NOW |
| 238 | Recommend immediate outreach |
| 239 | |
| 240 | **If "DIY / built own" signals found:** |
| 241 | These are the highest-quality leads — they've validated the need |
| 242 | Recommend personalized outreach referencing their project |
| 243 | |
| 244 | **Always include:** |
| 245 | Cost estimate for enrichment |
| 246 | Suggested outreach angle per signal category |
| 247 | Reminder that community forum users respond better to helpful engagement than cold outreach |
| 248 | |
| 249 | ### Step 11: Ask for Go-Ahead |
| 250 | |
| 251 | > "Would you like me to: |
| 252 | > 1. Enrich the top [N] users via SixtyFour (estimated cost: $X) |
| 253 | > 2. Run a deeper scan on the hotspot subreddits |
| 254 | > 3. Export this data for manual review first |
| 255 | > 4. Combine these results with GitHub signals data (if available)" |
| 256 | |
| 257 | Wait for user confirmation. |
| 258 | |
| 259 | ## Output Schema |
| 260 | |
| 261 | **`community_signals_users.csv`** — One row per unique user across all platforms |
| 262 | |
| 263 | | Column | Description | |
| 264 | |--------|-------------| |
| 265 | | username | Forum username | |
| 266 | | platform | hackernews or reddit | |
| 267 | | composite_score | Overall lead score (intent + diversity + cross-platform) | |
| 268 | | intent_score | Sum of category-weighted intent scores | |
| 269 | | signal_count | Number of matching posts/comments | |
| 270 | | categories | Which signal categories they appeared in | |
| 271 | | platforms_active | Which platforms they were found on | |
| 272 | | subreddits | Reddit subreddits they posted in | |
| 273 | | hn_karma | HN karma score (HN users only) | |
| 274 | | hn_bio | HN profile bio (HN users only) | |
| 275 | | total_engagement | Sum of upvotes + comments across their signals | |
| 276 | | first_seen | Earliest matching post/comment | |
| 277 | | latest_seen | Most recent matching post/comment | |
| 278 | | sample_url | Link to one of their matching posts | |
| 279 | |
| 280 | **`community_signals_signals.csv`** — One row per matching post/comment |
| 281 | |
| 282 | | Column | Description | |
| 283 | |--------|-------------| |
| 284 | | platform | hackernews or reddit | |
| 285 | | author | Username | |
| 286 | | category | Signal category code | |
| 287 | | category_label | Human-readable category name | |
| 288 | | content_type | story, comment, or post | |
| 289 | | title | Post/story title | |
| 290 | | text | Post/comment body (truncated) | |
| 291 | | subreddit | Reddit subreddit (if applicable) | |
| 292 | | score | Upvotes | |
| 293 | | num_comments | Comment count | |
| 294 | | created_at | Date posted | |
| 295 | | query_matched | Which search query found this | |
| 296 | | url | Permalink to the post/comment | |
| 297 | |
| 298 | ## Scoring System |
| 299 | |
| 300 | **Intent scores by category:** |
| 301 | | Category | Score per Signal | |
| 302 | |----------|-----------------| |
| 303 | | Alternative Seeking | 9 | |
| 304 | | DIY / Built Own | 9 | |
| 305 | | Migration Intent | 9 | |
| 306 | | Competitor Pain | 8 | |
| 307 | | Tool Comparison | 8 | |
| 308 | | Scaling Challenge | 7 | |
| 309 | | Budget / Pricing | 7 | |
| 310 | | Feature Gap | 7 | |
| 311 | | Problem Space | 6 | |
| 312 | |
| 313 | **Composite score bonuses:** |
| 314 | +2 per unique category the user appeared in (diversity) |
| 315 | +10 if user found on multiple platforms (cross-platform) |
| 316 | +2 per signal (capped at +10) |
| 317 | |
| 318 | ## Cost Estimates |
| 319 | |
| 320 | | Platform | Cost | Notes | |
| 321 | |----------|------|-------| |
| 322 | | Hacker News | **Free** | Algolia API, 10k req/hr | |
| 323 | | Reddit (Apify) | ~$0.004/result + $0.04/run | Pay per result | |
| 324 | | **Typical run** (45 queries) | **~$5-10 total** | HN free + Reddit ~$5-10 | |
| 325 | |
| 326 | ## Limitations |
| 327 | |
| 328 | **Reddit comments:** Can't search comments directly — finds posts first, then fetches comments on those posts. Some comment-only discussions may be missed. |
| 329 | **Reddit date filter:** No native date range parameter in Apify actor. Filtering happens in post-processing using `created_at` timestamps. |
| 330 | **User identity:** Forum usernames are pseudonymous. Enrichment hit rates will be lower than GitHub (where people often use real names). HN users are more identifiable (many put real names in bio). |
| 331 | **Rate limits:** HN Algolia: 10k req/hr. Apify: depends on plan. |
| 332 |