Template. Replace placeholder values like {{YOUR_NAME}}, {{CONTENT_DIR}}, etc. with your own before using.
Marketing
Dream-100 Prospecting
Deep-research 5-10 LinkedIn prospects in parallel using AI agents. Pulls company intel, competitors, tech stack, funding, headcount, news, and case study matching — then writes personalized outreach using a 4-beat message framework.
MCP Required. This skill needs Serper, Exa, Apify (optional) to run.
Save to
~/.claude/skills/dream-100/SKILL.mdSKILL.md
---
name: dream-100
description: "Deep-research prospecting on LinkedIn contacts. Parallel agent research producing sales rep reports: company intel, competitors, tech stack, funding, headcount, news, case study matching, personalized outreach drafting. Triggers on: dream 100, prospect research, linkedin research, sales research, contact research."
---
# Dream-100 — Deep Prospect Research
## Setup
This skill requires 3 MCP servers connected to Claude Code:
- **Serper** (required) — Google Search + News. Get an API key at serper.dev.
- **Exa** (required) — AI-powered web search. Get an API key at exa.ai.
- **Apify** (optional) — LinkedIn scraping + BuiltWith tech stack detection. Falls back to Serper if unavailable.
After copying this file, save it to `~/.claude/skills/dream-100/SKILL.md`.
Then create a case study reference file at `~/.claude/skills/dream-100/references/case-study-matching.md` — a template is included at the bottom of this file.
Finally, replace `{{SKILL_DIR}}` below with your actual skill path (e.g., `/Users/yourname/.claude/skills/dream-100`).
---
## Step 0 — Intake
Use `AskUserQuestion` to collect:
**Q1: LinkedIn URLs** — 5-10 profile URLs (`linkedin.com/in/`). Reject company pages. Strip tracking params.
**Q2: Research Depth**
| Depth | Time | Includes |
|-------|------|----------|
| **Quick** | ~1 min | Contact, company basics, 2 competitors, case study match |
| **Standard** | ~2-3 min | Quick + tech stack, funding, headcount, news, competitor differentiation |
| **Deep** | ~5-6 min | Standard + LinkedIn content, 4 competitors, job postings, G2 reviews, decision makers, content themes |
Default: Standard
**Q3: Custom context (optional)** — Product/service, angle, ICP criteria.
---
## Step 1 — Verify Tools
**Required:** `mcp__serper__google_search`, `mcp__serper__google_search_news`, `mcp__exa__web_search_exa`
**Preferred:** `mcp__apify__harvestapi--linkedin-profile-scraper`, `mcp__apify__builtwith--builtwith-official-technology-scraper`
If Serper AND Exa unavailable → stop.
Load references (pass file paths to agents, not contents):
- `{{SKILL_DIR}}/references/case-study-matching.md`
---
## Step 2 — Spawn Research Agents
**1 agent per URL**, all parallel. Config: `general-purpose`, `bypassPermissions`
### Agent Prompt Template
```
You are a Dream-100 research agent. Research ONE LinkedIn contact.
Research Depth: {research_depth}
- Quick: Skip B-E. Do A, F (2 competitors only), H, I.
- Standard: All steps A-I.
- Deep: All steps A-I + J-O.
Target: {url}
Context: {custom_context}
## Steps
### A. Contact & Company Info
If Apify available:
`mcp__apify__harvestapi--linkedin-profile-scraper` with {"urls": ["{url}"]}
If Apify unavailable, use Serper:
- `"{url_slug} linkedin"` — parse snippet for name, title, company
- `"{company_name} website"` — find domain
- `"{company_name} site:linkedin.com/company/"` — find company page
Extract: full name, job title, company name, company domain, company LinkedIn URL.
### B-E. Run in Parallel (Standard+)
Steps B, C, D, E are independent — execute all queries concurrently.
### B. Tech Stack
If BuiltWith available:
`mcp__apify__builtwith--builtwith-official-technology-scraper` with {"startDomains": ["{domain}"]}
If unavailable, Serper:
- `"{company_name} tech stack"`
- `"{domain} technologies"`
Categorize into:
- **CRM** (Salesforce, HubSpot, Pipedrive, etc.)
- **Sales/outbound** (Outreach, Salesloft, Apollo, Instantly, etc.)
- **Marketing automation** (Marketo, Pardot, Mailchimp, etc.)
- **Analytics** (Google Analytics, Mixpanel, Amplitude, FullStory, etc.)
- **Other notable** (Stripe, Segment, Intercom, etc.)
If no CRM or sales tools detected, note as **opportunity**.
### C. Funding
Serper queries:
- `"{company_name}" funding raised`
- `"{company_name}" site:techcrunch.com OR site:crunchbase.com`
- `"{contact_name}" {company_name} investors`
Extract:
- Total funding raised (or "bootstrapped" if none)
- Latest round (amount, date, series)
- Key investors
- Valuation if available
### D. Headcount
Serper + Exa queries:
- `"{company_name}" employees site:linkedin.com`
- `"{company_name}" team size hiring`
- `"{company_name}" careers jobs`
Extract:
- Current headcount (or estimate range)
- Growth trajectory (YoY %, "grew from X to Y")
- Which departments are hiring
- Notable hires mentioned in news
### E. News
Serper News:
- `"{company_name}"` (tbs: "m" for past month, "y" for past year if no recent)
- `"{contact_name}" {company_name}`
Extract 3-5 items: headline, date, key takeaway (1 sentence).
### F. Company Intelligence
Serper + Exa for:
1. **Problem they solve** — 1 sentence
2. **How they solve it / unique approach** — 1 sentence
3. **2 competitors** — Search: `"{company_name} competitors"`, `"{company_name} alternatives"`
- Find each competitor's LinkedIn company page
4. **TAM** — 2 lines, cite source. Search: `"{industry} market size"`
### G. Competitor Differentiation (Standard+)
For each competitor, research:
- Target market
- Key differentiator vs prospect
- Why choose competitor over prospect
- Why choose prospect over competitor
Queries:
- `"{competitor_name}" vs "{company_name}"`
- `"{competitor_name}" features pricing`
- `"{competitor_name}" target market`
### H. Case Study Matching
Use the case study data from the reference (loaded in Step 1).
Match based on: industry, company stage, deal size, audience reachability.
Output: case study name, match reason (1 sentence), key metric, URL.
### I. Save Results
Save to ~/Downloads/dream100_result_{slug}.json
## Deep Research Additions (Deep only)
Steps J, L, M, N, O are independent — execute in parallel. Step K depends on F.
### J. LinkedIn Content
Serper: "{contact} site:linkedin.com/posts"
Extract: themes, tone, engagement, notable posts.
### K. Expanded Competitors (4 total)
Add 2 more competitors with funding, headcount, pricing, key differences.
### L. Job Postings
Serper: "{company} careers site:linkedin.com", "{company} hiring site:greenhouse.io"
Extract: roles, seniority, what it signals about priorities.
### M. G2/Reviews
Serper: "{company} site:g2.com", "{company} reviews"
Extract: rating, praise, complaints.
### N. Decision Makers
Serper: "{company} VP Sales OR CRO site:linkedin.com"
Extract: other execs (name, title, LinkedIn).
### O. Content Themes
Exa: "{company} blog"
Extract: topics, positioning, target audience.
## Rules
- Run autonomously, no questions
- Save JSON even on partial failure (null + note for failed fields)
- 4 second max-time on curl calls
- No direct LinkedIn scraping — use Apify or Serper cached results only
```
### JSON Output Schema
```json
{
"contact": {
"name": "Full Name",
"title": "Job Title",
"linkedin_url": "https://linkedin.com/in/...",
"company": "Company Name",
"company_domain": "company.com",
"company_linkedin": "https://linkedin.com/company/..."
},
"tech_stack": {
"crm": ["HubSpot"] or ["not found"],
"sales_outbound": ["Outreach", "Apollo"] or ["not found"],
"marketing_automation": ["Marketo"],
"analytics": ["GA4", "Mixpanel"],
"other_notable": ["Stripe", "Segment"]
},
"funding": {
"total_raised": "$3.2M" or "Bootstrapped",
"latest_round": { "amount": "$3.2M", "date": "2025-03", "series": "Seed" },
"investors": ["Investor A", "Investor B"],
"valuation": "$X" or "unknown"
},
"headcount": {
"current": "15-30 employees",
"growth": "+200% YoY (from 5 to 15)",
"hiring_departments": ["Engineering", "Sales"],
"notable_hires": ["Jane Doe joined as CRO (Nov 2025)"]
},
"recent_news": [
{ "headline": "Company Raises $3.2M Seed", "date": "2025-03-11", "takeaway": "Funding to scale core product" }
],
"intelligence": {
"problem_solved": "One sentence describing the problem.",
"unique_approach": "One sentence describing how they solve it differently.",
"competitors": [
{
"name": "Competitor Name",
"linkedin_url": "https://linkedin.com/company/...",
"target_market": "Who they sell to",
"key_differentiator": "What makes them different",
"why_choose_them": "Reason a buyer picks the competitor",
"why_choose_prospect": "Reason a buyer picks the prospect instead"
}
],
"tam": "Market size and growth rate.\nSource citation."
},
"case_study_match": {
"name": "Case Study Name",
"reason": "Why this case study is relevant to this prospect",
"key_metric": "The most compelling result to reference",
"url": "https://yoursite.com/case-study/..."
},
"deep_research": {
"linkedin_content": {
"themes": ["topic1", "topic2"],
"tone": "thought leader / casual / technical",
"engagement": "high / medium / low",
"notable_posts": ["Description of notable post"]
},
"expanded_competitors": [
{ "name": "Competitor 3", "funding": "$X", "headcount": "X", "pricing": "...", "key_difference": "..." }
],
"job_postings": {
"roles_hiring": ["Senior Backend Engineer", "AE"],
"priorities_signal": "What their hiring tells you about their priorities",
"team_growth_areas": ["Engineering", "Sales"]
},
"reviews": {
"g2_rating": "4.5/5",
"common_praise": ["What users love"],
"common_complaints": ["What users complain about"]
},
"other_decision_makers": [
{ "name": "Name", "title": "Title", "linkedin_url": "..." }
],
"content_themes": {
"blog_topics": ["Topic 1", "Topic 2"],
"messaging_positioning": "How they position themselves",
"target_audience": "Who their content speaks to"
}
}
}
```
---
## Step 3 — Aggregate Results
Read `~/Downloads/dream100_result_*.json` files. Check for failures. Offer to retry failed contacts.
---
## Step 4 — Generate Report
Save to `~/Downloads/dream100_report_{timestamp}.md`
For each contact include:
- Quick Reference Card (LinkedIn, company, case study match)
- Funding & Headcount tables
- Tech Stack (flag opportunities)
- Recent News
- Company Intelligence + Competitor Differentiation
- Outreach Notes (case study angle, tech angle, competitive landscape, pain point, funding context)
---
## Step 5 — Present Summary
Show summary table:
| # | Contact | Company | Funding | Headcount | Growth | CRM | Case Study |
|---|---------|---------|---------|-----------|--------|-----|------------|
Prioritize by: funding stage, growth rate, CRM gaps, recent GTM hires.
Ask: **"Want me to draft personalized outreach messages? If yes, tell me your offer."**
---
## Step 6 — Draft Messages (Optional)
### 6A. Collect Offer
Ask for specific offer (e.g., "Free audit", "$1 to start", "3 meetings or don't pay").
### 6B. Write Messages — 4 Beats
Each message flows like a **thought you're sharing**, not a pitch you're delivering.
---
#### Beat 1: Strategic Observation (not surface-level research)
Open with an insight about their business that shows you understand their **positioning**, not just their facts.
**Bad (surface-level):**
> "Saw you raised $3.2M from General Catalyst — congrats!"
**Good (strategic):**
> "The thing that stood out about {company} isn't the technology — it's the {unique_positioning}. Everyone else in {industry} sells '{common_pitch}.' You're selling '{their_differentiated_pitch}.' That's a different conversation entirely."
---
#### Beat 2: Why It Matters (the "so what")
Connect the observation to a real challenge or opportunity they face. Show you understand their competitive landscape.
**Example:**
> "{competitor_1} has ${competitor_1_funding}, {competitor_2} just closed ${competitor_2_funding}. Both are still pitching {commodity_angle}. Feels like there's a window here before they figure out how to copy the {prospect_unique_angle}."
---
#### Beat 3: Case Study as Parallel (not proof point)
Reference the matched case study as a **parallel situation**. It should feel like "this reminded me of..." not "we did this for..."
**Bad (salesy):**
> "We worked with {case_study_company} and got them {metric}."
**Good (woven in):**
> "We helped {case_study_company} ({what_they_have_in_common}) hit {metric} by leading with their differentiation instead of feature lists. Same playbook seems relevant."
**Good (even more natural):**
> "Reminds me of {case_study_company} — same energy, same '{positioning_similarity}' angle. We ran their outbound and it turned into {result}, which helped {business_outcome}."
---
#### Beat 4: Offer + Direct Meeting Ask
State the offer briefly, then ask directly for the meeting. No soft CTAs.
**Bad (soft):**
> "Happy to share more if helpful. Worth a look?"
**Good (direct):**
> "If {service_area} is on your radar, happy to walk through how we'd approach it. Worth 15 minutes to see if it fits?"
**Good (even more direct):**
> "Would 15 minutes make sense to see if something similar could work for {company}?"
---
### Full Example Message
**Subject:** {2-4 word lowercase reference to their positioning}
**Body:**
{first_name},
The thing that stood out about {company} isn't the {obvious_thing} — it's the {unique_positioning}. Everyone else in {industry} sells "{common_pitch}." You're selling "{their_differentiated_pitch}." That's a different conversation entirely.
{competitor_1} has ${funding}, {competitor_2} just closed ${funding}. Both are still pitching {commodity_angle}. Feels like there's a window here before they figure out how to copy the {unique_angle}.
We helped {case_study_company} ({what_they_have_in_common}) hit {key_metric} by leading with their differentiation instead of feature lists. Same playbook seems relevant.
Worth 15 minutes to see if {service_area} makes sense for {company} right now?
— {your_name}
### Message Format
**Subject:** 2-4 words, lowercase, references positioning
**Body:** ~150 words max
- Beat 1 (2-3 sentences)
- Beat 2 (1-2 sentences)
- Beat 3 (2-3 sentences)
- Beat 4 (1-2 sentences)
### 6C. Present for Approval
Show messages with research variables used and case study reasoning.
### 6D. Save to Report
Append messages to report file.
---
## Message Rules
1. Build like a thought, not a pitch
2. Strategic insight > surface facts
3. Case studies = parallels ("reminds me of..."), not proof points
4. Breathing room between beats
5. Direct meeting ask ("Worth 15 minutes?")
6. No fluff, no fake personalization
7. Match their sophistication — peer, not vendor
8. Under 150 words
9. Subject: 2-4 words, lowercase
---
## Reference File: case-study-matching.md
Save the content below to `~/.claude/skills/dream-100/references/case-study-matching.md` and fill in your own case studies.
```
# Case Studies — Agent Reference
Match prospects by industry similarity. Pick the closest match and explain WHY it's relevant.
| # | Company | Industry | What They Do | Website | Case Study URL |
|---|---------|----------|-------------|---------|----------------|
| 1 | {company_1} | {industry} | {one-line description} | {domain} | {case_study_url} |
| 2 | {company_2} | {industry} | {one-line description} | {domain} | {case_study_url} |
| 3 | {company_3} | {industry} | {one-line description} | {domain} | {case_study_url} |
## Key Results to Reference
- **{company_1}**: {headline metric, e.g., "102 opportunities, 2.1% reply rate"}
- **{company_2}**: {headline metric}
- **{company_3}**: {headline metric}
## Matching Priority
1. **Exact industry match** — Same vertical, same problems
2. **Adjacent vertical** — Similar business model or sales motion
3. **Similar company stage** — e.g., funded startup to funded startup
4. **Similar deal size** — High-ticket ($20K+) vs. volume play
5. **Hard-to-reach audience** — SMBs, restaurants, non-tech buyers
6. **Default** — Your most universal case study that works for any B2B company
## What to Output
For the matched case study, provide:
- Case study name
- Industry match reason (1 sentence)
- The most relevant metric/result to mention in outreach
- The case study URL
```