career-ops Tutorial: Manage a Job Search with Codex or Claude Code

Install career-ops, configure a truthful CV, target roles, and company list, then use Codex or Claude Code for role evaluation, CV tailoring, PDF generation, and application tracking.

career-ops is a local job-search workspace designed to run inside an AI coding CLI. It keeps job collection, role scoring, CV tailoring, company research, PDF output, and application tracking in one directory so that Codex, Claude Code, OpenCode, and similar tools can work from your real records.

It cannot get a job for you, and it should not be used to invent experience or send indiscriminate applications. Its practical value is reducing duplicated work, uncontrolled document versions, and missing follow-up records.

Prerequisites

The quickest installation uses Node.js and npx. Check them first:

1
2
3
node --version
npm --version
npx --version

Prepare a truthful CV in Markdown or plain text as well. Do not store identity numbers, a home address, document scans, or other data that is unnecessary for role analysis in the project directory.

PDF generation also requires Playwright Chromium. You can install it later if you only need role analysis and text editing.

Initialize with one command

The official initializer is:

1
npx @santifer/career-ops init

It places the latest release in a career-ops directory and installs dependencies. Enter the directory and start the agent you actually use:

1
2
cd career-ops
codex

Or replace the last command with:

1
claude

On first launch, ask the agent to guide you through your CV, profile, and target roles. Run the complete process with a fictional or low-sensitivity sample before moving real personal data into the workspace.

Manual installation and environment checks

If automatic initialization fails, install manually:

1
2
3
4
git clone https://github.com/santifer/career-ops.git
cd career-ops
npm install
npm run doctor

Install the browser only when PDF output is needed:

1
npx playwright install chromium

npm run doctor provides better evidence than the existence of a directory or a successful npm install. It checks required prerequisites. If it fails, repair the reported component instead of deleting and reinstalling the entire project immediately.

Configure your profile and target companies

For a manual setup, copy the example files:

1
2
cp config/profile.example.yml config/profile.yml
cp templates/portals.example.yml portals.yml

In Windows PowerShell, use:

1
2
Copy-Item config/profile.example.yml config/profile.yml
Copy-Item templates/portals.example.yml portals.yml

Then create cv.md in the project root. Follow these rules:

  • Keep only truthful experience, projects, and skills in cv.md.
  • Store job direction, preferences, and constraints in profile.yml.
  • Maintain target companies or job sources in portals.yml.
  • Back up the original CV and version AI-edited files.
  • Never commit API keys, recruiting-site passwords, or cookies to Git.

Using career-ops in Codex

Codex does not require slash commands. You can name the workflow in natural language. Start with evaluation only:

1
Read this job description and run the career-ops scan mode. Explain the hard requirements, matches, and gaps. Do not modify the CV.

After deciding that the role is worth pursuing, continue with:

1
Prepare a tailored version for this role based on cv.md. Do not add any skill, number, or experience that is absent from the source CV. Show a change summary first.

For generated materials:

1
Run the PDF workflow for the latest evaluated role. List the generated file paths and every field that still requires human confirmation.

Finally update the application state:

1
Run tracker mode and record today's application status, the next follow-up date, and pending actions.

Do not generate a tailored CV immediately after receiving a job link. Use this sequence:

  1. Save the original description or URL and record the retrieval date.
  2. Evaluate hard requirements, responsibilities, and warning signs.
  3. Separate proven matches, adjacent experience, and real gaps.
  4. Adjust only the ordering and wording of relevant facts in the CV.
  5. Verify that every number, skill, and project is supported by the original records.
  6. Open the generated PDF and check pagination, fonts, links, and contact details.
  7. Update the status and next follow-up date after applying.

This prevents an agent from silently filling gaps with invented experience merely to raise a matching score.

Common problems

npx is missing or too old

Install a currently supported Node.js release and reopen the terminal. Avoid mixing a system Node installation, nvm, and several standalone directories, because node, npm, and npx may resolve to different versions.

npm install succeeds, but doctor fails

Use the exact npm run doctor output. PDF-related errors often indicate that Playwright Chromium is missing. Configuration errors require checking whether the example files were copied, YAML indentation is valid, and cv.md is in the project root.

The PDF is empty or badly formatted

First confirm that the browser is installed:

1
npx playwright install chromium

Then test with a short CV. Open the resulting PDF and verify its page count, wrapping, fonts, and clickable links. A zero exit code alone does not prove that the document is usable.

Privacy and truthfulness

career-ops runs in a local directory, but the AI CLI you use may send context to a cloud model. Review that service’s data policy and remove identity details that are not needed for the task.

An agent may reorder and rewrite existing facts. It must not create employment duration, education, certificates, client names, or performance figures. The purpose of automation is to reduce repetitive work, not to manufacture applications that only appear highly matched.

References