Screen Them Back
Job hunting these days is AI versus AI. It’s just that until recently, only one side was armed.
On the company side, your résumé hits a screening system at the door, and if the keywords are off, you’re cut before anyone has laid eyes on you. On the job seeker’s side, it’s one person facing hundreds of postings, sending applications one at a time, and each one vanishes like a pebble down a well. You don’t even hear the splash.
There’s a guy in Spain named Santiago Fernández de Valderrama Aparicio, a name longer than plenty of people’s résumés. Online he goes by santifer. He’d founded a company before, built it up and sold it. Then he went job hunting, sent out résumés for months, and got crickets. Eventually something clicked, and the way he puts it is pretty rousing:
Companies use AI to filter candidates, so I gave candidates an AI to choose companies.
So he wrote a tool called career-ops. It went through 740 postings; he applied to 68, which got him 12 interviews and 1 offer: Head of Applied AI. He was its first user, and once he’d landed the job, he open sourced it.
What is it, anyway
career-ops went open source in April this year and is now closing in on 80k stars (79,629 when I checked), with 14,000+ forks and 700+ contributors. The code is MIT-licensed, and the website is career-ops.org. It ships often, too: v1.38.0 just came out on October 23.
For now it isn’t a website. It’s a set of skills that lives in your AI coding command line: it runs smoothest in Claude Code, also works in Codex, OpenCode, Qwen, Kimi, Grok and the like, and if that’s too pricey you can plug in free, local models. Your data stays on your own machine. Your résumé goes only from your computer to whichever AI you picked, and the project itself collects nothing.
The command names still have a Spanish accent: evaluating a posting is oferta, finding a contact is contacto.
What it does for you
Paste in a job link and it gets to work:
- Still hiring? First it checks whether the posting is still up. No more sweating over a cover letter for a job that was filled ages ago; it clears that mine for you. It can also tell when a posting keeps getting reposted, which might mean it’s a “ghost job.”
- Good fit? Using your real résumé, it scores the job on five things: how well it matches your résumé, whether it’s the direction you want, how the pay looks, company culture, and red flags. Then it rolls them into a single score from 1 to 5. Under 4, it advises you not to apply. If you insist, fine, but it’ll have said its piece.
- For the ones worth it: it tailors a résumé to the posting that applicant tracking systems can read, then drafts a cover letter and answers to the application questions.
- Who to talk to: it finds the hiring manager, HR or future teammates, and drafts a LinkedIn message under 300 characters. Drafts it. Doesn’t send it.
- After a string of doors in your face: it helps you spot the pattern behind the rejections and work out which skill you’re actually missing.
Further down the road, it handles interview prep, building up your STAR stories and salary negotiation scripts, and once a contract arrives, it’ll even go through it clause by clause and list the questions to ask a lawyer.
What it won’t do
The README has a whole section on what it won’t do, which I think matters more than what it will:
- It won’t apply for you: it can fill in every field, but the final “Submit” is yours to click. The script that prepares applications never submits anything, ever.
- It won’t email for you: drafts only. There’s no email-sending feature anywhere in the codebase.
- It doesn’t phone home: no data collection, and no servers of their own.
- It won’t egg you on: below 4.0, it won’t encourage you to apply.
One more rule: your résumé can be rewritten, never invented. Before it generates the PDF, the code checks it over, and if a number or fact shows up that can’t be found anywhere in your original résumé or materials, it gets blocked. What it can’t judge yet is how hard the wording leans, so the README itself says to read every résumé yourself before it goes out.
Polishing and bragging are separated by a single sheet of tissue paper. Whether the AI put a finger through it is on you to check.
A manifesto
The day the project hit 60k stars, it put out a manifesto with six points:
- Apply less, aim better.
- Signal over volume.
- Evidence over keywords.
- Humans make the call.
- Data stays local.
- Both sides of the table deserve dignity.
The first point comes with a follow-up line: ten applications you believe in beat two hundred you don’t. The line after the third point hits harder: an AI that lies for you isn’t on your side.
Spray-and-pray applying is basically handing out flyers on the street: give out a thousand and hope somebody reads one. Doing it with AI just means you hand out flyers faster, and the trash can on their end went AI a long time ago.
Installing it
If you have Node.js, it’s one command:
npx @santifer/career-ops init
It pulls the latest version into ./career-ops and installs the dependencies. Then go in there and open Claude Code (or Codex or the like). On first launch it’ll chat with you, asking about your résumé and what kind of work you’re after, so you don’t have to edit any config by hand.
Claude Code users can also install it as a plugin:
/plugin marketplace add career-ops-hq/career-ops
/plugin install career-ops@career-ops
If you’d rather do it by hand, git clone it and run npm install.
Don’t expect it to be sharp for the first few rounds. The README’s point, roughly: it doesn’t know you yet, so talk to it more, and treat it like a headhunter in their first week on the job.
Fair warning
- 740-to-68 is one man’s numbers: that’s santifer’s own result, not a statistical law. The project has a “Landed” wall; as of late October, 22 people had found jobs with it and written about it publicly, and the first one is santifer himself.
- Mostly jobs outside China: the 100-plus preloaded companies are the likes of Anthropic and OpenAI, and it mostly scans overseas applicant tracking systems like Greenhouse, Lever and Ashby. In China, what it can scan directly are the careers sites of Alibaba, Tencent and Meituan. Lagou, a Chinese job board, was specifically evaluated, but its robots.txt says no crawling, so the project didn’t go around it.
- You need to know your way around a command line: it’s CLI-only for now; the web version still has a waitlist.
- It burns tokens: every posting it evaluates means a call to a large model. The README specifically warns that if you’re on Claude Pro or Max and have
ANTHROPIC_API_KEYset in your environment, Claude Code switches to pay-as-you-go API billing, and your money quietly goes up in smoke. - You still have to read your résumé: it can catch made-up numbers. It can’t catch a pitch laid on too thick.
- Play by their rules: the disclaimer says to follow each job site’s terms of service when you use it, and not to use it to carpet-bomb employers.
Parting shots
The funniest part of this project is at the top of the README. santifer used it to land the Head of Applied AI job, did it for six months, quit, and came back to work on career-ops full time.
The biggest success story for this job-hunting tool? It hired itself a full-time employee.