August 28, 2026 · By YasKad
santifer/career-ops

career-ops: the AI job-search command center that runs in your CLI

santifer/career-ops · 72,721★ · 13,671 forks

Everything worth knowing about santifer/career-ops: an open-source, AI-agent job-search system that turns any coding CLI (Claude Code, Codex, OpenCode, Antigravity, and others) into a full pipeline for evaluation, resume tailoring, portal scanning, and application tracking, local-first and with no telemetry.


What career-ops is

career-ops (also written careerops) isn’t a model, a cloud service, or a mass-application bot: it’s an open-source, MIT-licensed system that installs on the candidate’s own machine and runs from an AI coding CLI. The README defines it as a job-search “command center”: the AI agent browses job pages, scores offers against the resume, generates documents, and keeps a tracking log, while the human makes every final decision.

Its purpose is to filter, not flood. The README itself warns it’s not a “spray-and-pray” tool: the system recommends never applying to a posting that scores below 4.0 out of 5. Documented features include: offer evaluation in a structured report with blocks A through H and a 1-to-5 score reached by holistic judgment; tailored PDF generation optimized for ATS; automatic portal scanning with over 100 preconfigured companies and 45+ search queries; batch processing of 10+ offers in parallel; and tracking in a single source of truth with a Go-based TUI dashboard.

The repository was created on April 4, 2026 by Santiago Fernández de Valderrama Aparicio (santifer), an engineer and Head of Applied AI based in Seville. According to his case study on santifer.io and the Business Insider profile, the story is: Santiago started a real job search in 2026 for senior AI-engineering roles; the first week was fully manual, and by the second he stopped applying and started building the system instead. The real outcome of his search: 740 offers evaluated, 68 applications sent, 12 interview processes, and 1 signed offer.

Once he landed the role, he open-sourced it. In its first week, it went from a private repository to 35,000+ stars and 5,000+ forks (author’s own figures). On July 14, 2026, on crossing 60,000 stars, he wrote the CareerOps Manifesto (MANIFESTO.md) and coined the practice it’s named after: “CareerOps is the practice of managing a job search the way engineers manage a system in production: with evidence, with discipline, and with tooling on the candidate’s side.”

Verified press coverage includes Wired Greece (April 17, 2026), which described it as “the most effective tool for people applying to jobs” per AI circles on X; and Business Insider (April 28, 2026), titled “I built a tool to filter 700 job listings for my job search. It got me a position as head of AI.”

A dark-mode cyberpunk close-up of an AI job-offer evaluation interface inside a CLI, with neon cyan and magenta UI elements. The screen displays a structured report divided into labeled blocks A through H, each block glowing as a separate panel: CV match, skill gaps, salary research, STAR stories, legitimacy check, and interview preparation. A central scoring gauge shows a holistic 1-to-5 score, not a formula, with soft neural lines connecting evidence snippets to the score. One block highlights a legitimacy verification, scanning for fake postings with a small shield icon. The background is a dark developer terminal with faint code, file paths, and log lines. Ultra-detailed, crisp typography, neon accents, dark cyberpunk aesthetic, cinematic depth, 8K resolution.

Philosophy and principles

The MANIFESTO.md (v1.0, signed at 60,000 stars) condenses the philosophy into six practices: (1) apply better to less: “ten applications you believe in beat two hundred you don’t”; (2) signal over volume; (3) evidence over keywords: “reframe, never fabricate”; (4) a human decides: nothing is ever auto-sent; (5) local first: “your search isn’t anyone’s dataset”; (6) dignity on both sides of the table.

The nine rights include: being invisible by default; never paying; portable, exportable, and deletable data; and the right to know when a machine is deciding. The README adds the explicit commitment to keep the project MIT-licensed with no dark patterns, no cross-selling inside the CLI, and no paid features.

A symbolic image representing local-first job-search privacy, in a dark cyberpunk style. A personal laptop sits on a desk in a dimly lit developer workspace, its screen showing a CLI with file names like cv.md, applications.md, and scan-history.tsv. Around the laptop, translucent holographic shields and encrypted data containers float, emphasizing that everything stays on the user's machine. There are no cloud towers, no telemetry streams, and no external servers; instead, small lock icons, local disk symbols, and terminal logs radiate from the machine. The color palette uses deep black, slate blue, neon cyan, and warm amber. The mood is private, secure, and human-centered. Ultra-detailed, photorealistic cyberpunk lighting, high-contrast neon, 8K resolution.

How it works

The architecture is built on “modes, not one long prompt”: each mode is a skill file with its own context, rules, and tools. The case study documents 12 operational modes: auto-pipeline (full pipeline), oferta/ofertas (single or comparative evaluation), pdf (ATS-optimized generation), scan (board discovery), batch (an orchestrator with parallel workers), apply (form-filling with Playwright), contacto, deep (company research), tracker, and training.

The main flow (auto-pipeline): paste a URL or the offer’s text; the profile archetype gets classified; A-H evaluation reads cv.md; and three artifacts are produced: a Markdown report, a PDF in output/, and a tracking entry.

