AI-Driven Executive Job Hunt Copilot · Built While Hunting My Own Role
OfferAgent is an open-source, AI-driven job-hunt operating system designed for VP / C-level operators who want to combine precision targeting with bulk outreach while staying compliant with platform ToS.
I'm building it while hunting my own next role (CMO / CGO / VP Growth / Head of AI Product). Every module is dogfooded against real jobs, real recruiters, and real interviews.
| Spray-and-pray | OfferAgent |
|---|---|
| Same CV everywhere | JD-tailored CV + cover letter per application |
| 1 % response rate | 8–15 % response rate (aim) |
| Lose track of leads | Full CRM with follow-up SLA |
| Show up to interview cold | Auto-generated company brief + 50-Q drill |
| Job board only | Job board + headhunter network + warm intros |
┌─────────────────────────────────────────────────────────────────┐
│ OfferAgent │
├─────────────────────────────────────────────────────────────────┤
│ │
│ cv-engine → match-scorer → cover-letter-gen → outreach │
│ ↑ ↓ │
│ jd-crawler outreach-tracker │
│ ↓ │
│ interview-prep │
│ ↓ │
│ headhunter-net │
└─────────────────────────────────────────────────────────────────┘
| Module | Purpose | Stack |
|---|---|---|
| cv-engine | Maintain a master CV; render JD-tailored variants (PDF/MD/DOCX) | Node.js + pandoc + Claude |
| jd-crawler | Scrape public JD pages (BOSS, Liepin, LinkedIn, Wellfound). robots.txt-respecting | Playwright + Node.js |
| match-scorer | Claude-powered match score JD ↔ CV with gap analysis | Claude Agent SDK |
| cover-letter-gen | Bilingual cover letter + recruiter first-message templates | Claude API |
| outreach-tracker | SQLite + React UI: applied → seen → interview → offer | React 19 + Vite + Drizzle |
| interview-prep | Auto-research target company, generate 50 questions + answers | Claude + WebSearch |
| headhunter-net | Curated list of executive recruiters with intro templates | Markdown DB |
| target-companies | Hangzhou Top 80 + global remote, scored by fit | Markdown + JSON |
git clone https://github.com/iPythoning/OfferAgent.git
cd OfferAgent
npm install
# Set your Anthropic API key
export ANTHROPIC_API_KEY=sk-ant-...
# Generate a tailored CV for a specific JD
npm run cv -- --jd ./examples/jd-mihoyo-cmo.txt --out ./out/
# Run the full match pipeline against your candidate list
npm run match -- --target-list ./target-companies/list.jsonUpdated weekly while I run this hunt.
Started: 2026-04-21
Companies: [TBD]
Apps sent: [TBD]
Replies: [TBD]
Interviews: [TBD]
Offers: [TBD]
Time to offer: [TBD]
OfferAgent does not:
- Auto-fill BOSS / LinkedIn / Liepin login forms (against ToS)
- Send messages without human approval
- Scrape pages requiring login
- Mass-spam recruiters
OfferAgent does:
- Generate content for you to copy-paste
- Score and prioritize so you focus on top 10 % matches
- Track everything you've sent so you don't lose context
- Master CV (CN + EN) v2 with AI Agent positioning
- Target company list (Hangzhou 80 + Global Remote 40)
- JD crawler MVP (BOSS public pages)
- Match-scorer with Claude Sonnet 4.6
- Cover letter generator (bilingual)
- Outreach CRM web UI
- Interview prep agent
- Headhunter contact DB
MIT © 2026 Fan Dayong