competitor-signals

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.

381 stars

Best use case

competitor-signals is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using competitor-signals should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/competitor-signals/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/packs/lead-gen-devtools/competitor-signals/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/competitor-signals/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How competitor-signals Compares

Feature / Agentcompetitor-signalsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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 `requests` and optionally `python-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:**
1. Navigate to the page using web fetch or Chrome DevTools
2. Extract all customer company names and any associated person names/quotes
3. Note the case study URL for reference

**For each competitor's testimonials page:**
1. Extract: person name, title, company, quote text
2. 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`:
```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

```bash
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

```bash
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:
1. Try Product Hunt API first (if `PRODUCTHUNT_TOKEN` is set)
2. Fall back to Apify PH scraper if API names are redacted
3. Search HN for all competitor names (stories + comments, last 90 days)
4. Load manual signals (case studies, testimonials, press)
5. Detect "switching signals" (highest priority — people saying they're moving to/from a competitor)
6. Deduplicate and score
7. 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 of attention?)

### Step 11: Recommend Next Steps

1. **Switching signals (immediate outreach):**
   - Enrich these people via SixtyFour NOW
   - They're in active evaluation — speed matters
   - Personalize based on what they said ("You mentioned [specific pain]...")

2. **Case study companies (account-based approach):**
   - These companies have budget for this category
   - Use SixtyFour `/enrich-company` to understand them
   - Find the decision-maker (not the person in the case study, who may have left)
   - Outreach angle: "Companies like yours in [industry] are switching to us because..."

3. **PH commenters asking questions:**
   - They're early in evaluation
   - Can reply directly on Product Hunt (public, non-intrusive)
   - Or enrich and reach out privately

4. **Cross-reference with other signals:**
   - If a company appears in competitor case studies AND in job signals (hiring for the role) -> they're invested but possibly scaling beyond the competitor
   - If a person appears in competitor PH comments AND in community signals -> they're deeply researching the space

### Step 12: Ask for Go-Ahead

> "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 Scoring

| 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 |

## Output Schema (Single Sheet)

| 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 |

## Cost Estimates

| 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 |

## Lookback Period

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.

Related Skills

competitor-monitoring-system

381
from gooseworks-ai/goose-skills

Set up and run ongoing competitive intelligence monitoring for a client. Tracks competitor content, ads, reviews, social, and product moves.

github-repo-signals

381
from gooseworks-ai/goose-skills

Extract and score leads from GitHub repositories by analyzing stars, forks, issues, PRs, comments, and contributions. Produces unified multi-repo CSV with deduplicated user profiles. No paid API credits required.

event-signals

381
from gooseworks-ai/goose-skills

Extract leads from conferences, meetups, hackathons, and podcasts by analyzing speaker lists, sponsor lists, hackathon entries, and podcast guests. Discovers events via Sessionize, Confs.tech, Meetup, Luma, ListenNotes, and Devpost. Looks back 90 days and forward 180 days.

community-signals

381
from gooseworks-ai/goose-skills

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.

competitor-intel

381
from gooseworks-ai/goose-skills

Competitor intelligence system. Track competitors across Reddit, Twitter/X, and LinkedIn. Run one-time deep research to create competitor profiles, then automate daily/weekly monitoring with consolidated reports and actionable signals. Reports delivered as markdown files and via email.

competitor-content-tracker

381
from gooseworks-ai/goose-skills

Monitor competitor content across blogs, LinkedIn, and Twitter/X on a recurring basis. Surfaces new posts, trending topics, and content gaps you can own. Chains blog-scraper, linkedin-profile-post-scraper, and twitter-scraper. Use when you want a weekly digest of what competitors are publishing and which topics are generating engagement.

competitor-ad-teardown

381
from gooseworks-ai/goose-skills

Deep-dive analysis of a competitor's ad strategy. Scrapes their Meta + Google ads, reverse-engineers their funnel (ad → landing page → CTA), identifies positioning bets, and produces a strategic teardown. Goes beyond ad-creative-intelligence by analyzing the full conversion path and strategic intent behind each campaign.

competitor-post-engagers

381
from gooseworks-ai/goose-skills

Find leads by scraping engagers from a competitor's top LinkedIn posts. Given one or more company page URLs, scrapes recent posts, ranks by engagement, selects the top N, extracts all reactors and commenters, ICP-classifies, and exports CSV. Use when someone wants to "find leads engaging with competitor content" or "scrape people who interact with [company]'s LinkedIn posts".

signal-detection-pipeline

381
from gooseworks-ai/goose-skills

Detect buying signals from multiple sources, qualify leads, and generate outreach context

seo-content-engine

381
from gooseworks-ai/goose-skills

Build and run an SEO content engine: audit current state, identify gaps, build keyword architecture, generate content calendar, draft content.

outbound-prospecting-engine

381
from gooseworks-ai/goose-skills

End-to-end outbound prospecting: detect intent signals, research companies, find decision-maker contacts, personalize messaging, launch campaign.

event-prospecting-pipeline

381
from gooseworks-ai/goose-skills

Find attendees at conferences/events, research their companies, qualify against ICP, and launch outreach