A futuristic dark-mode visualization of AI-generated, ATS-optimized resume PDFs. The image shows several glowing document pages floating above a terminal, each page rendered with clean typography, single-column layout, and highlighted keyword injections. One page displays a US letter-size resume, another displays an A4 European format, with subtle labels indicating language detection and regional formatting. Behind the documents, a translucent HTML template wireframe and font glyphs shimmer, suggesting self-hosted fonts and structured generation. Neon purple and cyan highlights trace the flow from raw candidate data to polished PDF output. The style is ultra-detailed, sleek, tech-forward, with dark cyberpunk lighting and crisp UI details, 8K resolution.

The scanner ships with more than 100 preconfigured companies and more than 55 provider modules. Since ATS feeds sometimes retain expired postings, node scan.mjs --verify adds a liveness check with Playwright only for new listings.

A cyberpunk network map of job-board scanning, rendered as a dark-mode holographic dashboard. At the center, a terminal command pulses with a scan icon, radiating neon beams toward dozens of node clusters representing company career pages and job-board APIs. The nodes are labeled with abstract categories such as "ATS feed," "XML/RSS," "Markdown flow," and "local analyzer," avoiding explicit brand logos. Small heartbeat lines show live verification of new postings, with expired listings dimming and fading. The interface includes counters for 100+ preconfigured companies and 45+ search queries, displayed as glowing numeric badges. The palette is black, deep indigo, electric cyan, and neon orange. Ultra-detailed, cinematic, high-contrast, 8K resolution.

The TUI dashboard (npm run serve:dashboard) is written in Go with Bubble Tea and Lipgloss (Catppuccin Mocha theme). The plugin system (v1.15.0) extends the core with integrations needing an API key: they’re opt-in, “sandboxed by convention,” and additive. The bundled plugins are apify, gmail, and notion.

A dark cyberpunk illustration of parallel batch processing for job-search evaluation. The image shows an orchestration queue in a terminal-like control panel, with eight worker nodes arranged in a grid, each connected to a central coordinator by glowing data streams. Each worker contains a mini job-card, a CV fragment, and a scoring meter, representing independent evaluation tasks. Retry loops, context windows, and resume checkpoints appear as subtle neon indicators. The background is a dense CLI environment with logs, progress bars, and task statuses. The visual mood is industrial, precise, and high-performance, with neon cyan, violet, and amber accents against a dark interface. Ultra-detailed, crisp technical rendering, 8K resolution.

A terminal UI tracking dashboard for job applications, styled as a dark-mode cyberpunk TUI with a Catppuccin-inspired palette of soft mauve, peach, teal, and deep navy. The screen displays six filter tabs, four sorting modes, and a grouped pipeline view of applications moving through stages such as scanned, evaluated, applied, interview, and offer. Each row is a glowing card with a company name placeholder, score, status badge, and timestamp. A side panel shows integrity checks, deduplication status, and a single source of truth file. The interface feels handcrafted and local, with subtle Go-language hints in the terminal chrome. Ultra-detailed, clean typography, neon accents, dark aesthetic, 8K resolution.

The ecosystem

Repositories by the author (santifer): santifer/cv-santiago (815 stars, web portfolio); santifer/jacobo-workflows (161, n8n workflows for his multi-agent system); santifer/career-ops-docs (55); santifer/claudeable (25); santifer/watermark-remover (25).

Bundled plugins (reviewed in the tree, intentionally minimal “reference seeds”): apify, gmail, notion. Registry-approved, all by Schlaflied: career-ops-plugin-tavily, career-ops-plugin-google-calendar, career-ops-plugin-linkedin-alerts, career-ops-plugin-outlook-interviews, career-ops-plugin-obsidian. CONTRIBUTING.md documents the “maintained successor” mechanism: if a bundled plugin needs more development, the community publishes one with the same id which, once registry-approved, takes priority over the bundled seed.

The README’s translations into 16 languages are themselves a visible community ecosystem.

Official and semi-official status

In the sources consulted, there’s no official acceptance on any marketplace and no vendor backing. What is verified: the README carries Product Hunt’s “featured” badge (the page wasn’t accessible during this run); both the project (Q139007988) and the author (Q138710224) have Wikidata entries; and CONTRIBUTING.md cites that “a single-network launch post drove 15,626 unique machines to clone the repository in a day.”

A conceptual image representing the CareerOps manifesto: evidence, discipline, human decision, and dignity in job search. In a dark cyberpunk chamber, a human hand reaches toward a glowing terminal panel that displays six practices and nine rights as elegant neon text fragments. One panel reads "Apply better to less," another "Human decides," another "Local first," and another "No auto-send." A small scale balances a candidate's time against a recruiter's time, symbolizing dignity on both sides. Around the scene, faint holographic job applications hover, but none are auto-sent; a lock icon marks the final human approval step. The lighting is cinematic, with neon cyan, violet, and warm amber highlights against deep black. Ultra-detailed, symbolic, tech-elegant, 8K resolution.

Quick-start guide

Installation and first run

Requirements: an AI coding CLI (Claude Code, Gemini CLI, Codex, Qwen Code, OpenCode, GitHub Copilot CLI, Antigravity CLI, or Grok Build CLI), Node.js 18+, and git.

