I Open-Sourced My Job Search System
Automating the grind so you can focus on relationships

The tool I built to automate my own job search is now a one-command install.
Job searching is weird. You're supposed to be "networking" and "building relationships" and "adding value"—but you're also supposed to apply to 50+ listings, customize every cover letter, and track everything in a spreadsheet.
The relationship stuff matters. The administrative grind doesn't.
So I built a system to handle the grind, and now it's open source.
The Problem
Traditional job search advice says to:
- Find relevant listings (scroll LinkedIn for hours)
- Research each company (fall down a rabbit hole)
- Write a tailored cover letter (agonize over every word)
- Track your applications (maintain a spreadsheet)
- Follow up systematically (forget to do this)
This is repetitive, soul-crushing work. And it's exactly what AI should be doing.
But here's the thing: I don't want AI auto-applying to jobs1. That's a terrible idea. The goal isn't volume—it's precision. Quality applications to companies where I actually want to work.
What I needed was a system that:
- Does the research and prep work
- Helps me write better, faster
- Surfaces what deserves my attention
- Never acts without my approval
The Solution: Job Search Copilot
I built an npm package that turns Claude Code into a job search assistant.
npx job-search-copilot
One command. It detects your AI agents (Claude Code, Cursor, Codex, Windsurf), installs the skill files, and walks you through a 10-minute setup.
What It Does
CMF Scoring: Every job gets scored 0-100 using Candidate Market Fit. The algorithm weights role match, company tier, location, seniority, and freshness. Jobs below your threshold get filtered out automatically.
goHunt Research: When you approve a job, it does deep company research—Reddit synthesis, forum analysis, Glassdoor sentiment, recent news. The methodology I developed for a client project, now running automatically.
VALUE-FIRST Cover Letters: Drafts cover letters using a structure I've tested: Strategic Situation (what you know about their challenges) → 90-Day Plan (what you'd do) → Why You (brief credentials). Not the typical "I'm excited to apply" template.
4-Stage Quality Chain: Every application goes through:
- Writing review (framework assessment)
- Humanizer pass (removes AI tells)
- HM grade (must achieve A+)
- Your approval (nothing sends without explicit OK)
The Pipeline

The key principle: AI does the prep work. You make the decisions.
Building It
The technical side was straightforward. The hard part was the methodology.
Lane and Story
Before you can write good cover letters, you need positioning. The setup wizard helps you define:
-
Lane: Your unique positioning statement. "A product leader who bridges strategy and execution at growth-stage B2B companies transitioning to AI-assisted systems."
-
Story: The narrative thread connecting your career. Past chapter → transition → future chapter. This becomes the raw material for every application.
I borrowed heavily from April Dunford's positioning framework, adapted for job seekers.
The Quality Gates
The biggest risk with AI-assisted applications is they all sound the same. So I built aggressive quality gates:
AI Tell Detection: The humanizer pass looks for patterns that scream "AI wrote this"—em dashes, the rule of three, certain phrases ("demonstrating," "highlighting"), superficial verbs. It forces rewrites until the text sounds human.
HM Perspective: Before any cover letter goes in the queue, it gets graded from a hiring manager's perspective. The standard is: "Would this make me immediately want to schedule an interview?" Anything less than A+ gets sent back for revision.
Voice Test: Would you say this at a coffee shop? If it sounds like a press release, rewrite it.
These gates slow things down. That's the point. I'd rather send 10 excellent applications than 100 mediocre ones.
Import from Existing Materials
If you already have resumes and cover letters, the setup wizard can import them:
- Resumes: Extracts experience, skills, metrics for your baseline profile
- Cover letters: Learns your writing voice for better generation
- Case studies: Pre-populates STAR stories for interview prep
The importer uses regex and heuristics2. No AI API calls during setup—I wanted it to work offline and cost nothing.
What I Learned
The methodology matters more than the tooling. I spent months refining CMF scoring weights, the cover letter structure, the quality gates. The code was the easy part.
Human-in-the-loop is non-negotiable. Every "automate everything" shortcut I tried made the output worse. The system works because humans make the decisions.
Open source forces clarity. When you're building for yourself, you can tolerate rough edges. Publishing made me fix the jank and document the why.
Try It
npx job-search-copilot
It works with Claude Code, Cursor, Codex, and Windsurf. The setup takes 10 minutes.
Commands after install:
| Command | What it does |
|---|---|
/job scrape --fresh | Find jobs posted in last 5 hours |
/job inbox | Review qualified listings |
/job approve [company] | Trigger full pipeline |
/job review | Review generated materials |
/job send [company] | Assisted send with quality gates |
Everything is MIT licensed. Use it, modify it, share it.
GitHub: github.com/szoloth/job-search-copilot
npm: npmjs.com/package/job-search-copilot