seren/job-seeker/SKILL.md
AI-powered job search agent that finds hiring managers, researches companies, discovers networking events, generates personalized outreach, and auto-applies to jobs — dual strategy for maximum coverage
npx skillsauth add serenorg/seren-skills job-seekerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
AI-powered job search agent following Taariq Lewis's proven strategy: network with hiring managers directly, skip the ATS black hole.
READ THIS BEFORE USING
Activate this skill when the user mentions:
When the user asks to find jobs or apply to companies, follow this 7-phase workflow:
Goal: Extract user's background from resume + LinkedIn data export BEFORE searching for jobs
CRITICAL: Run this FIRST. Without user context, we can't filter companies, tailor outreach, or auto-fill applications.
BOTH resume AND LinkedIn export are REQUIRED.
Step 1: User downloads LinkedIn data export (REQUIRED)
How to download LinkedIn data export:
Basic_LinkedInDataExport.zip)python3 scripts/agent.py extract-profile \
--resume resume.pdf \
--linkedin-export linkedin-export.zip \
--output user_profile.json
What gets extracted:
From Resume:
From LinkedIn Export (REQUIRED):
Tools used:
Cost: $0.50 per user (resume + LinkedIn parsing)
Present to user:
Profile extracted!
Alex Chen - Senior ML Engineer
• 8 years experience
• Skills: Python, Rust, PyTorch, distributed training
• Location: SF, NYC, or Remote
• Salary: $180k+ minimum
• Top achievement: Reduced training time 40%
• LinkedIn connections: 487 (23 at target companies)
Ready to find companies matching your profile?
Goal: Find 50 target companies matching user criteria (using Phase 0 profile)
Uses Phase 0 profile to filter:
# Discover companies via AlphaGrowth
# Example: Find 50 AI startups in SF with 10-100 employees
python3 scripts/agent.py discover \
--profile user_profile.json \
--role "Senior ML Engineer" \
--industry "AI" \
--location "SF" \
--limit 50
What this does:
Present to user:
Found 50 companies matching your criteria:
Top 10:
1. Anthropic (anthropic.com) - 150 employees, Series C, SF
2. Runway ML (runwayml.com) - 85 employees, Series B, NYC
3. Cohere (cohere.ai) - 120 employees, Series C, Toronto
...
Goal: Deep research on top 20 companies (culture, tech stack, recent news, hiring signals)
# For each company:
# 1. Perplexity: "Research [company] culture, tech stack, recent news, and hiring signals"
# 2. Exa: Semantic search for engineering blogs, job postings, employee interviews
What this does:
Present to user:
Researched 20 companies. Top insights:
Anthropic:
• Culture: Research-focused, safety-first, academic feel
• Tech: Rust, Python, PyTorch, distributed systems
• Recent: Just launched Claude 4.6, hiring ML engineers
• Signals: 3 job postings this week, 15% team growth
Goal: Find decision-makers (hiring managers, team leads, VPs of Engineering)
Primary Tool: Apollo.io
# Apollo people search with filters:
# - Company: [target company domain]
# - Titles: "Engineering Manager", "VP Engineering", "Director of Engineering", "Head of ML"
# - Seniority: Manager, Director, VP, C-Suite
# Returns: Name, title, verified email, LinkedIn, phone (optional)
Why Apollo is better:
Secondary Tool: Playwright (LinkedIn context)
# For top 3-5 targets per company:
# 1. Visit LinkedIn profile (public data only)
# 2. Extract: Recent posts, conference talks, interests, mutual connections
# 3. Gather social context for personalization
What this does:
Present to user:
Found 47 hiring managers across 10 companies:
Anthropic (5 contacts):
1. Sarah Chen - VP Engineering
• Email: [email protected] (verified ✓)
• LinkedIn: Recent post about scaling ML training
• Context: Spoke at MLSys 2026, interested in distributed systems
2. Michael Rodriguez - Engineering Manager, Safety Team
• Email: [email protected] (verified ✓)
• Mutual: 2 connections (Jane Doe, John Smith)
Goal: Find networking events, conferences, meetups where hiring managers will be
# Exa semantic search:
# "AI conferences in San Francisco March 2026"
# "Engineering meetups at Anthropic headquarters"
# Playwright scraping:
# - Eventbrite: AI/ML events
# - Meetup.com: Tech meetups
# - Luma: Startup events
# - LinkedIn Events: Company-hosted events
What this does:
Present to user:
Found 8 networking opportunities:
1. AI Safety Summit - March 15, 2026 - SF
• Speakers: Sarah Chen (Anthropic), 3 other targets
• Registration: $50 early bird
2. Bay Area ML Meetup - March 22, 2026 - SF
• Host: Anthropic (office tour + tech talk)
• Free, RSVP required
Goal: Verify emails, generate personalized outreach that demonstrates value
Email Verification (AlphaGrowth)
# For each contact email from Apollo:
# AlphaGrowth email verification API
# Returns: deliverable, risky, or invalid
# Only proceed with "deliverable" emails
Why verify emails:
Outreach Generation (Seren Models - GPT-5.2)
# For each verified contact, generate personalized email:
# Input:
# - Hiring manager name, title, company
# - Company research (culture, tech stack, recent news)
# - Social context (recent posts, talks, interests)
# - Mutual connections
# - User's background and value proposition
# - Event opportunity (if applicable)
# - **Application ID from Phase 7** (if using double-tap strategy)
# Output: 3-paragraph email
# 1. Personal hook (reference their work, post, or talk)
# 2. Application reference (if double-tap) + Value proposition
# 3. Soft ask (coffee, event meetup, or intro call)
Outreach Principles (from Taariq's blog):
Cost: $3.00 per outreach email (~$9.00 for 3 high-priority emails)
Present to user:
Email verification complete:
• 47 emails checked
• 43 deliverable (91%)
• 3 risky (skipped)
• 1 invalid (skipped)
Generated 3 personalized emails for top targets:
---
Subject: Your MLSys talk on distributed training + my application (#AN-2026-00142)
Hi Sarah,
I just applied for the Senior ML Engineer - Safety Team role (Application
#AN-2026-00142) and wanted to reach out directly.
I caught your MLSys 2026 talk on scaling distributed training to 10k GPUs — the
part about gradient compression was brilliant. I've been working on similar
challenges at [Current Company], where we reduced training time 40% by
implementing a custom allreduce algorithm.
I'm excited about Anthropic's approach to safety-constrained training at scale
and would love to learn more. I'll be at the AI Safety Summit on March 15 —
any chance you're free for coffee that morning?
Looking forward to connecting,
[Your Name]
---
Goal: Track outreach, responses, interviews, and follow-ups
# Store in structured format (SQLite or Google Sheets):
# - Company name
# - Contact name, title, email
# - Outreach sent date
# - Response received (yes/no)
# - Interview scheduled (yes/no)
# - Status (pending, interview, offer, rejected)
# - Follow-up date
# - Notes
What this does:
Present to user:
Application Tracker Summary:
Outreach sent: 43 emails
Responses: 8 (18.6%)
Interviews scheduled: 3 (7.0%)
Offers: 0
Pending follow-ups: 12 (due this week)
Top performers:
• Event-based outreach: 4/10 responses (40%)
• Mutual connection intro: 2/5 responses (40%)
• Cold email (research-backed): 2/28 responses (7%)
Goal: Apply via ATS to the SAME 10 companies where you're networking, then reference your application in hiring manager outreach
CRITICAL: Phase 7 operates on the SAME companies from Phase 3, not a separate list.
The Double-Tap Strategy:
Why this works:
Example flow for Anthropic:
# 1. Apply via ATS (Phase 7)
→ Submit application
→ Get confirmation: "Application #AN-2026-00142"
# 2. Email Sarah Chen (Phase 5)
→ Subject: "Your MLSys talk + my application (#AN-2026-00142)"
→ Body: "I just applied for Senior ML Engineer (Application #AN-2026-00142)
and wanted to reach out directly. I caught your MLSys talk..."
Workflow per company:
# For each of the 10 target companies:
# 1. Scrape careers page for matching job postings
# 2. Apply via ATS (auto-fill, submit, get confirmation ID)
# 3. Generate networking email that references application ID
# 4. User sends networking email
What this does:
Supported ATS platforms:
Cost: $2-5 per company
Present to user:
Found 12 job postings across 10 companies:
Anthropic (2 openings):
1. Senior ML Engineer - Safety Team
• Location: SF (Hybrid)
• Salary: $180k-250k
• Applied: ✓ (submitted 2026-03-10 14:35 UTC)
• Confirmation: Application #AN-2026-00142
2. Staff Engineer - Infrastructure
• Location: Remote (US)
• Salary: $200k-280k
• Applied: ✓ (submitted 2026-03-10 14:38 UTC)
• Confirmation: Application #AN-2026-00143
Runway ML (1 opening):
1. Senior Software Engineer - ML Platform
• Location: NYC (Onsite)
• Salary: $160k-220k
• Applied: ✓ (submitted 2026-03-10 14:42 UTC)
• Confirmation: Application #RML-2026-00089
Summary:
• Jobs found: 12
• Applied: 12 (100%)
• Failed: 0
• Total cost: $36.00 (12 applications × $3.00 avg)
• Time saved: ~6 hours (vs manual application)
Best practices:
Ethical considerations:
User provides:
Budget:
User says: "Help me find Senior ML Engineer roles at AI startups in San Francisco"
Phase 1: Company Discovery
python3 scripts/agent.py discover \
--role "Senior ML Engineer" \
--industry "Artificial Intelligence" \
--location "San Francisco" \
--employee_range "50-200" \
--funding_stage "Series A,Series B,Series C" \
--limit 50
Phase 2: Research Top 20
python3 scripts/agent.py research \
--companies companies.json \
--limit 20 \
--output research.json
Phase 3: Find Hiring Managers (Apollo)
python3 scripts/agent.py find-contacts \
--companies research.json \
--titles "Engineering Manager,VP Engineering,Director of Engineering" \
--tool apollo \
--output contacts.json
Phase 3b: Enrich with Social Context (Playwright)
python3 scripts/agent.py enrich-contacts \
--contacts contacts.json \
--tool playwright \
--limit 10 \
--output contacts_enriched.json
Phase 4: Discover Events
python3 scripts/agent.py discover-events \
--location "San Francisco" \
--industry "AI,Machine Learning" \
--date_range "2026-03-01,2026-04-30" \
--output events.json
Phase 5a: Verify Emails
python3 scripts/agent.py verify-emails \
--contacts contacts_enriched.json \
--output contacts_verified.json
Phase 5b: Generate Outreach
python3 scripts/agent.py generate-outreach \
--contacts contacts_verified.json \
--background user_background.txt \
--events events.json \
--limit 3 \
--output outreach.json
Phase 6: Track Applications
python3 scripts/agent.py track \
--outreach outreach.json \
--database applications.db
Phase 7: Automated Job Applications
python3 scripts/agent.py auto-apply \
--companies research.json \
--role "Senior ML Engineer" \
--resume resume.pdf \
--background user_background.txt \
--limit 12 \
--output applications.json
| Phase | Tool | Cost | |-------|------|------| | 1. Company Discovery | AlphaGrowth | $1.50 (50 companies × $0.03) | | 2. Company Research | Perplexity + Exa | $4.40 (20 companies × $0.22) | | 3. Hiring Manager Discovery | Apollo | $4.00 (10 companies × $0.04 × 10 contacts) | | 3b. Social Context Enrichment | Playwright | $0.40 (10 top targets × $0.04) | | 4. Event Discovery | Exa + Playwright | $0.40 (10 events × $0.04) | | 5a. Email Verification | AlphaGrowth | $0.50 (50 emails × $0.01) | | 5b. Outreach Generation | Seren Models (GPT-5.2) | $9.00 (3 emails × $3.00) | | Total (Networking Only) | | $20.20 |
| Phase | Tool | Cost | |-------|------|------| | 1-5b. Networking (from above) | Multiple | $20.20 | | 7. Automated Job Applications | Playwright + GPT-5.2 | $36.00 (12 applications × $3.00) | | Total (Networking + ATS) | | $56.20 |
| Approach | Cost | Volume | Conversion | Expected Interviews | |----------|------|--------|------------|---------------------| | Networking only | $20.20 | 3 outreach | 7-40% | 0.2-1.2 | | ATS only | $36.00 | 12 applications | 2-5% | 0.24-0.6 | | Combined | $56.20 | 3 outreach + 12 apps | Blended | 0.44-1.8 |
Recommendation: Use combined strategy for maximum coverage. Networking gets you high-quality conversations, ATS gets you volume/backup.
Optimized for budget:
Minimum viable:
Phase 1: Company Discovery
Phase 2: Company Research
Phase 3: Hiring Manager Discovery
Phase 4: Event Discovery
Phase 5: Email Verification & Outreach
Phase 6: Application Tracking
Phase 7: Automated Job Applications
Manual steps:
Not implemented:
python3 scripts/agent.py status --database applications.db
Output:
📊 Job Search Pipeline Status
Phase 1: Company Discovery
• Discovered: 50 companies
• Researched: 20 companies
• Targeted: 10 companies
Phase 3: Hiring Manager Discovery
• Contacts found: 47
• Emails verified: 43 deliverable
• Social context: 10 enriched
Phase 5: Networking Outreach
• Emails generated: 3
• Sent: 3
• Responses: 1 (33.3%)
• Interviews: 0
Phase 7: ATS Applications
• Job postings found: 12
• Applications submitted: 12 (100%)
• Confirmations received: 12
• Responses: 0
• Interviews: 0
Phase 6: Overall Tracking
• Total touchpoints: 15 (3 outreach + 12 applications)
• Pending follow-ups: 12
• Active conversations: 1
• Interview conversion: 0% (0/15)
python3 scripts/agent.py update-tracker \
--id 42 \
--status sent \
--sent_date 2026-03-10 \
--notes "Sent via Gmail, personalized with MLSys reference"
python3 scripts/agent.py record-response \
--id 42 \
--responded yes \
--response_date 2026-03-12 \
--next_step "Coffee chat scheduled for 3/18" \
--status active
python3 scripts/agent.py schedule-followup \
--id 42 \
--followup_date 2026-03-17 \
--template "polite_nudge" \
--notes "Follow up if no response by end of week"
Schema:
CREATE TABLE applications (
id INTEGER PRIMARY KEY,
company_name TEXT,
company_domain TEXT,
contact_name TEXT,
contact_title TEXT,
contact_email TEXT,
contact_linkedin TEXT,
outreach_email TEXT,
sent_date DATE,
response_date DATE,
responded BOOLEAN,
interview_scheduled BOOLEAN,
interview_date DATE,
status TEXT, -- pending, sent, responded, interview, offer, rejected
followup_date DATE,
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
One line per generated email:
{"timestamp": "2026-03-10T14:00:00Z", "company": "Anthropic", "contact": "Sarah Chen", "subject": "Your MLSys talk + coffee at AI Safety Summit?", "body": "...", "personalization": {"hook": "MLSys talk", "value": "distributed training experience", "ask": "coffee at conference"}, "cost": 3.00}
{
"companies": [
{
"name": "Anthropic",
"domain": "anthropic.com",
"culture": "Research-focused, safety-first",
"tech_stack": ["Rust", "Python", "PyTorch"],
"recent_news": "Launched Claude 4.6",
"hiring_signals": ["3 job postings this week", "15% team growth"],
"research_date": "2026-03-10",
"cost": 0.22
}
]
}
"The hiring manager already knows they need to hire. They're just waiting to meet someone great. Be that person they meet at the conference, not resume #247 in their inbox."
This skill follows the AgentSkills.io open standard for agent skills, ensuring compatibility across:
Taariq Lewis, SerenAI, Paloma, and Volume at https://serendb.com Email: [email protected]
testing
Review-first outreach skill for the default Seren Bucks affiliate program. It bootstraps affiliate context via /programs/discover, mines sent-mail history and address books for candidates, persists them into a skill-owned CRM, proposes an editable daily top-10, drafts outbound and reply batches for approval, reconciles affiliate and reply signals, enforces hard DNC, and returns a manual daily digest.
data-ai
Lean partner-link distribution skill for the seren-affiliates publisher program portfolio. Operates one publisher program per run. Bootstraps the affiliate profile (registering on first run), caches joined programs in serendb, ingests contacts from a pasted list or from Gmail/Outlook address books, drafts a pitch once per run via seren-models for operator approval, sends approved copy through Gmail (preferred) or Microsoft Outlook, enforces per-program dedupe plus a global unsubscribe list, and reports local plus live conversion and commission stats from seren-affiliates.
development
Family office: Process an incoming GP capital call notice end-to-end — confirm, fund, log, reconcile.
development
Work with Seren Bounty affiliate bounties: customers create and fund verifier-backed bounties; agents join to receive a referral_code and accrue earnings as qualifying events are verified; a release sweep pays matured earnings out of escrow.