I Open-Sourced My Job Search System

Automating the grind so you can focus on relationships

Hand-drawn sketch of a workflow pipeline with human approval checkpoints highlighted in green

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:

  1. Find relevant listings (scroll LinkedIn for hours)
  2. Research each company (fall down a rabbit hole)
  3. Write a tailored cover letter (agonize over every word)
  4. Track your applications (maintain a spreadsheet)
  5. 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.

Terminal
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:

  1. Writing review (framework assessment)
  2. Humanizer pass (removes AI tells)
  3. HM grade (must achieve A+)
  4. Your approval (nothing sends without explicit OK)

The Pipeline

The job search pipeline: AI does the prep, you make the decisions
The job search pipeline: AI does the prep, you make the decisions

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

Terminal
npx job-search-copilot

It works with Claude Code, Cursor, Codex, and Windsurf. The setup takes 10 minutes.

Commands after install:

CommandWhat it does
/job scrape --freshFind jobs posted in last 5 hours
/job inboxReview qualified listings
/job approve [company]Trigger full pipeline
/job reviewReview 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

Footnotes

  1. Auto-apply services are a race to the bottom. Hiring managers know when an application is mass-produced.

  2. The parser extracts structured data using pattern matching. It's not perfect, but it's fast and free.