Competitor Signals
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.
When to Use
- User wants to find people engaging with competitor products
- User mentions Product Hunt launches, competitor press coverage, or competitor case studies
- User wants to find people switching from or evaluating competitor products
- User asks "who is using [competitor]" or "who is looking at alternatives to [competitor]"
- User wants to monitor competitor activity for lead generation
- User has a clear list of competitors and wants to mine their audience
Prerequisites
- Python 3.9+ with
requestsand optionallypython-dotenv - Product Hunt developer token (free, optional — get at
api.producthunt.com/v2/oauth/applications) - Apify API token in
.env(fallback for PH if API names are redacted, optional) - Working directory: the project root containing this skill
Phase 1: Collect Context
Step 1: Gather Competitor Information
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)"
Step 2: Discover Competitors (if user needs help)
If the user doesn't have a complete competitor list, help them discover competitors:
2a. Product Hunt search:
- Search producthunt.com for the user's product category
- Note: PH doesn't have a great search API — use web search: "site:producthunt.com [product category]"
2b. G2/Capterra category pages:
- Search: "[product category] G2" or "[product category] Capterra"
- These pages list all competitors in a category with rankings
2c. "Alternatives to" sites:
- Search: "[known competitor] alternatives"
- Sites like alternativeto.net, slant.co, stackshare.io list competitors
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)?"
Step 3: Find Product Hunt Slugs
For each competitor, find their PH launches:
- Search: "site:producthunt.com [competitor name]"
- Or browse:
producthunt.com/products/[competitor-name] - Note the slug from the URL:
producthunt.com/posts/SLUG - A competitor may have multiple launches (initial launch + feature launches)
Step 4: Identify Competitor Web Pages to Scrape
For each competitor, identify pages the agent should scrape:
Case studies page: [competitor].com/customers or [competitor].com/case-studies
- Extract: company names, logos, quotes, person names, titles
- These are PROVEN BUYERS in the category
Testimonials page: Often on the homepage or a dedicated page
- Extract: person name, title, company, quote
- These are current users who publicly endorsed the competitor
Blog: [competitor].com/blog
- Guest posts by customers are case studies in disguise
- "How [Company X] uses [Competitor]" = case study
Present all discovered pages to the user for review.
Phase 2: Agent-Driven Scraping
Step 5: Scrape Competitor Websites
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:
- Navigate to the page using web fetch or Chrome DevTools
- Extract all customer company names and any associated person names/quotes
- Note the case study URL for reference
For each competitor's testimonials page:
- Extract: person name, title, company, quote text
- These are high-value signals — these people actively chose to endorse the competitor
Save all scraped data to ${CLAUDE_SKILL_DIR}/../.tmp/competitor_manual_signals.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
}
]
Step 6: Check Tech Press
Search for recent articles about competitors:
- "[competitor] TechCrunch"
- "[competitor] The New Stack"
- "[competitor] InfoQ"
- "[competitor] DevOps.com"
- "[competitor] launch announcement"
- "[competitor] raises funding"
For articles found:
- Note the article URL and key companies/people mentioned
- If the article has comments, check for people expressing opinions
- Add notable findings to the manual signals JSON
Phase 3: Execute Tool
Step 7: Save Config
cat > ${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
Step 8: Run the Tool
python3 ${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:
- Try Product Hunt API first (if
PRODUCTHUNT_TOKENis set) - Fall back to Apify PH scraper if API names are redacted
- Search HN for all competitor names (stories + comments, last 90 days)
- Load manual signals (case studies, testimonials, press)
- Detect "switching signals" (highest priority — people saying they're moving to/from a competitor)
- Deduplicate and score
- Export CSV with switching signals highlighted
Phase 4: Analyze & Recommend
Step 10: Analyze Results
10a. Switching Signals (HIGHEST PRIORITY)
- These are people who publicly said they're switching from or evaluating alternatives to a competitor
- List every switching signal with full context
- These leads should be contacted IMMEDIATELY — they're in active evaluation
- Outreach angle: "I noticed you mentioned looking for alternatives to [competitor] — here's how we compare"
10b. Case Study Companies
- These are PROVEN BUYERS in the category
- They've already committed budget to the problem space
- The decision-maker already said yes once — they'll consider alternatives if you offer something better
- Recommend enriching these companies via SixtyFour to find the current decision-maker
10c. Testimonial Authors
- Current users of the competitor who are vocal about it
- They may be satisfied (hard sell) OR they may have moved on since the testimonial
- Good for understanding what the competitor does well (competitive intel)
- If the testimonial mentions specific pain points or limitations, that's an opening
10d. Product Hunt Activity
- Commenters asking questions = evaluating the category
- Commenters with negative feedback = potentially dissatisfied
- Upvoters = interested in the space (weaker signal, higher volume)
10e. HN Discussion
- Commenters engaging with competitor stories = following the space
- People sharing experiences (positive or negative) = active users or evaluators
10f. Competitor-Level Analysis
- Which competitor generates the most signals? (largest audience = most opportunity)
- Which competitor has the most negative signals? (weakest competitor = easiest to displace)
- Are there any surprises? (unknown competitor getting a lot