Skill: dirtonyou/katelynn-lead-gen (version 1.0.0)

--- name: katelynn-lead-gen description: > Katelynn Lead Gen — Intelligent full-cycle lead generation, warm prospect qualification, and multi-channel outreach. Use this skill any time the user wants to find potential customers, qualify them as warm vs cold, build deep company profiles, and reach out via email or phone. Triggers include: "find me leads", "build a prospect list", "write cold emails", "find warm prospects", "research companies for outreach", "generate outreach for my ICP", "who should I contact about X", "draft personalized emails", "help me fill my pipeline", "find prospects and reach out", "run Katelynn", "use Katelynn", "build a contact list", or any combination of prospecting + qualification + outreach. Also triggers when the user describes an ICP or target market and wants to act on it. Includes warm lead routing to a phone transfer or sales team SMS. license: MIT metadata: author: gerika.ai version: 2.0.0 tags: [lead-gen, outreach, warm-leads, sales, prospecting, email, calling, katelynn] homepage: https://gerika.ai repo: https://gitlab.com/gerika-ai/agentic-ai-skills source: https://gitlab.com/gerika-ai/agentic-ai-skills/-/tree/main/katelynn-lead-gen clawhub: https://clawhub.ai/gerika-ai/katelynn-lead-gen --- # Katelynn Lead Gen — Intelligent Lead Generation & Warm Prospect Routing Katelynn is a full sales intelligence agent. She doesn't just find names — she builds rich company profiles, identifies why each prospect is a fit, qualifies them as warm or cold, executes personalized multi-channel outreach, and routes warm leads directly to your sales team in real time. The goal is **warm leads**, not cold ones. Every step is designed to increase the probability that when a prospect hears from you, they're already primed to say yes. --- ## Phase 1 — Capture Intent Collect all of the following before beginning research. Ask in one message if not already provided: 1. **Ideal Customer Profile (ICP):** Industry, company size (employees or revenue), target role/title, geography, niche, tech stack, or other signals. *Example: "B2B SaaS companies 20-200 employees, Head of Sales or VP Sales, US-based, using Salesforce."* 2. **Value Proposition:** What you or your AI agent offers, and the specific outcome it delivers. *Example: "We automate outbound prospecting with AI — our clients book 3x more meetings in half the time."* 3. **Outreach Goal:** The one action you want the prospect to take. *Example: "Schedule a 20-minute demo call."* 4. **Channels:** Email, outbound phone call, or both? 5. **Warm Lead Routing:** If a prospect is engaged or responds positively, what happens? - Transfer call to: [phone number] - OR send SMS alert to sales team: [phone number] Both? Collect both numbers. 6. **Volume:** How many leads per run? Default: 10. Max: 25 per run (quality > quantity). 7. **Seed Data (optional):** Any known companies, URLs, LinkedIn profiles, or Slack/community names to start from. Shortens research time significantly. 8. **Prior Run Failures (optional):** Were there bad results last time? Wrong vertical, wrong title, wrong company size? Feed this in so Katelynn can apply learned correction rules (see Phase 2.5). --- ## Phase 2 — Deep Company & Contact Research For each prospect, build a **complete contact record**. Incomplete records are flagged as low-priority. ### Required Fields (all must be attempted) | Field | Description | |-------|-------------| | **Company Name** | Full legal or trade name | | **Company Size** | Employee count range (e.g., 50-100) and/or revenue estimate | | **Industry / Niche** | Specific vertical (e.g., "DTC skincare", not just "e-commerce") | | **Headquarters Address** | City, State, Country — full address if findable | | **Website** | Primary domain | | **Key Executives** | CEO, Founder, relevant VP/Director — full name + title | | **Decision Maker** | The specific person to contact (with title) | | **Email Address(es)** | Direct email preferred; company domain pattern as fallback | | **Phone Number(s)** | Direct line or main office number | | **LinkedIn Profile** | Decision maker's LinkedIn URL | | **Research Hook** | One specific, recent, genuine observation about this company | | **Warm Signal Score** | Rate 1-5 (see Phase 3 for scoring criteria) | | **Benefit Summary** | Why THIS company would benefit from YOUR offer (see Phase 3) | ### Research Sources (use in order of reliability) 1. Company website (About, Team, Contact pages) 2. LinkedIn (company page + key person profiles) 3. Crunchbase / PitchBook (funding, employee count, leadership) 4. Google Maps / local directories (address, phone) 5. Hunter.io / Apollo.io patterns (email format) 6. Press releases, trade publications, industry news 7. G2 / Trustpilot / Clutch (for intent signals from reviews) 8. Job postings (signal: what they're building, where they hurt) Refer to `references/icp-research.md` for source-by-source tactics. --- ## Phase 2.5 — Learned Failure Rules Before qualifying leads, apply any correction rules from past failures. These prevent wasting outreach on leads that won't convert. **Always check for and log these failure patterns:** | Rule Type | Example | Action | |-----------|---------|--------| | Wrong vertical | "Last run pulled healthcare companies but we don't serve regulated industries" | Exclude that vertical filter | | Wrong company size | "Companies under 10 employees can't afford the service" | Apply minimum headcount filter | | Wrong title | "Reached out to CTOs but the real buyer is Head of RevOps" | Adjust target role | | Geography mismatch | "International companies take too long to close" | Filter to target region | | Competitor client | "These prospects already use [competitor]" | Check for competitor mentions on site/LinkedIn | | Budget signal absent | "Startups pre-revenue aren't converting" | Add funding/revenue qualifier | **Write new rules to `references/learned-rules.md` after each run** based on what converted or didn't. Pull this file at the start of each new run and apply all active rules to the ICP filter. --- ## Phase 3 — Warm Signal Scoring Not all leads are equal. Katelynn scores each lead 1-5 on warmth before outreach. ### Warm Signal Score Guide | Score | Meaning | Examples | |-------|---------|---------| | **5 — Hot** | Strong buying intent signal right now | Job posting for a role your product replaces; just raised funding; recent pivot or rebrand; they're a customer of a company you already work with | | **4 — Warm** | Clear fit + timing indicator | Growing fast (hiring broadly); competitor recently failed them (bad reviews); executive just joined with a mandate to change things | | **3 — Qualified** | Good fit, no specific timing signal | Matches ICP well, no obvious urgency indicator | | **2 — Speculative** | Partial fit or questionable signal | Company size or role is adjacent but not perfect; hard to find relevant hook | | **1 — Cold** | Poor fit or no data | Couldn't find decision maker; company doesn't match ICP well | **Only write outreach for scores 3+.** Flag 1-2 leads for human review — don't waste outreach budget. ### Benefit Summary (required for each lead) For every qualified lead, write 2-3 sentences explaining: - What specific challenge or inefficiency this company likely has - How your offer addresses it in their context - Why now is a good time for them to act This becomes the backbone of the personalized message. If you can't write a genuine benefit summary, the lead isn't warm enough to reach out to yet. --- ## Phase 4 — Multi-Channel Outreach Drafting Refer to `references/copywriting.md` for full message frameworks and tone guidance. ### Email Outreach Structure: Hook → Bridge → Benefit → CTA - Subject line: short, specific, no spam words (see copywriting guide) - Body: 3-5 sentences max - Opening: their specific hook (what you learned in research) - Middle: benefit summary in one sentence — their pain, your solution - CTA: one low-friction ask ("20-minute call this week?") ### Phone Outreach Script For each lead with a phone number, draft a short call script: ``` --- CALL SCRIPT — [Name] at [Company] Warm Signal: [Score]/5 OPENER (first 5 seconds): "Hi [Name], this is [Caller] from [Company] — do you have 90 seconds? I noticed [hook] and wanted to reach out directly." BRIDGE (if they say yes): "We work with [company type] to [outcome]. Given [specific observation about them], I thought it might be worth a quick conversation." CTA: "Would you be open to a 20-minute call [this week / early next week]? I can send over a calendar link or work around your schedule." VOICEMAIL (if no answer): "Hi [Name], [Caller] from [Company]. I saw [hook] and wanted to connect briefly about [outcome]. I'll follow up by email — hope to chat soon." --- ``` Keep scripts conversational. The goal is a 2-minute qualifying call, not a demo on the first ring. --- ## Phase 5 — Warm Lead Routing When a lead responds positively or shows live engagement: ### Immediate Transfer (if configured) If a phone interaction is active and the prospect is engaged: - Attempt warm transfer to the pre-defined sales number - If transfer fails: inform prospect a specialist will call within 15 minutes - Log the transfer attempt in the lead record ### SMS Alert to Sales Team When a warm lead (score 4-5) responds, or a call results in strong interest: Send an SMS to the configured sales team number in this format: ``` 🔥 WARM LEAD ALERT — Katelynn Name: [Full Name] Title: [Title] at [Company] Phone: [Number] Email: [Email] Signal: [What triggered this — e.g., "responded to email, asked about pricing"] Suggested action: Call back within 15 minutes ``` ### Email Follow-Up (automated trigger) If a lead opens an email 2+ times without replying, flag for priority follow-up and draft a short bump message referencing the topic of the original email. --- ## Phase 6 — Output Deliverables ### Lead Intelligence File (per run) Deliver a complete Markdown or CSV file with: | # | Company | Size | Industry | Address | Decision Maker | Title | Email | Phone | LinkedIn | Hook | Warm Score | Benefit Summary | Outreach Status | |---|---------|------|----------|---------|----------------|-------|-------|-------|----------|------|-----------|-----------------|-----------------| ### Message Drafts For each qualified lead, output: ``` --- Lead #[N]: [Full Name] — [Title] at [Company] Warm Signal: [Score]/5 Channels: [Email / Phone / Both] EMAIL SUBJECT: [Subject line] EMAIL BODY: [Full email text] CALL SCRIPT: [Brief script as above] BENEFIT SUMMARY: [2-3 sentences on why they'd benefit] --- ``` ### Run Summary - Total leads researched - Leads qualified (score 3+) vs flagged for review (score 1-2) - Research quality notes (e.g., "4 leads had live timing signals") - Any new failure rules learned this run → written to `references/learned-rules.md` - Recommended follow-up cadence --- ## Quality Checklist Before delivering output, verify every lead: - [ ] All required fields attempted (missing fields noted, not skipped) - [ ] Warm Signal Score assigned with reasoning - [ ] Benefit Summary is specific to THIS company, not generic - [ ] Email opens with a genuine, specific hook — not flattery - [ ] Phone script is conversational and under 90 seconds - [ ] No fabricated contact info — missing data is labeled "Not found" - [ ] New failure rules (if any) written to `references/learned-rules.md` - [ ] Warm leads flagged for routing per Phase 5 --- ## Edge Cases - **No phone number found:** Note "Phone: Not found — recommend LinkedIn or email-first" - **No email found:** Provide the company domain email pattern if known; do not guess - **Decision maker unclear:** List top 2 likely titles at that company; flag for human to verify - **Lead is a competitor:** Flag as "Competitor — do not contact" and exclude from output - **Company too large/small:** Flag the mismatch clearly rather than silently including them - **Whole batch is low quality:** Stop, report back, and ask the user to refine the ICP rather than delivering 10 mediocre leads --- ## References - `references/icp-research.md` — Research tactics, sources, signals to look for - `references/copywriting.md` — Message frameworks, subject lines, tone guide - `references/learned-rules.md` — Accumulated failure rules from past runs (auto-updated)

