7-phase pipeline for personalized cold outreach to executive recruiters - from prospect research through follow-up sequences
/plugin marketplace add DNYoussef/context-cascade/plugin install dnyoussef-context-cascade@DNYoussef/context-cascadeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Execute systematic, personalized cold outreach to executive recruiters for VP-Level AI Consulting services. Transforms raw prospect lists into sent emails with scheduled follow-ups.
[Prospects] -> P1:Research -> P2:Draft -> P3:QA -> P4:Email -> P5:Send -> P6:Track -> P7:Follow-up
| | | | | | |
Parallel Templates Slop API Pattern Gmail CSV Calendar
Subagents + Anti-slop <15 Search Browser Update 2-week
Skill: Task("Research [name]", "prompt", "Explore")
Input: Prospect names/LinkedIn URLs
Output: Verified facts in structured format
// Launch parallel subagents (one per prospect)
Task("Research Prospect A", "Extract from LinkedIn: connection degree, mutual connections, title, company, location, followers, specialization, about section quotes, recent posts", "Explore")
Task("Research Prospect B", "...", "Explore")
// ... parallel for all prospects
Name,Title,Company,Location,Specialization,Followers,Connection_Degree,Mutual_Connections,LinkedIn_URL,Primary_Hook,Specific_Reference
Input: Verified prospect facts from Phase 1 Output: Personalized messages (connection request + follow-up)
[Name], connected through [Mutual Connection]. Your [specific specialty] caught my eye. I run AI workshops for placed [industry] executives. Worth connecting?
[Name], thanks for connecting.
[Personalized hook referencing their specialty/about section]
I run free AI workshops for newly placed executives. Your candidates learn practical AI fluency before they start--the kind that makes them credible when their new [role] asks "[relevant AI question for their industry]?"
My background: BS in Biotechnology, published research, 200+ professionals trained. The workshops are free because I monetize downstream through corporate training when the [leader] asks "who taught your candidate this?"
Your candidates look prepared. [Company] looks like they placed a winner.
[Personalized close]. Worth 15 minutes to discuss?
David Youssef
dnyoussef.com
717-517-6471
Skill: Slop Detector API Input: Draft messages from Phase 2 Output: Validated messages (Grade A)
# Start slop detector
cd Desktop/_ACTIVE_PROJECTS/slop-detector/backend
python -m uvicorn app:app --port 8000
# Test each message
curl -X POST http://localhost:8000/analyze \
-H "Content-Type: application/json" \
-d '{"text":"[message content]"}'
| Grade | Score | Action |
|---|---|---|
| A | 0-20 | PASS - Ready to send |
| B | 21-40 | Review flagged phrases |
| C | 41-60 | Significant rewrite needed |
| D | 61-80 | Major overhaul required |
| F | 81-100 | Reject and restart |
Input: Prospect names and companies Output: Work email addresses with confidence levels
1. Direct Source (HIGH confidence)
2. Pattern-Based (MEDIUM confidence)
Search: "[Company]" email format site:rocketreach.co OR site:hunter.io
Common patterns:
| Pattern | Example | Frequency |
|---|---|---|
| firstname@ | ryan@company.com | 25% |
| firstnamelastinitial@ | ryans@company.com | 35% |
| firstinitiallastname@ | rsteinwandtner@company.com | 20% |
| firstname.lastname@ | ryan.steinwandtner@company.com | 15% |
| firstlast@ | ryansteinwandtner@company.com | 5% |
If email bounces, try next pattern in priority order. Document failed patterns.
Method: Gmail Browser Automation (claude-in-chrome MCP) Input: Validated messages + email addresses Output: Sent emails
// 1. Navigate to compose
navigate("https://mail.google.com/mail/u/0/#inbox?compose=new")
// 2. Wait for compose window
wait(2)
read_page(filter: "interactive")
// 3. Fill To field
form_input(ref: "To_field_ref", value: "email@domain.com")
// 4. Fill Subject field
form_input(ref: "Subject_field_ref", value: "AI workshops for your [specialty] placements")
// 5. Click body and type message
click(ref: "Body_field_ref")
type(text: "[full message content]")
// 6. Verify before send
screenshot()
// 7. Send
click(ref: "Send_button_ref")
// 8. Confirm sent
wait(2)
screenshot() // Should show "Message sent"
| Error | Action |
|---|---|
| Bounce notification | Try alternate email pattern |
| Rate limit | Wait 1 hour, retry |
| Invalid address | Mark as NEEDS_ALTERNATE in spreadsheet |
| Tab focus lost | Re-read page, get fresh refs |
File: Documents/recruiter_prospects.csv
Input: Send confirmations/bounces
Output: Updated tracking spreadsheet
Email,Preferred_Channel,Outreach_Status,Outreach_Date,Notes
| Code | Meaning |
|---|---|
| NOT_CONTACTED | No outreach yet |
| MESSAGES_READY | Messages drafted |
| CONNECTION_SENT | LinkedIn request sent |
| MESSAGED | LinkedIn message sent |
| EMAIL_SENT | Email delivered |
| EMAIL_BOUNCED | Needs alternate address |
| REPLIED | Prospect responded |
| MEETING_SCHEDULED | Call booked |
| CONVERTED | Became client |
| REMOVED | Not a fit |
Edit(file: "recruiter_prospects.csv",
old: "[Name],...,MESSAGES_READY,...",
new: "[Name],...,email@domain.com,...,Email,...,EMAIL_SENT,2026-01-05")
Schedule: Every 2 weeks, max 3 touches Method: Google Calendar events
Subject: Re: [Original Subject]
[Name],
Following up on my note about AI workshops for your placed executives.
Quick question: are any of your current candidates heading into roles where AI fluency would give them an edge?
Happy to share a 2-minute overview of what the workshops cover.
David
Subject: Re: [Original Subject]
[Name],
One more ping. If AI training for placed executives isn't on your radar right now, no worries--I'll stop here.
But if timing changes, the offer stands: free workshops that make your candidates look like stars.
David
dnyoussef.com
Subject: Closing the loop
[Name],
Final note. If this isn't relevant for your practice, I understand.
If you ever want to chat about AI fluency for executive placements, I'm here.
Best,
David
Title: Follow-up: [Name] ([Company])
Date: [2 weeks from send]
Description:
- Original sent: [date]
- Email: [address]
- Template: Follow-up #[1/2/3]
- Spreadsheet row: [#]
/recruiter-outreach-pipeline "Process batch of 5 recruiters from prospect list"
/recruiter-outreach-pipeline --phase=research "Research these 3 LinkedIn profiles"
/recruiter-outreach-pipeline --phase=draft "Draft messages for researched prospects"
/recruiter-outreach-pipeline --phase=send "Send emails to MESSAGES_READY prospects"
/recruiter-outreach-pipeline --skip-qa "Quick send without slop check"
/recruiter-outreach-pipeline --linkedin-only "Use LinkedIn instead of email"
/recruiter-outreach-pipeline --schedule-followups "Create calendar events"
| File | Location | Purpose |
|---|---|---|
| Prospect Database | Documents/recruiter_prospects.csv | Master tracking |
| Message Templates | Documents/recruiter_messages_*.md | Drafted messages |
| Email Drafts | Documents/recruiter_emails_batch*.md | Email versions |
| Pipeline Docs | Documents/recruiter-outreach-pipeline.md | Process documentation |
| This Skill | .claude/skills/recruiter-outreach-pipeline.md | Executable skill |
| Metric | Target | Calculation |
|---|---|---|
| Research Rate | 100% | Prospects researched / Total |
| Draft Rate | 100% | Messages drafted / Researched |
| QA Pass Rate | >90% | Grade A / Total drafts |
| Send Rate | >95% | Sent / Validated |
| Bounce Rate | <10% | Bounced / Sent |
| Reply Rate | >10% | Replies / Delivered |
| Meeting Rate | >5% | Meetings / Delivered |
This skill chains with:
Skill("analyzer") - Understand prospect prioritiesSkill("documenter") - Generate reportsTask("...", "...", "Explore") - Research subagentsVersion: 1.0.0 Created: 2026-01-05 Author: David Youssef
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.