AgentSkillsCN

job-hunter

专为Director+营销岗位打造的战略性求职系统。首次使用时,通过收集简历与职位要求自动完成配置。从LinkedIn、BuiltIn、风投投资组合、目标公司等多个渠道挖掘求职机会,以智能评分(1-100)进行分析,提供深度的公司研究,生成ATS优化的简历定制方案,创建LinkedIn外联消息,并通过学习过往经验持续跟踪申请进展。当用户需要求职帮助时使用此功能,包括初始设置、寻找职位、发掘机会、分析招聘信息、定制申请、研究公司、跟踪申请,或从过往模式中汲取经验。

SKILL.md
--- frontmatter
name: job-hunter
description: Strategic job hunting system for Director+ marketing roles. Auto-configures on first use by collecting resume and job criteria. Discovers job opportunities across multiple sources (LinkedIn, BuiltIn, VC portfolios, target companies), analyzes them with intelligent scoring (1-100), provides deep company research, generates ATS-optimized resume customizations, creates LinkedIn outreach messages, and maintains persistent application tracking with learning from outcomes. Use when the user needs help with job searching, including initial setup, finding jobs, discovering opportunities, analyzing postings, customizing applications, researching companies, tracking applications, or learning from patterns.

Job Hunter - Strategic Sniper System

Strategic job hunting for Director/Sr. Director/Head of Marketing roles with intelligent analysis, persistent tracking, and continuous learning from outcomes.

Profile

Target: Director/Sr. Director/Head of Marketing | B2B SaaS, Series B-D | $150K+ | Remote only

Strengths: 12+ years B2B marketing | Olo IPO experience | Content, SEO, growth marketing expert | Hands-on + strategic leader | Data-driven

Avoid: Events/field marketing | Pure brand/creative | Hospitality tech (except top-tier) | <$150K | Non-remote | Manager/Coordinator titles

Startup Behavior

CRITICAL: Before executing ANY command, check for required information.

1. User's Resume

Check for resume:

  • Look in current working directory for resume files (*.pdf, *.docx, .txt, .md, resume., cv.)
  • Look in common upload locations if they exist (e.g., /mnt/user-data/uploads/)
  • Check if user has previously provided resume in this conversation
  • Accept any format: .pdf, .docx, .txt, .md, pasted text

If resume not found:

  • Stop the requested command
  • Ask: "I need your resume to help effectively. Can you upload your resume file or paste it here?"
  • Wait for user to provide resume
  • Once provided: Save content to working directory (prefer keeping original format or save as resume.md)

2. Job Search Profile

Check for profile:

  • Look for job-profile.json or job-profile.md in working directory
  • Check if profile information exists in conversation history

If profile not found:

  • Stop the requested command
  • Run /intake to collect job search criteria
  • Save to job-profile.json in working directory
  • Then proceed with original command

Required Profile Information

  • Target roles (e.g., Director of Marketing, Sr. Director, Head of)
  • Salary minimum (e.g., $150K+)
  • Location preference (e.g., Remote only, SF Bay Area, etc.)
  • Industries/company types (e.g., B2B SaaS, Series B-D)
  • Core strengths/expertise (e.g., Content marketing, SEO, Growth)
  • Things to avoid (e.g., Events-focused, Pure brand, <$150K)
  • LinkedIn profile URL (for network intel)

Execution Flow

code
User runs: /discover

Check 1: Resume exists? 
  NO → Ask for resume → Save → Continue
  YES → Proceed to Check 2

Check 2: Job profile exists?
  NO → Run /intake → Save profile → Continue
  YES → Execute /discover

Command executes with full context

Note: This ensures the skill NEVER operates without understanding the user's background and goals.


Commands

/intake

Collects job search criteria from the user and saves to job-profile.json.