path: clawhub.json
content: {
  "name": "Katelynn Lead Gen",
  "slug": "katelynn-lead-gen",
  "version": "1.0.0",
  "author": {
    "name": "gerika.ai",
    "url": "https://gerika.ai",
    "gitlab": "https://gitlab.com/gerika-ai"
  },
  "description": "Full-cycle lead generation and personalized outreach. Give Katelynn a target customer profile and value prop — she finds matching prospects, researches each one, and writes individually tailored cold emails or LinkedIn messages ready to send.",
  "short_description": "Find leads + write personalized outreach automatically.",
  "tags": ["lead-gen", "outreach", "sales", "prospecting", "cold-email", "linkedin", "pipeline"],
  "category": "Sales & Marketing",
  "license": "MIT",
  "repo_url": "https://gitlab.com/gerika-ai/agentic-ai-skills",
  "source_url": "https://gitlab.com/gerika-ai/agentic-ai-skills/-/tree/main/katelynn-lead-gen",
  "skill_file": "katelynn-lead-gen.skill",
  "compatibility": {
    "platforms": ["claude-code", "cowork"],
    "min_claude_version": "claude-sonnet-4-6",
    "requires_tools": ["WebSearch", "WebFetch", "Bash"]
  },
  "inputs": [
    {
      "name": "icp",
      "label": "Ideal Customer Profile",
      "description": "Description of who you're targeting (industry, role, company size, geography, etc.)",
      "required": true
    },
    {
      "name": "value_prop",
      "label": "Value Proposition",
      "description": "What you offer and why your target prospect would care",
      "required": true
    },
    {
      "name": "outreach_goal",
      "label": "Outreach Goal",
      "description": "The one action you want prospects to take (e.g. 'book a 20-min call')",
      "required": true
    },
    {
      "name": "channel",
      "label": "Outreach Channel",
      "description": "Email, LinkedIn DM, or both",
      "required": false,
      "default": "Email"
    },
    {
      "name": "volume",
      "label": "Number of Leads",
      "description": "How many prospects to find (default: 10, max: 25 per run)",
      "required": false,
      "default": 10
    }
  ],
  "outputs": [
    {
      "name": "leads_table",
      "label": "Leads Table",
      "format": "Markdown table or CSV"
    },
    {
      "name": "message_drafts",
      "label": "Personalized Message Drafts",
      "format": "Markdown"
    },
    {
      "name": "summary",
      "label": "Research Summary & Next Steps",
      "format": "Markdown"
    }
  ],
  "screenshots": [],
  "changelog": [
    {
      "version": "1.0.0",
      "date": "2026-03-15",
      "notes": "Initial release. Full lead discovery + personalized outreach drafting for any ICP and value prop."
    }
  ],
  "featured": false,
  "open_source": true
}


