AI Claude Code Skills career-ops tutorial job search 2026

How to Use Career-Ops on Claude Code: From Zero to First Application in 30 Minutes (2026)

The Prompt Shelf ·

If you’ve read our Career-Ops Complete Reference and want to actually use the system, this is the practical follow-up. We’ll walk through installing Career-Ops, onboarding your CV, scanning portals, running batch evaluations, and submitting your first reviewed application — in roughly 30 minutes from a clean machine.

This page assumes you have Claude Code installed and a Node.js 20+ runtime. Everything else, we’ll set up together.

Why Walk Through Career-Ops Step-by-Step?

The README at santifer/career-ops covers the architecture and the philosophy. What it deliberately leaves vague is the moment-by-moment flow — which prompts to type, when to invoke which mode, how to know when a mode’s done. Without that flow, the 14 skill modes feel like a buffet you don’t know how to eat.

This article gives you that flow. By the end you will:

  1. Have Career-Ops installed and your CV onboarded.
  2. Have run a portal scan against pre-configured companies.
  3. Have completed a batch evaluation across 10+ job postings.
  4. Have generated one ATS-optimized PDF for an opportunity that crossed the 4.0/5 threshold.
  5. Know which mode to invoke for any future task without checking the docs.

Prerequisites

Before you start:

  • Claude Code — install from code.claude.com if you haven’t.
  • Node.js 20+ — check with node -v. If older, use nvm install --lts.
  • A CV in plain text or Markdown — Word/PDF works too, but Markdown is cleanest for the onboarding step.
  • 30 minutes of focused time — most of it goes into the CV onboarding conversation, which determines output quality for everything afterward.

You do not need:

  • A Cloudflare or hosting account (Career-Ops runs locally).
  • Database setup (it uses Markdown tables and YAML).
  • Familiarity with Playwright (the installer handles it).

Step 1: Install Career-Ops (3 minutes)

# Clone the repository to a directory of your choice
git clone https://github.com/santifer/career-ops.git
cd career-ops

# Install Node dependencies
npm install

# Install Playwright Chromium (mandatory for the verification mandate)
npx playwright install chromium

# Run the doctor command to verify your environment
npm run doctor

If npm run doctor reports red flags (missing Chromium, wrong Node version, etc.), fix them now. The rest of the flow assumes a clean doctor.

Step 2: CV Onboarding via Claude Code (15-20 minutes)

This is where most users go wrong by rushing. The CV onboarding step is the single biggest determinant of output quality across the entire system. Take time here.

2a. Drop your CV in the repo root

# In the career-ops directory you cloned
cp ~/path/to/your-cv.md cv.md

If your CV is a PDF, convert it to Markdown first using any tool (pandoc, online converters, or just paste into a Claude conversation and ask it to convert).

2b. Start Claude Code in the career-ops directory

cd ~/path/to/career-ops
claude

Claude Code loads the project’s CLAUDE.md, which itself imports AGENTS.md. You don’t have to do anything special — Claude becomes Career-Ops-aware automatically.

2c. Tell Claude to begin onboarding

Type this exact prompt:

Begin Career-Ops onboarding. I've placed my CV at cv.md.
Walk me through everything you need to know to evaluate job offers
matched to my background — target archetypes, geography, comp expectations,
deal-breakers, and what excites me about the work.

What happens next: Claude reads your CV, then asks structured follow-up questions one section at a time. Common areas covered:

  • Target archetypes (“Head of Applied AI”, “Senior Backend Engineer”, “FDE”, “PM AI”, etc.) — pick 2–4.
  • Geography (“Tokyo remote-OK”, “Berlin/EU only”, “Anywhere US-Pacific time”).
  • Comp targets (base salary range, equity expectations).
  • Deal-breakers (no on-call, no relocation, no agencies, etc.).
  • What excites you (research labs, late-stage scale-ups, vibes of the work).
  • Recent wins / proof points for STAR stories later.