npx @santifer/career-ops init

npx runs the installer once with nothing installed globally: it clones the latest release into ./career-ops and installs dependencies. Then:

cd career-ops
claude   # or codex / qwen / opencode / agy / grok

career-ops guides setup through conversation: it asks for the resume and details, and configures the scanner with preconfigured companies. Rendering PDFs requires installing headless Chromium once: npx playwright install chromium.

Common workflows

  1. Evaluate an offer: paste the URL directly; career-ops detects and runs the auto-pipeline.
  2. Find new offers: /career-ops scan.
  3. Process several at once: /career-ops batch evaluates multiple URLs in parallel with headless workers.
  4. Check status: /career-ops tracker.
  5. Application email draft: /career-ops email generates a subject, body, and attachment list. It’s draft-only: the system never sends anything.

Essential configuration

  • cv.md (root): the Markdown resume the system evaluates against. The core input.
  • config/profile.yml: name, target roles, salary, and candidate preferences.
  • portals.yml: the companies and queries the scanner visits.
  • .env: API keys for enabled plugins (the core needs none).

Common pitfalls and fixes

  • Burning API credits despite paying for Claude Pro/Max: if ANTHROPIC_API_KEY is set in the environment, it takes priority over the subscription and gets billed per token; clear it from the shell profile and restart.
  • The first evaluations aren’t great: per the README, “the system doesn’t know you yet”; it needs to be fed context.
  • Expired listings sneaking into the pipeline: node scan.mjs --verify filters out expired ones.
  • CLI cost: the author runs it on a Claude Max 20x plan, though the docs explain how to run it on free or local models.

Integrations and migration

career-ops relies on the open agent skills standard, linked for every compatible CLI, so switching between Claude Code, OpenCode, Antigravity, or Grok requires no reconfiguration. Plugins add integrations with Gmail, Notion, and Apify in the core, plus Tavily, Google Calendar, LinkedIn alerts, Outlook, and Obsidian in the community registry.

Repo numbers

Measured: August 24-25, 2026, GitHub API.

MetricValue
Stars68,155
Forks12,939
Subscribers260
Commits~1,527
Open issues327
Releases37
Primary languageJavaScript
LicenseMIT
CreatedApril 4, 2026
Latest releasecareer-ops-v1.28.0, August 20, 2026

Top contributors: santifer (317), careerops-ledger (93), Schlaflied (76), abankar1 (69), Scott-Emberson (69). On npm, @santifer/career-ops logged 3,604 downloads the week of August 17-23, 2026, and 10,960 over the prior month.

Contributing

CONTRIBUTING.md: for a new feature, open an issue first; bug fixes, unauthenticated scanner providers, docs, and translations can go straight to a pull request. Testing: node test-all.mjs is mandatory before pushing. Explicit limits: PRs that scrape platforms banning automated access, that enable auto-send without human review, or that send user data to an external service are not accepted.

How the community received it

The recovered evidence shows viral adoption concentrated outside Hacker News. All three HN submissions found have 2 points and 0 comments. The author’s case study cites an r/ClaudeAI thread with 2,600+ upvotes and a 4,400+-person Discord community (first-party figures, not independently verified). Wired Greece portrayed it as “the only topic” in AI circles on a Sunday night.

Verified caveats: the README warns the first evaluations will be poor until the system is fed context, and reminds users that models can hallucinate skills or experience.

career-ops versus other proposals

ProjectVerifiable overlapVerifiable difference
Paramchoudhary/ResumeSkills (1,801 ★)A collection of AI-agent skills for resume/application optimization.Focuses on CV skills, not the full scan-evaluate-track pipeline.
surapuramakhil-org/Job_search_agent (172 ★)An AI agent that searches for and applies to jobs.Applies on your behalf; career-ops is explicitly designed against auto-send.
suxrobGM/jobpilot (59 ★)An agent that applies to jobs: searches, adapts the resume, and fills forms.Fills and advances the application; career-ops stops everything at draft for human review.

The most useful comparison isn’t by popularity: career-ops stands out when you want a complete system that lives inside a coding CLI you already use, with local data and final human decision.

Use cases and who this repository can help

  • Technical candidates active in the AI market: if they already pay for Claude Code or similar, they get a pipeline that evaluates hundreds of offers at no marginal license cost.
  • People job-hunting internationally: language detection and regional PDF formatting, plus a training mode that scores courses and certifications.
  • Budget-conscious candidates: documented routes with free or local models, with no subscription required.
  • Anyone wanting to avoid spray-and-pray: an application log with deduplication, rejection-pattern analysis, and ghost-job detection.
  • Interview prep and negotiation: a mock-interview suite, salary-negotiation scripts, and a contract-reading companion.

Resources


Note: this article combines the README, MANIFESTO.md, and CONTRIBUTING.md of career-ops, the author’s case study on santifer.io, the GitHub API, the npm registry, Hacker News search, and the Wired Greece and Business Insider articles, consulted on August 24-25, 2026. Figures change over time.

Comments