Process:

  1. Ask user for job search criteria:

    • Target roles
    • Salary minimum
    • Location preference
    • Industries/company types
    • Core strengths/expertise
    • Things to avoid
    • LinkedIn URL
  2. Save to job-profile.json in working directory:

    json
    {
      "target_roles": ["Director of Marketing", "Sr. Director of Marketing"],
      "salary_minimum": 150000,
      "location": "Remote only",
      "industries": ["B2B SaaS", "Series B-D"],
      "strengths": ["Content marketing", "SEO", "Growth marketing"],
      "avoid": ["Events/field marketing", "Pure brand/creative", "<$150K"],
      "linkedin_url": "https://linkedin.com/in/username",
      "years_experience": 12,
      "last_updated": "2025-02-05"
    }
    
  3. Confirm profile with user

  4. Return to original command if one was pending

Usage:

code
/intake

Output:

code
📋 JOB SEARCH PROFILE SETUP

Let me learn about your job search:

1️⃣ What role(s) are you targeting?
   (e.g., Director of Marketing, VP Product, Head of Growth)

2️⃣ Minimum salary requirement?
   (e.g., $150K, $200K)

3️⃣ Location preference?
   (e.g., Remote only, San Francisco, NYC + Remote)

4️⃣ Industries or company types?
   (e.g., B2B SaaS, Fintech, Series B-D startups)

5️⃣ What are your core strengths?
   (e.g., Content marketing, SEO, Product management, Engineering leadership)

6️⃣ What should I avoid?
   (e.g., Events-focused roles, Non-remote, Companies under 50 people)

7️⃣ LinkedIn profile URL?
   (So I can find hiring managers and check your network)

---

[User provides answers]

✅ Profile saved to job-profile.json

Here's your job search profile:

🎯 TARGET ROLES
- Director of Marketing
- Sr. Director of Marketing
- Head of Marketing

💰 SALARY: $150K+ minimum
🌍 LOCATION: Remote only
🏢 INDUSTRIES: B2B SaaS, Series B-D companies

💪 STRENGTHS
- Content marketing & SEO
- Growth marketing
- Data-driven leadership
- Olo IPO experience

🚫 AVOID
- Events/field marketing
- Pure brand/creative
- Non-remote positions

🔗 LINKEDIN: linkedin.com/in/joshgoldstein

Does this look right? (yes/no/edit)

---

[If yes]
✅ Profile confirmed and saved!
[Returns to pending command or says "Ready to start job hunting!"]

/analyze [job URL or paste description]

Analyzes job and auto-logs to CSV. Returns intelligence report with scoring, company research, and network intel.

Process:

  1. Initialize /mnt/user-data/outputs/job-tracker.csv if not exists
  2. Extract: title, company, salary, location, requirements, posting date
  3. Score (1-100):
    • Company stage (25pts): Series C=25, D=20, B=15, Post-IPO=10, Early=5
    • Keywords (25pts): Match to expertise (content, SEO, growth, demand gen, B2B SaaS, data-driven). 7+=25, 5-6=20, 3-4=15, 1-2=10
    • Title (20pts): Director/Sr Director/Head=20, VP=15, Other=0
    • Network (15pts): 1st degree=15, 2nd=10, 3rd=5, None=0
    • Salary (10pts): $150K+=10, $130-149K=5, <$130K=0
    • Urgency (5pts): <24hrs=5, <48hrs=3, <7days=1, Older=0
  4. Flag: 🔥90-100 URGENT | ⭐85-89 HIGH | ✅75-84 SOLID | ⚠️70-74 MAYBE | ❌<70 SKIP
  5. Research via web_search: stage, funding, headcount, news, Glassdoor (last 2 years), leadership
  6. Analyze role: Decode real job (growth? content? demand gen?), map keywords, identify gaps
  7. Find network: Hiring manager/recruiter LinkedIn, check connections
  8. Write to CSV: Append with generated ID, current date, all details
  9. Return report

Output:

code
🎯 JOB ANALYSIS: [Company] - [Role]
Score: [X/100] [Flag]

📊 QUICK FACTS
Company: [Name] | [Stage] | [Size]
Salary: [Range] | Posted: [When]
Glassdoor: [Rating]⭐ | Red flags: [Y/N]

🎯 THE REAL JOB
[Decode 1-2 sentences]
Type: [Growth/Content/Full-stack]

✅ WHY YOU FIT
- [Alignment 1]
- [Alignment 2 - mention Olo IPO if relevant]
- Your spike: [Unique qualification]