Type your answers carefully. Career-Ops uses your responses to populate modes/_profile.md and config/profile.yml. Everything downstream — scoring, CV adaptation, cover letters, negotiation — pulls from this file. If you write “I’m flexible” to every question, the output will be generic.

2d. Verify the data contract

After onboarding, check that your customizations went to the right place:

cat modes/_profile.md       # User-specific scoring, narrative, deal-breakers
cat config/profile.yml      # Name, location, target roles, comp

These two files are your user-layer data. Everything else (modes/_shared.md, modes/oferta.md, modes/batch.md) is system-layer and shouldn’t be edited by hand — updates to Career-Ops will overwrite anything you edit there.

Step 3: Configure Job Portals (5 minutes)

Career-Ops ships with portals.example.yml listing 45+ pre-configured companies (Anthropic, OpenAI, Stripe, Linear, Vercel, etc.). Copy it and adjust:

cp templates/portals.example.yml portals.yml

Open portals.yml and:

  • Remove companies you don’t want (cleaner output later).
  • Add custom companies with their job board URLs. Common job board patterns the scanner understands: Greenhouse, Ashby, Lever, Workable, Recruitee, plus generic company /careers/ pages.

Format:

companies:
  - name: Anthropic
    url: https://www.anthropic.com/careers
    archetypes_of_interest: [Applied AI, Research, Eng Manager]
  - name: Your Custom Co
    url: https://jobs.ashbyhq.com/your-custom-co
    archetypes_of_interest: [Backend Engineer, Platform]

Step 4: Your First Scan (5 minutes)

Back in Claude Code:

Use career-ops to scan the portals in portals.yml.
For each open position, capture the URL, title, company,
and basic role description. Save results to scan-results/.

Claude invokes the Scan mode. Playwright opens each portal URL, extracts open positions, and writes them to a Markdown index in scan-results/. This takes 3–8 minutes depending on how many portals you have.

When it finishes, check the output:

ls scan-results/
cat scan-results/index.md

You should see a list of 20–80 open positions across your configured portals, deduplicated by URL.

Step 5: Batch Evaluation (5–15 minutes)

This is where the magic happens. In Claude Code:

Run a batch evaluation across all positions in scan-results/.
Use the auto-pipeline mode. For each position, generate a report at
reports/<NNN>-<company-slug>-<date>.md with A–F scoring across all
10 dimensions. Skip anything you can't verify in Playwright.

What happens next is the parallel-worker pattern from the Career-Ops Complete Reference: a conductor process spawns multiple claude -p workers, each claiming URLs from the queue via lock files.

Progress is logged to batch-state.tsv. Watch it:

tail -f batch-state.tsv

When the batch finishes, you’ll have one Markdown report per position in reports/. Each report contains:

  • A-F overall grade
  • 10-dimension scoring breakdown
  • Recommended action (apply / skip / hold)
  • Posting legitimacy tier (T1–T4)

Step 6: Triage (5 minutes)

Now filter to opportunities worth a closer look:

# List reports with grade A or B (the 4.0/5+ threshold)
grep -l "Overall: [AB]" reports/*.md

# Or use the pipeline mode:

In Claude Code:

Use the pipeline mode to filter reports/ to opportunities graded A or B.
Show me the top 10 ranked by alignment with my archetypes,
and flag any with legitimacy below T2.

The output is a short-list. Read each report once, with your own eyes, before doing anything more. Career-Ops is an analysis filter, not a decision-maker.

Step 7: Generate Your First Adapted CV (3 minutes)

Pick the top-ranked opportunity. In Claude Code:

Use the PDF mode to generate an ATS-optimized resume for
reports/001-<company-slug>-<date>.md. Inject the keywords from
the job description, save to pdfs/, and tell me which sections
you adapted from cv.md and why.

Claude invokes the PDF mode. It reads your cv.md and the job report, generates a customized HTML resume using the Space Grotesk + DM Sans template, then renders to PDF via Puppeteer.

open pdfs/001-<company-slug>-<date>.pdf

Review the PDF. Always check it before submitting — Career-Ops is good but not perfect, and you’ll catch over-claims or awkward phrasing the model missed.

Step 8: Submit (with Approval Pause)

If the PDF looks good and you want to apply:

Use apply mode to submit reports/001-<company-slug>-<date>.md.
Use the PDF at pdfs/001-<company-slug>-<date>.pdf.
Pause for my approval before clicking the submit button.

The Apply mode opens the job’s application form in Playwright, fills it in based on your cv.md and config/profile.yml, attaches the PDF, then pauses at the submit button. You confirm with “submit” or fix anything that looks off.

The 14 Skill Modes — Reference Card

Now that you’ve used the core flow, here’s the quick-reference for invoking the rest:

ModeWhen to invoke
Oferta”Evaluate this single job posting in detail: <URL>“
PDF”Generate an ATS-optimized CV for report XX”
Scan”Scan all portals in portals.yml”
Batch”Batch-evaluate all URLs in scan-results/“
Tracker”Show me my application tracker”
Apply”Use apply mode to submit report XX with PDF XX”
Pipeline”Filter reports to grade A/B opportunities”
Contacto”Draft a LinkedIn outreach message to recruiter at <company>“
Deep”Do a deep company research dossier for <company>“
Training”Should I take the <course/cert> for my Applied AI archetype?”
Project”Evaluate this portfolio project for fit signaling: <URL>“
Interview”Help me prep for a behavioral interview with STAR stories from my profile”
Negotiate”Draft a negotiation script for an offer at <company> for $X base, $Y equity”
Dashboard”Open the dashboard” (terminal UI for pipeline visualization)

Common Pitfalls (Real Ones)

  1. Rushing CV onboarding. Generic answers in Step 2c → generic everything downstream. Take the full 15 minutes.
  2. Skipping npm run doctor. Half of all “Career-Ops doesn’t work” reports trace back to a missing Chromium or wrong Node version.
  3. Editing modes/_shared.md to customize. The data contract says: customize only modes/_profile.md and config/profile.yml. Anything else gets overwritten on update.
  4. Submitting without reading the PDF. Career-Ops is high-quality but not perfect. Always eyeball the PDF first.
  5. Treating below-4.0 scores as “still worth applying.” The author built the threshold for a reason — every below-4.0 application costs you reputation with a recruiter. Override sparingly.
  6. Running Batch on a 5-URL queue. Parallel workers have overhead. Wait until you have 30+ URLs to justify Batch — otherwise loop through individually with Oferta.

What’s Next

Once you’re comfortable with the core flow, the modes that pay off most for sustained use are:

  • Tracker — keeping your application states honest (Evaluated / Applied / Responded / Interview / Offer / Rejected / Discarded / SKIP)
  • Interview — STAR story bank accumulates over time; the Nth interview you prep with Career-Ops is meaningfully better than the first
  • Negotiate — most engineers leave money on the table because they don’t have scripts; Career-Ops gives you scripts grounded in your _profile.md

For deeper architecture, see Inside Career-Ops: 14-Mode Skills Architecture. For the full system reference, see Career-Ops on Claude Code: The Complete 2026 Reference.

FAQ

How long does the full first-time setup take?

About 30 minutes if you have a CV ready and 30 minutes of focus. Install + Playwright (~3 min), CV onboarding (~15 min, the most important step), portal config (~5 min), first scan (~5 min). Subsequent runs are much faster — you only do scan/batch/triage/PDF, which is 10–15 min total per session.

Do I need a paid Claude Code plan?

No. Career-Ops runs on any Claude Code plan (free or paid). The cost driver is total tokens consumed, not plan tier. A typical batch evaluation of 50 jobs uses 200K–500K tokens — well within free-tier monthly limits.

Can I run Career-Ops in a CI environment instead of locally?

Yes, but with caveats. Use claude -p headless mode and disable the Playwright verification mandate (it falls back to WebFetch with **Verification:** unconfirmed (batch mode) marker). The trade-off: ghost-job filtering becomes unreliable. CI mode is useful for nightly portal scans of pre-vetted companies, less so for ad-hoc batch evaluation.

How do I prevent Career-Ops from auto-submitting an application?

You can’t auto-submit even if you tried. The Apply mode pauses at the submit button by design — Career-Ops never clicks submit on its own. The author has been explicit about this across README, AGENTS.md, and the dev.to writeup. Even if you tell Claude “just submit it,” the mode’s instructions enforce the pause.

What if my CV is in PDF?

Convert to Markdown first. Easiest: paste the PDF text into a Claude conversation and ask “convert this to Markdown, preserving structure.” Then save as cv.md in the career-ops directory. Other options: pandoc input.pdf -o cv.md, or online PDF→Markdown converters.

How do I update Career-Ops without losing my customizations?

Pull the latest changes; your customizations are safe by design. The data contract guarantees that modes/_profile.md and config/profile.yml are user-layer files that never get overwritten by git pull. The system-layer files (modes/_shared.md, modes/oferta.md, etc.) update freely. If you edited system files manually, those get clobbered — that’s why the data contract exists.

Can I add my own custom skill mode?

Yes. Drop a new Markdown file into modes/<your-mode>.md following the same conventions as the existing modes (the _shared.md import, the role definition, the evaluation rubric). Then invoke it in Claude Code: “Use the <your-mode> mode for…”. For a deeper look at the mode pattern, see Inside Career-Ops: 14-Mode Skills Architecture.

How does Career-Ops compare to LinkedIn EasyApply?

Different scope. EasyApply is a one-click submit; Career-Ops is an analysis pipeline. The value of Career-Ops is before the submit — knowing which 5 of 50 jobs are worth your time, having a CV that actually matches the JD, and tracking everything in a single source of truth. EasyApply is downstream of all that. Many users combine them: Career-Ops to filter and adapt, EasyApply (on LinkedIn) to submit when a position is on LinkedIn.

Where do I get help if Career-Ops doesn’t work?

Three places: (1) npm run doctor for environment issues, (2) the GitHub Issues page for bugs, (3) the Apply mode pause point to inspect the form Career-Ops generated. The author is responsive on GitHub for genuine bugs but doesn’t field “I disagree with my A-F grade” questions — those are user-layer config issues.

External References

Related Articles

Career-Ops on Claude Code: The Complete 2026 Reference (14 Skill Modes, 10 Evaluation Dimensions, 3 Forks Compared)

Career-Ops by Santiago turned 740 listings into 1 Head of Applied AI offer. Full reference to 14 skill modes, the A–G evaluation rubric, multi-agent design, and how 3 community forks differ — all verified against the GitHub source.

Inside Career-Ops: 14-Mode Skills Architecture Lessons for Claude Code Builders (2026)

Santiago's Career-Ops hit 44,554+ GitHub stars (44.5K within a week). Beyond the job-search use case, it's a reference implementation for building production Claude Code Skills. We dissect the 14-mode architecture, AGENTS.md setup, 10-dimensional scoring, and what you can steal for your own systems.

Claude Code Hooks: The Complete 2026 Production Reference (32+ Events, 5 Handler Types, Exit Code Semantics)

Every Claude Code hook event in one page — verified against Anthropic's May 2026 docs. Cover all 32+ event types, 5 handler types (command/http/mcp_tool/prompt/agent), matcher patterns, exit code 2 blocking semantics, JSON input/output schemas, and production patterns.

AGENTS.md vs CLAUDE.md vs .cursor/rules: The Complete 2026 Three-Way Comparison (with Migration Paths)

AGENTS.md, CLAUDE.md, and .cursor/rules each solve AI coding configuration differently. We compare all three on scope, frontmatter, scoping, imports, and rule activation — verified against Anthropic and Cursor 2026 docs — plus migration paths between them.

Explore the collection

Browse all AI coding rules — CLAUDE.md, .cursorrules, AGENTS.md, and more.

Browse Rules