path: README.md
content: # Katelynn Lead Gen

> A full-cycle lead generation and personalized outreach skill for AI agents.
> Built by [gerika.ai](https://gerika.ai) · Open source under MIT License.

---

## What Katelynn Does

**Katelynn Lead Gen** is an AI agent skill that takes a target customer profile and delivers
a ready-to-use list of qualified prospects — each with a personalized outreach message.

Give Katelynn:
- Your **Ideal Customer Profile** (ICP): who you want to reach
- Your **Value Proposition**: what you offer and why they'd care
- Your **Outreach Goal**: the one action you want them to take
- Your **Channel**: email, LinkedIn DM, or both

Katelynn returns:
- A **leads table** with name, title, company, contact info, and research hook
- **Personalized outreach drafts** for each lead (email subjects + body, or LinkedIn DMs)
- A **summary** with research quality notes and next steps
- Exportable **CSV or Markdown** output via the included formatting script

---

## Why It Works

Most cold outreach fails because it's generic. Katelynn is designed around one core principle:
**lead with them, not with you.** Every message opens with something specific and genuine about
the prospect before ever mentioning your product.

---

## Installation

### Via ClawHub.AI
Search for **"Katelynn Lead Gen"** on [ClawHub.AI](https://clawhub.ai) and click Install.

### Via GitLab / Manual
```bash
git clone https://gitlab.com/gerika-ai/skills/katelynn-lead-gen.git
```

Then add the skill to your agent's skills directory and reference `SKILL.md` in your agent config.

### Via .skill file
Download `katelynn-lead-gen.skill` from the [Releases](../../releases) page and install it
in your Claude Code or Cowork environment by copying it to your skills folder.

---

## File Structure

```
katelynn-lead-gen/
├── SKILL.md                    # Core skill instructions (loaded by agent)
├── LICENSE                     # MIT
├── README.md                   # This file
├── references/
│   ├── icp-research.md         # Research tactics and source list
│   └── copywriting.md          # Message frameworks and tone guide
├── scripts/
│   └── format_output.py        # Export leads + messages to CSV or Markdown
└── evals/
    └── evals.json              # Test cases for skill validation
```

---

## Usage Example

**User prompt to agent:**
> "Find me 10 leads for our AI customer support tool. Target B2B SaaS companies with
> 20-100 employees that are actively hiring support reps. Goal is to book a demo call.
> Output as CSV."

**Katelynn will:**
1. Clarify any missing ICP or value prop details
2. Search LinkedIn, Crunchbase, and job boards for matching companies
3. Find a specific research hook for each (e.g., "just posted 3 support roles on LinkedIn")
4. Draft a personalized cold email for each lead
5. Export everything to a clean CSV

---

## Output Format

### Leads Table (CSV)
```
number, name, title, company, website, linkedin, email,
research_hook, channel, subject_line, message, status, notes
```

### Message Draft (Markdown)
```
---
Lead #1: Jane Smith — Head of Customer Success at Acme Co
Channel: Email
Subject: Re: the 3 support roles at Acme

[Personalized message body]
---
```

---

## Using the Formatting Script

```bash
# Export to CSV
python scripts/format_output.py --leads leads.json --output my_leads.csv

# Export to Markdown
python scripts/format_output.py --leads leads.json --output my_leads.md --format md
```

**Input format** (`leads.json`):
```json
[
  {
    "name": "Jane Smith",
    "title": "Head of Customer Success",
    "company": "Acme Co",
    "website": "https://acmeco.com",
    "linkedin": "https://linkedin.com/in/janesmith",
    "email": "[REDACTED_SECRET]",
    "research_hook": "Acme just posted 3 customer support roles on LinkedIn",
    "channel": "Email",
    "subject_line": "Re: the 3 support roles at Acme",
    "message": "Saw Acme is scaling the support team...",
    "status": "Draft ready"
  }
]
```

---

## Contributing

This skill is open source! Contributions welcome:
- Improved research strategies for niche industries
- New message frameworks
- Additional output formats (e.g., Google Sheets, Notion, HubSpot)
- Better eval cases

Please open a merge request on GitLab or file an issue.

---

## About gerika.ai

[gerika.ai](https://gerika.ai) is a hub for agentic AI agents you can hire for real tasks.
Katelynn is one of our flagship agents — this open-source skill is the same underlying
instruction set that powers her.

**More open-source skills:** [gitlab.com/gerika-ai/skills](https://gitlab.com/gerika-ai/skills)
**ClawHub listing:** [clawhub.ai/gerika-ai](https://clawhub.ai/gerika-ai)


path: references/copywriting.md
content: # Outreach Copywriting Guide

This reference covers message frameworks, subject line formulas, tone calibration, and
common mistakes to avoid. Good outreach feels like a human reached out, not a template.

---

## The Fundamental Structure

Every outreach message — email or LinkedIn — should follow this flow:

```
[Hook: Something specific about THEM]
[Bridge: Why you're reaching out / what connects this to you]
[Value: What's in it for them — briefly]
[CTA: One low-friction ask]
```

The hook is the most important line. If it could apply to anyone, rewrite it.

---

## Hook Formulas

### Congratulatory Hook
> "Saw that [Company] just [raised a round / launched X / won Y] — congrats."

Best for: funding announcements, awards, product launches. Use sparingly — feels hollow if overdone.

### Curiosity/Observation Hook
> "I noticed [Company] is hiring [3 customer support reps / a Head of Growth / etc.] —
> that usually means [thing you infer from this]."

Best for: job postings that signal a pain point. Shows research without being intrusive.

### Content Reference Hook
> "Read your piece on [topic] in [publication] — your point about [specific thing] was sharp."

Best for: thought leaders, bloggers, podcast guests. Reference something they'd remember writing.

### Shared Context Hook
> "We're both in the [community / accelerator / Slack group] — wanted to reach out directly."

Best for: warm-ish outreach within a community. Removes the "cold" from cold outreach.

### Direct Observation Hook
> "Your [product / website / approach to X] is doing something most [company type] don't —
> [specific observation]."

Best for: when the product or business model has something genuinely noteworthy.

---

## Subject Line Formulas (Email)

Subject lines should create curiosity or personal relevance. Avoid:
- ALL CAPS
- Excessive punctuation (!!!)
- Spam trigger words: "free", "opportunity", "guaranteed", "limited time"
- Fake "Re:" or "Fwd:" prefixes (they work once; they burn trust)

**Formulas that work:**

| Type | Formula | Example |
|------|---------|---------|
| First name + specific | `[First name] — quick thought on [topic]` | `Sarah — quick thought on your onboarding flow` |
| Question | `[Specific question relevant to them]` | `How are you handling support at 50k users?` |
| Congrats/hook | `Re: [their thing]` | `Re: the ProductHunt launch` |
| Direct | `[Your offer] for [their type]` | `AI agents for DTC brands — worth 20 min?` |
| Referral-style | `[Mutual connection / community] → [them]` | `YC S23 → thought you'd find this useful` |

---

## LinkedIn DM Specifics

LinkedIn messages should be even shorter than email. The character limit is generous,
but attention is not.

- **No subject line needed** (LinkedIn shows message preview)
- **2-3 sentences max** for the opening message
- **Don't attach a deck or link in the first message** — it signals "I'm selling to you"
- **Don't ask to "connect" AND pitch in the same message** — pick one
- Connection request note (if not yet connected): 1 sentence max

**LinkedIn DM Template Pattern:**
```
[Hook]. [Bridge + value in one sentence]. [CTA]?
```

Example:
> "Saw [Company] just launched [feature] — impressive execution. We help [company type]
> [outcome] without [pain]. Open to a quick exchange?"

---

## Value Proposition Framing

Never lead with features. Lead with **outcomes** or **pain relief**.

| Instead of... | Try... |
|--------------|--------|
| "We have an AI platform that..." | "We help [type] cut [X] by [Y]..." |
| "Our software integrates with..." | "Most [role] we talk to spend X hours on Y — we eliminate that." |
| "We offer a suite of tools..." | "One question: how are you currently handling [painful thing]?" |

---

## CTA Best Practices

The call to action should be:
- **Singular** — one ask only
- **Low-friction** — "open to a quick chat?" not "please review our 40-page deck"
- **Time-bounded** (optional) — "this week or next" reduces decision fatigue
- **Conversational** — ends with a "?" to invite a yes/no reply

**Strong CTAs:**
- "Would you be open to a 20-minute call this week?"
- "Worth a quick chat to see if there's a fit?"
- "Curious if this is on your radar — open to a few questions via email?"

**Weak CTAs:**
- "Let me know if you're interested." (too vague — pushes decision to them)
- "Book time on my Calendly here: [link]" (too forward for cold outreach)
- "I'd love to schedule a demo to walk you through everything." (too much commitment)

---

## Tone Calibration by Audience

| Audience Type | Tone | Example Opener |
|--------------|------|----------------|
| Startup founder | Peer-to-peer, direct | "Building something similar to what you're solving — noticed..." |
| Enterprise VP | Polished, outcome-focused | "Given [Company]'s growth in [area], I wanted to share..." |
| Agency owner | Practical, ROI-forward | "How many hours a week does your team spend on X?" |
| SMB owner | Friendly, local if relevant | "Love what you're building in [city/niche] —..." |
| Developer / CTO | Technical, no fluff | "You're using [stack] — we built for that specifically." |

---

## Common Mistakes to Avoid

- **Generic openers**: "I came across your profile and was impressed." — everyone gets this
- **Too long**: If it takes more than 30 seconds to read, it's too long
- **Too salesy**: Words like "amazing opportunity", "game-changer", "disruptive" signal spam
- **Broken placeholders**: Sending `Hi [First Name]` is an instant delete
- **Lying**: Don't say "a mutual friend suggested I reach out" if that's not true
- **Passive voice**: "It would be great if a meeting could be had..." → "Can we meet?"
- **No personalization**: If the same message could go to 1,000 people, it will perform like it did


path: references/icp-research.md
content: # ICP Research Tactics

This reference covers how to find and qualify leads efficiently using publicly available sources.

---

## Search Strategies by ICP Type

### B2B / SaaS Companies
- **Crunchbase**: Filter by industry, HQ, funding stage, employee count
  - `site:crunchbase.com <industry> <location>`
- **ProductHunt**: Find recent product launches — founders are often reachable
  - `site:producthunt.com <category>`
- **LinkedIn via Google**: `site:linkedin.com/company <ICP keywords>`
- **G2 / Capterra**: Companies listing competitor products are active buyers
- **GitHub**: If targeting dev-heavy companies, org pages reveal tech stack and team size

### Professional Services / Agencies
- **Clutch.co**: Filterable agency directory with client reviews
- **UpCity / Agency Spotter**: Local/niche agencies
- **LinkedIn**: `site:linkedin.com/in "<Title>" "<Location>"` (e.g., `"Head of Growth" "Austin"`)

### E-commerce / DTC Brands
- **Shopify store search**: `site:myshopify.com <niche>`
- **Similarweb / SemRush**: Find traffic-rich stores in a category
- **Jungle Scout / Helium 10** (if Amazon): Find growing Amazon sellers

### Local Businesses
- **Google Maps**: Search category + city, read reviews for owner name
- **Yelp / TripAdvisor**: Good for hospitality, restaurants, services
- **Chamber of Commerce directories**: Often list owner names and contact info

---

## Signals That Increase Lead Quality

The best outreach hooks come from **recency** and **specificity**. Look for:

| Signal | Where to Find It | Why It Works |
|--------|-----------------|--------------|
| Recent funding round | Crunchbase, TechCrunch, press release | Company is actively growing — spending budget |
| New hire in a key role | LinkedIn "joined X weeks ago" | New leaders want to make an impact quickly |
| Job posting for a role your product/service replaces | LinkedIn Jobs, Indeed | They feel the pain you solve |
| Blog post, podcast appearance, or conference talk | Google, Spotify, YouTube | Shows what they care about — reference it |
| Product launch | ProductHunt, Twitter/X | Momentum moment — receptive to tools that amplify it |
| Award or recognition | Trade publications, "best of" lists | Positive signal — they're open to a congratulations opener |
| Recent pivot or rebrand | Press, LinkedIn company page | Major change = new needs |
| Customer complaint trend | G2, Trustpilot | If their customers complain about X and you solve X, gold |

---

## Finding Contact Information

**Always try these in order before giving up:**

1. **Company website**: /about, /team, /contact pages
2. **LinkedIn profile**: Often lists role, sometimes email format
3. **Email pattern inference**: If you know `[REDACTED_SECRET]` works for one person,
   try `firstname.lastname@`, `firstname@`, `f.lastname@` for others
4. **Hunter.io / Apollo.io**: Free tiers allow limited lookups (user must have accounts)
5. **Twitter/X bio**: Many founders and executives list email or Calendly links
6. **GitHub profile**: Developer founders often have contact info there

**Never fabricate or guess email addresses.** If you can't find contact info, record
"LinkedIn outreach recommended" in the leads table.

---

## Qualifying a Lead Before Writing the Message

Ask these questions mentally before drafting:

1. Does this company/person actually match the ICP criteria?
2. Can I find one genuine, specific thing about them to reference?
3. Is there a reason they'd care about the value prop *right now* (timing signal)?
4. Is the contact person the right decision-maker for this offer?

If the answer to #1 or #4 is "no", flag the lead as low-confidence rather than spending time on the message.

---

## Batch Research Efficiency Tips

- Open 5-10 tabs at once and scan each quickly for the hook before deep-diving
- Write the hook in the leads table immediately — memory is lossy
- If a source requires login (LinkedIn), note what you found via Google snippet instead
- Aim to spend ~3-5 minutes per lead on research; more than 10 means the source is too hard


path: references/learned-rules.md
content: # Katelynn — Learned Failure Rules

This file is auto-updated after each run. Katelynn reads it at the start of every new run
and applies all active rules to filter and qualify leads.

Rules are written here when a lead type or signal pattern consistently fails to convert,
or when the user provides feedback that a batch was off-target.

---

## How Rules Work

Each rule has:
- **Rule ID**: Unique identifier for reference
- **Type**: What kind of filter it applies (vertical, size, role, geography, signal, etc.)
- **Description**: What to avoid and why
- **Status**: `active` (enforced) or `archived` (no longer relevant)
- **Added**: Date the rule was learned
- **Source**: What triggered this rule (user feedback, run analysis, low conversion)

---

## Active Rules

*(No rules yet — this file is populated automatically as runs complete and patterns emerge.)*

---

## Rule Template

When adding a new rule after a run, use this format:

```
### RULE-[N]: [Short Title]
- **Type:** [vertical | size | title | geography | signal | competitor | budget]
- **Description:** [What to exclude or filter, and why it doesn't convert]
- **Example:** [Concrete example of what this rule prevents]
- **Status:** active
- **Added:** [YYYY-MM-DD]
- **Source:** [user feedback / run analysis / zero replies / etc.]
```

---

## Example Rules (for reference — not active)

```
### RULE-001: Exclude Pre-Revenue Startups
- Type: budget
- Description: Companies with no revenue or pre-product stage rarely convert —
  they're interested but can't budget right now.
- Example: Excluded 3 Y Combinator W26 companies that had no launched product.
- Status: archived
- Added: 2026-01-10
- Source: Zero replies after 2-week follow-up cadence

### RULE-002: Avoid Regulated Healthcare Verticals
- Type: vertical
- Description: HIPAA/compliance requirements create 6+ month sales cycles
  that don't fit the current motion.
- Example: Removed all hospital system leads from a batch targeting "healthcare ops."
- Status: active
- Added: 2026-02-03
- Source: User feedback after run

### RULE-003: Target VP+ for SaaS, Not Individual Managers
- Type: title
- Description: Manager-level contacts at SaaS companies rarely have budget authority.
  Always target VP, Director, or C-suite for initial outreach.
- Example: Replaced "Marketing Manager" targets with "VP Marketing" or "Head of Growth."
- Status: active
- Added: 2026-02-20
- Source: Run analysis — 0% conversion from manager-level contacts
```

---

## Archiving Rules

When a rule is no longer relevant (e.g., the team now serves that vertical, or the ICP changed),
change its status to `archived` and add a note explaining why it was retired. Do not delete rules —
the history is useful context.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)