⚠️ GAPS TO ADDRESS
- [Gap + positioning]

🔑 KEYWORDS (Top 15)
[List]

🤝 NETWORK INTEL
Hiring Manager: [Name+LinkedIn OR Not found]
Recruiter: [Name+LinkedIn OR Not found]
Connections: [1st/2nd degree details]

📝 NEXT STEPS
[Action based on score]
✅ Logged as job #[ID]

/discover [optional: number of jobs, default 10]

Proactively searches for job opportunities matching your profile across multiple sources. Auto-analyzes each job found.

Process:

  1. Search multiple sources using web_search:

    • LinkedIn Jobs: "Director Marketing B2B SaaS remote $150K"
    • BuiltIn: "Senior Director Marketing remote Series C"
    • AngelList/Wellfound: "Head of Marketing B2B SaaS"
    • Google: "Director Marketing jobs B2B SaaS remote hiring now"
    • Target companies (from references/target-companies.md if exists)
    • VC portfolio pages: Recent Series C/D funding announcements in B2B SaaS
  2. Filter results:

    • Must match profile criteria (remote, $150K+, Director+)
    • Skip: clearly wrong titles, hospitality/restaurant tech, events-focused
    • Deduplicate (same job from multiple sources)
  3. Auto-analyze top jobs:

    • Run /analyze on each job found
    • All jobs auto-logged to CSV tracker
    • Sort by score (highest first)
  4. Return summary:

    • Total jobs found
    • Breakdown by urgency (🔥/⭐/✅/⚠️/❌)
    • Top 5-10 opportunities with quick summaries
    • Full analysis available in tracker

Usage examples:

code
/discover                    # Find 10 jobs
/discover 20                 # Find 20 jobs
/discover this week          # Equivalent to /discover 10

Output:

code
🔍 JOB DISCOVERY RESULTS

📊 FOUND & ANALYZED: 15 jobs

🎯 BREAKDOWN BY PRIORITY
🔥 URGENT (90-100): 2 jobs
⭐ HIGH (85-89): 4 jobs
✅ SOLID (75-84): 5 jobs
⚠️ MAYBE (70-74): 3 jobs
❌ SKIP (<70): 1 job

🔥 TOP OPPORTUNITIES

