Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Extract leads from competitor product activity — Product Hunt commenters/upvoters, HN posts about competitors, case studies, testimonials, tech press, and switching signals. Detects people actively switching from competitors as highest-priority leads.
.claude/skills/gooseworks-ai-competitor-signals/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 151% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 127% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 62% | 0% |
Find leads by monitoring competitor product activity. Instead of looking for your prospects directly, watch your competitors' audience — every person engaging with a competitor launch is self-identifying as in-market for your category.
requests and optionally python-dotenvapi.producthunt.com/v2/oauth/applications).env (fallback for PH if API names are redacted, optional)Ask the user:
> "To find leads from competitor activity, I need: > 1. Who are your competitors? (product names and company names) > 2. Do you know their Product Hunt slugs? (the URL path on producthunt.com/posts/SLUG) > 3. Any specific competitor launches or announcements you've seen recently? > 4. Are there competitors or signals you specifically want to track? (e.g., a competitor just raised funding, launched a new feature, or got press coverage)"
If the user doesn't have a complete competitor list, help them discover competitors:
2a. Product Hunt search:
2b. G2/Capterra category pages:
2c. "Alternatives to" sites:
2d. Ask the user: > "Based on my research, here are competitors I've found in your space: list]. Are there any I'm missing? Any you'd like to exclude (e.g., not really competitors, too different in market segment)?"
For each competitor, find their PH launches:
producthunt.com/products/[competitor-name]producthunt.com/posts/SLUGFor each competitor, identify pages the agent should scrape:
Case studies page: [competitor].com/customers or [competitor].com/case-studies
Testimonials page: Often on the homepage or a dedicated page
Blog: [competitor].com/blog
Present all discovered pages to the user for review.
Before running the tool, the agent should manually scrape competitor case studies and testimonials. This is agent-driven because every competitor website has a different format.
For each competitor's case study page:
For each competitor's testimonials page:
Save all scraped data to ${CLAUDE_SKILL_DIR}/../.tmp/competitor_manual_signals.json:
json[ { "person_name": "Sarah Chen", "company": "TechCorp", "signal_type": "case_study_company", "signal_label": "Competitor Case Study", "competitor": "Twilio", "context": "How TechCorp scaled video calls to 100K users with Twilio", "url": "https://twilio.com/case-studies/techcorp", "profile_url": "", "date": "", "source": "Manual", "engagement": 0 } ]
Search for recent articles about competitors:
For articles found:
bashcat > ${CLAUDE_SKILL_DIR}/../.tmp/competitor_signals_config.json << 'CONFIGEOF' { "competitors": ["Twilio", "Agora", "Vonage", "Daily.co"], "product_hunt_slugs": ["twilio-video", "agora-2", "daily-co"], "days": 90, "manual_signals_file": "${CLAUDE_SKILL_DIR}/../.tmp/competitor_manual_signals.json", "skip": [] } CONFIGEOF
bashpython3 ${CLAUDE_SKILL_DIR}/scripts/competitor_signals.py \ --config ${CLAUDE_SKILL_DIR}/../.tmp/competitor_signals_config.json \ --output ${CLAUDE_SKILL_DIR}/../.tmp/competitor_signals.csv
The tool will:
PRODUCTHUNT_TOKEN is set)10a. Switching Signals (HIGHEST PRIORITY)
10b. Case Study Companies
10c. Testimonial Authors
10d. Product Hunt Activity
10e. HN Discussion
10f. Competitor-Level Analysis
/enrich-company to understand them> "Would you like me to: > 1. Enrich the switching signal leads immediately (highest priority) > 2. Enrich the case study companies and find decision-makers > 3. Cross-reference with data from other signal skills > 4. Scrape additional competitor pages for more signals > 5. Export for manual review first"
| Signal Type | Score | Priority | |---|---|---| | Switching From/To Competitor | 9 | IMMEDIATE — active evaluation | | Competitor Case Study Company | 9 | HIGH — proven buyer | | Competitor Testimonial Author | 8 | HIGH — current/past user | | PH Launch Commenter | 8 | HIGH — actively evaluating | | HN Post Commenter | 7 | MEDIUM — interested in space | | HN Post Author | 6 | MEDIUM — sharing competitor news | | PH Launch Upvoter | 6 | MEDIUM — interested but passive | | Tech Press Mention | 6 | MEDIUM — following the space | | PH Product Maker | 5 | LOW — competitor team member | | Changelog Engager | 5 | LOW — power user or evaluator |
| Column | Description | |--------|-------------| | person_name | Name or username of the person | | company | Company/headline from their profile | | signal_type | Internal signal type code | | signal_label | Human-readable label | | competitor | Which competitor this signal is about | | context | Comment text, case study excerpt, or description | | url | Link to the source (PH comment, HN post, case study page) | | profile_url | Link to the person's profile (PH, HN) | | date | Date of the signal | | signal_score | Weighted score | | source | Product Hunt API, Hacker News, Manual | | engagement | Upvotes/points on the post or comment |
| Source | Cost | Notes | |--------|------|-------| | Product Hunt API | Free | Developer token (may have name redaction) | | Product Hunt Apify | ~$5-10/run | Fallback if API names redacted | | Hacker News | Free | Algolia API | | Manual scraping | Free | Agent scrapes competitor websites | | Typical run | $0-10 | Free if PH API works; $5-10 if using Apify |
Default: 90 days. Competitor launches and case studies have a longer shelf life than Reddit posts. Someone who commented on a competitor's PH launch 60 days ago is still a viable lead.
Other measured skills in the registry, with their headline benchmark lift.