skills/packs/lead-gen-devtools/community-signals/SKILL.md
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.
npx skillsauth add gooseworks-ai/goose-skills community-signalsInstall 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.
Extract high-intent leads from developer community forums by detecting buying signals in public discussions. Currently supports Hacker News and Reddit.
requests and optionally python-dotenv.env (for Reddit scraping)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.
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.
Category 2: Competitor Pain (intent score: 8) People frustrated with a specific competitor.
Category 3: Problem Space Questions (intent score: 6) People trying to solve the exact problem the product addresses.
Category 4: Tool Comparison (intent score: 8) People actively comparing options — in buying mode.
Category 5: DIY / Built Own Solution (intent score: 9) People who built a custom solution — validated the need, would pay for a proper product.
Category 6: Scaling Challenges (intent score: 7) People hitting limits that the product solves.
Category 7: Migration Intent (intent score: 9) People who have already decided to leave — looking for where to go.
Category 8: Budget / Pricing Pain (intent score: 7) Cost is the trigger — open to cheaper or better-value alternatives.
Category 9: Feature Gap Complaints (intent score: 7) Needs something their current tool doesn't do — and the user's product does.
Do a web search to find subreddits where the user's ICP is active. Search for:
Common developer subreddits to consider (pick the relevant ones):
Select 5-10 subreddits most relevant to the user's space.
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.
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
python3 -c "import requests; print('OK')"
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:
_users.csv and _signals.csvOptional flags:
--skip-reddit — only search HN (free, for testing)--skip-hn — only search Reddit--days 7 — narrower time window for very fresh signalsRead the output CSV files and present a structured briefing:
9a. Overall Stats
9b. Signal Category Breakdown
9c. Top Subreddits Discovered
9d. Highest-Intent Users
9e. Common Themes
Based on findings + user's product context:
If strong signals found (>50 high-intent users):
If cross-platform matches found:
If specific subreddits emerged as hotspots:
If "alternative seeking" or "migration intent" signals dominate:
If "DIY / built own" signals found:
Always include:
"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.
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 |
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:
| 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 |
created_at timestamps.development
End-to-end skill that turns a single reference image into a fully-installed, example-rendered style preset for the goose-graphics composite. Analyzes the image, writes the slim style spec, registers it in styles/index.json, generates all 7 format examples using the standard brief, renders PNGs via Playwright, and updates examples/manifest.json. Invoke with /goose-graphics-create-style.
development
Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.
tools
Take screenshots of any website using Notte browser automation. Use when asked to screenshot, capture, or snap a webpage.
development
Search the web, platforms, and datasets. Use when asked to search, find, look up, research, or discover information from the web, YouTube, Amazon, eBay, news, academic sources, or any online platform.