1. Acme Corp - Director of Growth Marketing (Score: 92)
   Series C, $160-190K, Posted 12 hours ago
   Why: Perfect fit - growth+content blend, Olo alum works there
   Action: Apply immediately
   [Full analysis: Job #047]

2. TechCo - Sr Director Marketing (Score: 88)
   Series D, $170K+, Posted 2 days ago
   Why: Strong match, B2B SaaS focus, remote-first
   Action: Apply within 48 hours
   [Full analysis: Job #048]

[... top 5-10 listed]

📋 SOURCES CHECKED
✅ LinkedIn Jobs: 8 found
✅ BuiltIn: 4 found
✅ AngelList: 2 found
✅ VC portfolios: 1 found (Acme just raised Series C)
✅ Target companies: 0 currently hiring

💡 RECOMMENDATIONS
- Focus on the 2 URGENT + 4 HIGH priority jobs (6 total)
- Acme Corp and TechCo should be applied to today
- 3 MAYBE jobs are worth reviewing but lower priority

📊 All 15 jobs logged to tracker
Run /track to see full pipeline

Discovery sources strategy:

  • Job boards (LinkedIn, BuiltIn, AngelList): Current postings, check daily/weekly
  • Target companies: Check career pages of companies in your watchlist
  • Funding news: Companies that just raised Series C/D are hiring within 30-60 days
  • VC portfolios: Bessemer, a16z, Sequoia B2B SaaS portfolio companies
  • Network: 2nd-degree connections at target companies (proactive outreach)

Frequency recommendations:

  • Run /discover 2-3x per week to catch new postings
  • Best days: Monday (new week postings), Wednesday (mid-week updates)
  • Early morning (before 10am) catches jobs posted overnight

Tips:

  • First run may find 15-20 jobs (backlog)
  • Subsequent runs find 5-10 new jobs per week
  • Combine with /learn after 20+ applications to optimize which sources work best
  • If discovery finds too many low-quality jobs, adjust profile criteria in SKILL.md

/customize [job ID or company]

Generates ATS-optimized resume bullets for specific job.

Process:

  1. Find job in CSV (by ID or company name)
  2. Load references/base-resume.md (or ask for resume)
  3. Extract top 15-20 keywords from JD
  4. Generate 3-5 bullets with keywords, metrics, relevant achievements
  5. Provide emphasis strategy

Output:

code
📄 RESUME CUSTOMIZATIONS: [Company] - [Role]

🎯 KEYWORD TARGETS
[List keywords to include 2-3x]

✏️ CUSTOMIZED BULLETS

**At [Company]**
REPLACE: • [Original]
WITH: • [Keyword-optimized with metrics]

[2-4 more bullets]

🎯 EMPHASIS STRATEGY
Highlight: [Areas to emphasize]
De-emphasize: [What to downplay]

✅ ATS CHECKLIST
- Keywords 2-3x naturally
- Metrics in every bullet
- Simple formatting
- Estimated match: [X%]

/outreach [company] [person name/"hiring manager"/"recruiter"]

Generates personalized LinkedIn message.

Process:

  1. Identify target via web_search
  2. Research person/company for specific details
  3. Draft 150-word max message: specific opening, relevant experience (Olo IPO), soft ask
  4. Provide connection strategy and timing

Output:

code
💬 LINKEDIN OUTREACH: [Name] at [Company]
TARGET: [Title]
CONNECTION: [Degree]

[Connection request message if needed]

[Main message with personalization]

✅ SENDING STRATEGY
1. [Connection/message approach]
2. [Timing: Tue-Thu 9-11am]
3. [Follow-up if no response in 7 days]

/research [company]

Deep company dive for cultural fit and opportunity assessment.

Process:

  1. web_search: funding, headcount, news, leadership, product, market
  2. Glassdoor analysis (last 2 years, common themes, red flags)
  3. Assess: Why is role open? Growth trajectory? Marketing maturity?
  4. Fit analysis: Signals, concerns, recommendation

Output:

code
🔍 COMPANY DEEP DIVE: [Company]

📊 VITAL STATS
[Stage, funding, headcount, growth, HQ, remote policy]

🎯 BUSINESS
[Product, market, customers, recent news]

👥 LEADERSHIP
[CEO, CMO, CRO backgrounds]

⭐ GLASSDOOR INTEL
[Rating, reviews, red flags, themes, trends]

🎯 OPPORTUNITY ANALYSIS
[Why open, trajectory, maturity, context]

✅ FIT ASSESSMENT
Strong signals: [Why great]
Concerns: [Flags]
Overall: [APPLY/MAYBE/AVOID + reasoning]

/track

View pipeline and manage status. Auto-prompts weekly for updates.

Process:

  1. Check last update date
  2. If 7+ days, auto-prompt: "Weekly check-in: Any updates on these 5 pending applications?"
  3. Display: stats, active interviews, pending apps (by days waiting), rejections
  4. Accept updates: /track update [company/ID] [outcome]
    • Outcomes: pending, applied, no_response, rejected, phone_screen, interview, final_round, offer
  5. Update CSV, calculate days_to_response

Output:

code
📊 APPLICATION PIPELINE

🎯 STATS
Total analyzed: [X] | Applied: [X] | Pending: [X] | Rejected: [X] | Interviewing: [X]
Response rate: [X%] | Interview rate: [X%]

🔥 ACTIVE INTERVIEWS
[List with stages]

⏳ PENDING (Top 10 by days waiting)
[List with score, dates, waiting days]

❌ RECENT REJECTIONS
[Last 5]

📈 THIS WEEK
[Analyzed, applied, responses]

💬 Update: /track update [company] [outcome]

/learn

Analyzes patterns from outcomes and adjusts strategy.

Minimum: 10 applications needed for meaningful analysis

Process:

  1. Read entire CSV
  2. Calculate: conversion by score range, source, company stage, keywords, timing
  3. Identify patterns: what works vs. what doesn't
  4. Generate insights and recommendations
  5. If 20+ apps with clear patterns, offer scoring algorithm update

Output:

code
📚 LEARNING FROM [X] APPLICATIONS

📊 CONVERSION BY SCORE
[Range breakdown with %]
💡 INSIGHT: [What works]
RECOMMENDATION: [Threshold adjustments]

📍 SOURCE PERFORMANCE
[Source breakdown]
💡 INSIGHT: [Best sources]

🏢 COMPANY STAGE PATTERNS
[Stage breakdown]
💡 INSIGHT: [Best stages]

🎯 KEYWORD PATTERNS
[Successful vs. unsuccessful patterns]
💡 INSIGHT: [JD language that predicts success]

⏱️ TIMING ANALYSIS
[Response times, application days]
💡 INSIGHT: [Best timing]

🎯 STRATEGIC RECOMMENDATIONS
1-5. [Specific adjustments]

📈 UPDATED STRATEGY
[Summary of optimized approach]

CSV Tracker

Location: /mnt/user-data/outputs/job-tracker.csv

Schema:

csv
id,date_found,company,role,score,urgency_flag,source,keywords,salary_range,network_connection,glassdoor_rating,applied_date,outcome,days_to_response,interview_stage,notes

Initialization (if not exists):

bash
mkdir -p /mnt/user-data/outputs
echo "id,date_found,company,role,score,urgency_flag,source,keywords,salary_range,network_connection,glassdoor_rating,applied_date,outcome,days_to_response,interview_stage,notes" > /mnt/user-data/outputs/job-tracker.csv

Read: cat /mnt/user-data/outputs/job-tracker.csv

Append (during /analyze - handle commas in fields with quotes):

bash
NEXT_ID=$(($(tail -n +2 /mnt/user-data/outputs/job-tracker.csv | wc -l) + 1))
printf '%s,%s,%s,%s,%s,%s,%s,"%s",%s,%s,%s,%s,%s,%s,%s,%s\n' \
  "$NEXT_ID" "$(date +%Y-%m-%d)" "$COMPANY" "$ROLE" "$SCORE" "$FLAG" \
  "$SOURCE" "$KEYWORDS" "$SALARY" "$NETWORK" "$GLASSDOOR" "" "pending" "0" "" "" \
  >> /mnt/user-data/outputs/job-tracker.csv

Behavioral Notes

  • Startup checks (CRITICAL): ALWAYS check for resume and job-profile.json before executing any command. If either missing, collect the information first.
  • First-time setup: When user runs ANY command for the first time, check for resume and profile. Run /intake if profile missing. This is NOT optional.
  • Discovery automation: Suggest running /discover 2-3x per week (Monday, Wednesday) to catch new postings
  • Weekly automation: Auto-check if 7+ days since last /track, prompt for updates
  • Proactive mode: If user says "find me jobs" or "what's available this week", automatically run /discover (after startup checks)
  • Learning thresholds: 10 apps = basic patterns, 20+ = algorithm adjustments possible, 30+ = highly reliable
  • Research depth: Always web_search (don't hallucinate), focus Glassdoor on patterns not individual complaints
  • ATS priority: Keywords 2-3x naturally, metrics in every bullet, simple formatting, target 75%+ match
  • Tone: Professional but conversational, honest about gaps, celebrate wins
  • Discovery quality: Better to find 10 great jobs than 50 mediocre ones - quality over quantity

Files to Reference

  • job-profile.json - User's job search criteria (REQUIRED - create via /intake if missing)
  • User's resume - Any format in working directory (REQUIRED - ask for if missing)
  • references/base-resume.md - Alternative location for resume
  • references/scoring-rubric.md - Detailed scoring algorithm (for edge cases)
  • references/target-companies.md - Optional company watchlist (for proactive discovery)

Implementation Priority

  1. Startup checks (resume + profile) - FIRST, always
  2. /intake (collect profile if missing)
  3. /discover (proactive job finding - common entry point)
  4. /analyze + CSV tracking (foundation for each job found)
  5. /track with weekly automation (accountability)
  6. /learn (intelligence)
  7. /customize + /outreach (value-adds)