NEW GUIDE · How to become a forward-deployed engineer in 2026 · Read it →

Home Blog career-ops Review

Does career-ops Work? My Hands-On career-ops Review

career-ops is an open-source job search agent that runs inside an AI coding tool like Claude Code. When I installed it on October 30, 2026, its GitHub page showed 78.8k stars, 14.5k forks and more than 700 contributors. That kind of attention deserves a real test, not a summary of the README.

So I ran it end to end on a realistic scenario for this site's readers: a customer success manager trying to move into a pre-sales solutions engineer role. Here is what happened, including the parts that broke.

The short verdict

Who it's for: technically comfortable job seekers who want fewer, better-targeted applications and don't mind supervising an agent. Who should skip it: anyone expecting a one-click job finder, or anyone on a tight AI usage budget.

What career-ops is (and isn't)

career-ops scans company job boards, scores each posting against your CV from 1 to 5, and drafts tailored CVs, cover letters and interview prep. Your data stays on your machine; the README says your CV goes only to the AI provider you choose.

It does not submit applications. The README lists auto-submitting under what it will not do, and its apply mode prepares an application without sending it. That puts it on the opposite side from the auto-apply tools that are flooding recruiters with AI-written applications.

The project's creator, Santiago Fernández de Valderrama Aparicio, reports his own results on the repo page: 740 listings evaluated, 68 applications, 12 interviews, 1 offer. Those are his numbers, not verified, but they show the intended use: evaluate many roles, apply to few.

How I tested it

I used a fictional profile on purpose. The goal was to see how the tool treats a common career-change profile, not to run my own job search.

How to install career-ops on Ubuntu (what actually worked)

These are the steps from my test, including the two snags I hit.

  1. Install Node.js with nvm, not apt. On many Ubuntu releases sudo apt install nodejs gives you an old version.
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
    source ~/.bashrc
    nvm install --lts
  2. Clone and install career-ops. Its install step also downloads the headless Chrome it uses for PDFs.
    git clone https://github.com/career-ops-hq/career-ops.git
    cd career-ops && npm install

    The README's one-line alternative is npx @santifer/career-ops init.

  3. Install Claude Code (or another supported AI CLI). With recent npm versions, I got a warning that the package's install script was skipped. This fixed it:
    npm install -g --allow-scripts=@anthropic-ai/claude-code @anthropic-ai/claude-code
  4. Start it inside the folder with claude. If you sign in from a virtual machine, open the sign-in link in a browser inside the VM. Copying the code from the host machine cut it short and the sign-in failed the first time.
  5. Set up by chat. Point it to your CV and tell it your target roles. Then check the location and title filters it creates before your first scan (see the problems below).

Setup and onboarding: fast, with choices to check

Once Node.js was in place, career-ops installed in about 20 seconds: 7 packages and 0 reported vulnerabilities.

Onboarding happens by chat. I told it to use the sample CV and target roles, and it finished in under two minutes. Two things stood out:

The scan: thorough, slow and self-correcting

The first scan took 35 minutes and 32 seconds. Its scanner covered 96 companies and one job board, found 14,680 postings, and kept 30 after filtering by title, location and age. The agent then checked five companies' public job boards by hand and added 4 more, for 34 in total. It also checked whether postings were still live and caught one that now returned a 404.

During the scan the agent stopped several times to debug its own setup: the location matcher, a helper script that couldn't load a library, and hand-written queries for companies the scanner skipped. That is impressive problem-solving, but it is not the one-command experience the README suggests.

Its own report flagged three problems:

  1. Remote US roles were dropped. The location filter it set during onboarding accepted only "United States", so postings labelled "Remote - US" or "Hybrid - San Francisco" were rejected. About 13 relevant roles were lost.
  2. A Saudi Arabian job passed as a US job. "Riyadh, Ar Riyad, Saudi Arabia" matched because the scanner read ", Ar" as Arkansas. The agent traced it to a specific line in the scanner's code.
  3. Singular titles were missed. "Solution Engineer" and "Solution Consultant" weren't in the title filter.

When I asked it to fix the filters, it widened the location rules, added the missing titles, patched the Arkansas bug, wrote a regression test and rescanned in under 6 minutes. The pipeline grew from 34 to 45 roles, and the Saudi role was removed. One caution: the patch changed career-ops' own code locally, so the next update would overwrite it.

The most useful finding: none of the 12 roles added by the rescan were entry-level. Associate solutions engineer roles did exist at HubSpot, Salesforce and Hyperbound, but only on aggregator sites the agent wouldn't treat as confirmed live postings. Entry points into solutions engineering are scarce, which matches my count of 20 open SE postings: 16 of 20 asked for prior pre-sales or similar customer-facing technical experience.

Web search added little. The search engine ignored most of the agent's filters and returned aggregator listings; the useful results came from the agent going to each employer's job board directly.

The scores: realistic and well explained

I asked it to evaluate the seven best-fitting roles. The batch took about 5 and a half minutes, and each role came with a written report.

RoleScoreVerdictThe tool's main reason
Sierra, Associate Sales Engineer4.2ApplyCounts technical support or consulting; early-career experience counts; works alongside senior SEs with mentorship
Talkdesk, Associate Solutions Engineer4.2ApplyEarly-career, developmental role that names customer success and support as preferred backgrounds
Attio, Solutions Engineer, Mid-Market4.0Research firstAsks for 2+ years on the technical side of accounts, pre- or post-sale; the gap would show in a mock demo
Synthesia, Solutions Engineer3.8ConsiderAccepts customer-facing technical experience, but it's the first SE hire in North America
Boomi, Presales Solutions Engineer3.4ConsiderNot an associate role; the real gap is AI work (chat AI, prompt engineering, LLM APIs)
Vapi, Solutions Engineer3.3ConsiderWants 3+ years in an SE-type role and enterprise deal ownership within 90 days
Klarna, Solutions Engineer3.1SkipMissing payments and card-network knowledge

This is the part I'd pay attention to. The two highest scores went to the only two associate roles, and according to its report, Talkdesk's posting names customer success as a preferred background. Across every report, the same three things carried Jordan's profile: the supported proofs of concept, the SSO and API onboarding work, and the Postman and Python tooling. That is exactly the evidence I recommend customer success managers build before applying.

It did not mark roles down for pay. Posted ranges ran from $110,000 to $140,000 base at Sierra up to about $193,000 to $220,000 at Klarna, according to its reports of those postings.

Day two: one word wiped the results

When I came back the next morning, I resumed the session and typed one word: "restart". I meant the virtual machine, which had just told me it needed a reboot.

The agent read it as "restart the test". Thirty-three seconds later, with auto mode on, it deleted the pipeline, the scan history, all seven evaluation reports and the saved job descriptions, and reset the tracker to empty. It didn't ask first. I found out only when it reported that no Sierra evaluation existed, and confirmed what happened from Claude Code's session log.

To be fair to career-ops, this isn't a bug in its code. It's an AI agent taking a destructive action on an ambiguous instruction, which is a risk with any agent you let act without approval. But career-ops keeps everything in local, uncommitted files, so nothing could be recovered.

Three habits would have prevented it:

  1. Keep auto mode off for anything beyond scanning, so deletions need your approval.
  2. Back up the data/, reports/ and jds/ folders after each session, or commit them to a private git repository.
  3. Be precise. "Restart the VM" or "start a new chat" would not have been read as "wipe my results".

The tailored CV: I ran out of usage first

I planned to generate a tailored CV for the top-scored role and check it line by line against the original. I didn't get there. After the setup, two scans and seven evaluations, Claude Code stopped with a message that my usage limit was reached.

That is a finding in itself: one realistic test session used up my plan's usage before the CV step. I'll add the CV check here once my limit resets. The README says a code check blocks facts and numbers that aren't in your CV, and it also admits that check can't judge every rewording, so read every generated CV before you send it.

What it costs

career-ops is free and MIT-licensed. The AI usage is not.

StepTokens (reported by the agent's workers)
Scan163,788
7 job evaluations1,261,287 (about 175,000 to 194,000 each)
Totalabout 1.43 million

That total leaves out the main conversation, so the real figure is higher. In practice, the session hit my plan's usage limit before I could generate a single CV. Most of each evaluation's tokens went to re-reading the same roughly 1,300 lines of instructions, which is why each one cost about the same.

On a Claude subscription, usage like this counts against your plan's limits quickly. On pay-as-you-go API billing, check current pricing for your model before running large batches. Either way, evaluate a shortlist, not everything the scanner finds.

Should you use it?

Use it if you are comfortable in a terminal, you want help deciding where to apply rather than applying everywhere, and you will read what it produces before you send anything.

Skip it if you want a finished product. Expect to supervise, check its filters and watch your AI usage.

For career changers specifically, its most useful output isn't the tailored CV. It's the gap analysis: a specific, posting-by-posting explanation of what stands between your background and the role. If you are moving from customer success to solutions engineering, my CSM to solutions engineer guide covers how to close those gaps.

career-ops FAQ

Does career-ops work?

Yes, with supervision. In my test it scanned 14,680 postings, filtered them to a usable shortlist and scored seven roles with clear, specific reasons. It also needed its location and title filters fixed, and it found a bug in its own scanner along the way. It works best as a decision aid, not an autopilot.

How do I use career-ops?

Install Node.js, clone the repo, run npm install, then open an AI CLI such as Claude Code inside the folder and set it up by chat. The install steps above cover the snags I hit. After setup, run a scan, evaluate a shortlist, and generate CVs only for roles that score 4 or higher.

Does career-ops apply to jobs automatically?

No. It scans, scores and drafts, but the README lists auto-submitting under what it will not do, and its apply mode prepares an application without sending it. You submit yourself.

How much does career-ops cost?

The software is free and MIT-licensed. The AI usage is the cost: in my test, one scan used about 164,000 tokens and each job evaluation about 175,000 to 194,000. See the cost section above.

Is career-ops safe to run?

It is open source and keeps your data in a local folder, and the README says your CV goes only to the AI provider you choose. It still runs code and reads job pages from the web, so I ran it in a virtual machine and approved its actions one at a time at first. The one real loss in my test came from auto mode: the agent deleted my results after an ambiguous one-word message (see "Day two" above). Keep auto mode off and back up your data folder.

Does career-ops work with Claude Code?

Yes. I tested it with Claude Code 2.1.314. The README also lists Codex, OpenCode and other AI CLIs, plus a standalone Gemini script.

How long does a career-ops scan take?

My first scan took 35 minutes and 32 seconds, including the agent debugging its own filters. A rescan after fixing the filters took under 6 minutes.

Is career-ops good for career changers?

Its gap analysis is the most useful part: it explains, posting by posting, what stands between your background and the role. It is less useful for finding entry-level roles, which were scarce in my test.


I have no relationship with the career-ops project and was not paid for this review. I tested it with a fictional profile; no real applications were sent.

Get new career guides by email

One email when something useful is published. No spam, unsubscribe anytime.