Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions content/docs/reference/commands.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: "All career-ops commands"
seoTitle: "career-ops commands: the full list"
description: "Every career-ops command in one table: what each one does in a line, with a link to its reference page when it has one."
icon: SquareTerminal
---

career-ops works through commands that you type in the AI coding CLI where you run it. `/career-ops` on its own shows them all; you can also paste a job URL or description directly, and career-ops detects it and runs the full pipeline. In Codex, slash commands are not guaranteed: use the same command names in a prompt instead.

None of them sends an application for you. It drafts and fills; it never submits. You press Submit.

{/* generated:source:start (scripts/community-snapshot.mjs) */}
The list below is the Usage block of the core README (as of 23 Oct 2026, core commit [115bc98](https://github.com/career-ops-hq/career-ops/tree/115bc9873e3d43e23883f3c8f16436617facc62c)).
{/* generated:source:end */}

{/* generated:commands:start (scripts/community-snapshot.mjs) */}
| Command | What it does | Reference |
| --- | --- | --- |
| `/career-ops` | Show all available commands | |
| `/career-ops {JD}` | AUTO-PIPELINE: evaluate + report + PDF + tracker (paste text or URL) | [auto-pipeline](/docs/reference/modes/auto-pipeline) |
| `/career-ops pipeline` | Process pending URLs from inbox (data/pipeline.md) | [pipeline](/docs/reference/modes/pipeline) |
| `/career-ops oferta` | Evaluation only, blocks A to H (no auto PDF) | [oferta](/docs/reference/modes/oferta) |
| `/career-ops ofertas` | Compare and rank multiple offers | [ofertas](/docs/reference/modes/ofertas) |
| `/career-ops contacto` | LinkedIn power move: find contacts + draft message | [contacto](/docs/reference/modes/contacto) |
| `/career-ops deep` | Deep research prompt about company | [deep](/docs/reference/modes/deep) |
| `/career-ops interview-prep` | Generate company-specific interview prep doc | [interview-prep](/docs/reference/modes/interview-prep) |
| `/career-ops interview` | Interactive profile/CV onboarding interview | |
| `/career-ops master-profile` | Import, review, validate, and prepare selected Profile facts as CV bullets | |
| `/career-ops eu-swe` | Calibrate a European SWE application before CV/apply/interview | |
| `/career-ops interview/plan` | Time-blocked prep plan for an upcoming interview | |
| `/career-ops interview/practice` | Practice interview, one question at a time with feedback | |
| `/career-ops interview/debrief` | Post-interview debrief: close gaps, predict next round | |
| `/career-ops interview-redflag` | Analyze employer warning signs before joining a company | |
| `/career-ops pdf` | PDF only, ATS-optimized CV | [pdf](/docs/reference/modes/pdf) |
| `/career-ops text` | Tailored markdown CV (mirrors cv.md, no PDF) | |
| `/career-ops latex` | Export CV as LaTeX/Overleaf .tex | |
| `/career-ops latex-tex` | Tailor your own resume.tex in place (opt-in; cv.md stays default) | |
| `/career-ops cover` | Cover letter: standalone JD paste or /career-ops cover \{slug\} | |
| `/career-ops email` | Formal application email draft (draft-only; never sends, submits, or clicks) | |
| `/career-ops add` | Add a project/paper/role to your CV (fetch + preview + confirm) | |
| `/career-ops expand` | Auto-discover and add missing competencies from profile links | |
| `/career-ops training` | Evaluate course/cert against North Star | [training](/docs/reference/modes/training) |
| `/career-ops project` | Evaluate portfolio project idea | [project](/docs/reference/modes/project) |
| `/career-ops tracker` | Application status overview | [tracker](/docs/reference/modes/tracker) |
| `/career-ops agent-inbox` | Queue/drain requests for the next session (data/agent-inbox.md) | |
| `/career-ops apply` | Live application assistant (Playwright from this checkout, does not submit) | [apply](/docs/reference/modes/apply) |
| `/career-ops scan` | Scan portals and discover new offers | |
| `/career-ops discover` | Resolve a company list to scannable ATS boards + append to portals.yml (zero-token) | |
| `/career-ops batch` | Batch processing with parallel workers | |
| `/career-ops patterns` | Analyze rejection patterns and improve targeting | [patterns](/docs/reference/modes/patterns) |
| `/career-ops offer-prep` | Read a received offer/contract with the candidate: clause walk + lawyer questions (not legal advice) | |
| `/career-ops titles` | Suggest adjacent job titles from your CV to broaden the search | |
| `/career-ops upskill` | Aggregate skill-gap analysis from your evaluated reports | |
| `/career-ops followup` | Follow-up cadence tracker: flag overdue, generate drafts | [followup](/docs/reference/modes/followup) |
| `/career-ops reply-watch` | Classify employer replies and suggest tracker updates | |
| `/career-ops outcome` | Record application outcome & archive artifacts | |
| `/career-ops calibrate` | Advisory report: do your evaluation scores predict your real outcomes? Reads /outcome data; never changes scoring | |
| `/career-ops update` | Update career-ops system files with diff preview + compat check | |
{/* generated:commands:end */}

The README block does not list one command yet: `/career-ops retro`, which turns your corrections from a session into rules you approve. See [retro](/docs/reference/modes/retro).

The commands with a reference page are explained in depth in [Modes](/docs/reference/modes).

## Helper scripts

These run in a terminal from the career-ops folder, not in the chat. The first four are read-only and use no AI tokens, and each one prints a readable table with `--summary`.

| Command | What it does |
| --- | --- |
| `npm run closing-soon -- --summary` | Lists tracker rows whose posting closes soon, read from dates you noted (such as "closes 2026-10-22") or from the archived posting. The window is 7 days; change it with `--within 14`. Rows with a date it cannot read are listed, not guessed. |
| `npm run filter-audit` | Shows which `title_filter` keywords earn their keep: how many postings each one is the only keyword to catch, and how those postings scored. |
| `npm run ics-interview -- invite.ics --summary` | Reads an interview invite's `.ics` file: start, end, time zone and meeting link. It prints a row for you to paste into `data/active-interviews.md`. |
| `npm run reeval-candidates -- --summary` | Lists tracker rows scored before your CV, profile or other sources last changed, so you can decide which ones to evaluate again. |
| `npm run ui` | Starts the experimental, opt-in web UI (alpha): a local-first view over the same files the CLI reads and writes, at localhost. See [web/README.md](https://github.com/career-ops-hq/career-ops/blob/career-ops-v1.38.0/web/README.md). |

4 changes: 3 additions & 1 deletion content/docs/reference/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"title": "Reference",
"pages": [
"modes",
"portals"
"commands",
"portals",
"plugins"
]
}
2 changes: 2 additions & 0 deletions content/docs/reference/modes/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ icon: Layers

career-ops ships **15 user-invocable modes**. Each one is a plain-markdown skill the agent loads and runs inside whichever AI coding CLI you already use — Claude Code, Cursor, Codex, OpenCode, Qwen, GitHub Copilot, or [another supported CLI](/docs/supported-clis). You invoke a mode as `/career-ops <mode>`, and each covers one stage of the job search: evaluating a listing against the rubric (five dimensions plus a holistic global score), tailoring a CV, drafting an application, tracking outcomes, or preparing for interviews. Modes are System Layer per the [Data Contract](https://github.com/career-ops-hq/career-ops/blob/main/DATA_CONTRACT.md) — updates replace them with the latest version, and no update ever modifies your `cv.md`, profile, or reports.

These 15 have a page each. The full list of commands, including the ones without a page, is [All commands](/docs/reference/commands).

## Evaluate

The core scoring loop — read a job listing and score it against the five dimensions plus a holistic global score before you spend any effort on it.
Expand Down
84 changes: 84 additions & 0 deletions content/docs/reference/plugins.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: "Built on career-ops: community plugins and job boards by country"
seoTitle: "career-ops plugins and job boards by country"
description: "The plugins the community has published for career-ops, the job boards by country its contributors added to the scanner, and how to write your own."
icon: Blocks
---

career-ops is open source (MIT) and free for candidates, and a large part of what it does was written by the people who use it. This page lists what the community has built on it: plugins that add job sources, search and exports, and job boards for markets beyond the companies' own career pages.

{/* generated:numbers:start (scripts/community-snapshot.mjs) */}
**By the numbers** (as of 23 Oct 2026, core commit [115bc98](https://github.com/career-ops-hq/career-ops/tree/115bc9873e3d43e23883f3c8f16436617facc62c)): 11 community plugins in the registry, by 6 authors; more than 100 job source providers in the core scanner.
{/* generated:numbers:end */}

## Community plugins

A plugin is a separate repository that career-ops loads through hooks: `provider` adds a job source, `search` adds a search engine, `ingest` brings data in (job alerts, calendars), `notify` sends alerts and `export` writes your data somewhere else. There is no hook that submits an application. Every plugin in the registry was reviewed by the core maintainers and is pinned to an exact commit. Each row links the plugin's own repository, where its README explains setup.

{/* generated:plugins:start (scripts/community-snapshot.mjs) */}
| Plugin | Author | What it does | Hooks | Listed |
| --- | --- | --- | --- | --- |
| [commute](https://github.com/bullitt186/career-ops-plugin-commute) | [@bullitt186](https://github.com/bullitt186) | Drive time from home to each posting's workplace for evaluation and triage; home stays coordinates, routing runs on your own OSRM/Valhalla | `ingest`, `search` | 11 Oct 2026 |
| [docx](https://github.com/rubicon/career-ops-plugin-docx) | [@rubicon](https://github.com/rubicon) | Export your cv.md to a clean, ATS-friendly Word .docx, honoring #### nested sub-roles for fractional, interim, and umbrella engagements. | `export` | 8 Jul 2026 |
| [google-calendar](https://github.com/Schlaflied/career-ops-plugin-google-calendar) | [@Schlaflied](https://github.com/Schlaflied) | Google Calendar ingest: detect upcoming interview events and surface them in the career-ops pipeline. | `ingest` | 8 Jul 2026 |
| [linkedin-alerts](https://github.com/Schlaflied/career-ops-plugin-linkedin-alerts) | [@Schlaflied](https://github.com/Schlaflied) | LinkedIn job alert ingest: parse LinkedIn alert emails from your Gmail inbox, normalize tracking links to canonical job URLs, and surface them in the career-ops pipeline. | `ingest` | 8 Jul 2026 |
| [markdown](https://github.com/rubicon/career-ops-plugin-markdown) | [@rubicon](https://github.com/rubicon) | Export your cv.md to a clean, markdownlint-compliant Markdown resume, honoring #### nested sub-roles for fractional, interim, and umbrella engagements. | `export` | 8 Jul 2026 |
| [obsidian](https://github.com/Schlaflied/career-ops-plugin-obsidian) | [@Schlaflied](https://github.com/Schlaflied) | Obsidian export: mirror the tracker into your vault as frontmatter notes queryable by Dataview/Bases; frontmatter belongs to the machine, the note body belongs to you. | `export` | 8 Jul 2026 |
| [outlook-interviews](https://github.com/Schlaflied/career-ops-plugin-outlook-interviews) | [@Schlaflied](https://github.com/Schlaflied) | Outlook interview ingest: detect interview invitation emails via Microsoft Graph, extract company / role / meeting link, and surface them in the career-ops pipeline. | `ingest` | 8 Jul 2026 |
| [serper](https://github.com/d-ulker/career-ops-plugin-serper) | [@d-ulker](https://github.com/d-ulker) | Google Search provider via Serper.dev: drop-in replacement for the discontinued serpapi provider, with isFallback detect so free ATS providers are never shadowed. | `provider` | 10 Jul 2026 |
| [startup-boards](https://github.com/giacomoguidotto/career-ops-plugin-startup-boards) | [@giacomoguidotto](https://github.com/giacomoguidotto) | Opt-in scanner provider for startup job boards such as Getro and Consider. | `provider` | 8 Jul 2026 |
| [tavily](https://github.com/Schlaflied/career-ops-plugin-tavily) | [@Schlaflied](https://github.com/Schlaflied) | Tavily search/extract for job scanning, liveness checks, and company research. | `search` | 8 Jul 2026 |
| [workspace-mcp](https://github.com/theridgerugby/career-ops-plugin-workspace-mcp) | [@theridgerugby](https://github.com/theridgerugby) | Read-only MCP access to application rows with scores and the absolute paths and byte sizes of reports, CVs and cover letters. | `export` | 14 Oct 2026 |
{/* generated:plugins:end */}

## Write yours

The plugin guide is [PLUGINS.md](https://github.com/career-ops-hq/career-ops/blob/main/docs/PLUGINS.md) in the core repository. To start a new one from the template, run this in your career-ops folder:

```bash
node plugins.mjs new my-plugin
```

To list it in the registry, file a plugin registration issue and then a registry pull request in the core repository, as the guide describes.

## Job boards by country [#job-boards-by-country]

Besides the applicant tracking systems that many companies share (Greenhouse, Ashby, Lever, Workday and others, covered in [Portals](/docs/reference/portals)), the scanner reads job boards that serve one market, most of them added by contributors. The table lists the boards whose market the core's own list names; boards without a stated market are only in the full list.

{/* generated:boards:start (scripts/community-snapshot.mjs) */}
| Market | Board | What it covers | Added by |
| --- | --- | --- | --- |
| Belgium | [VDAB](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/vdab.mjs) | Public employment service of Flanders | [@nikolaysm](https://github.com/nikolaysm) |
| Brazil | [Gupy](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/gupy.mjs) | Search across the thousands of employers hosted on the Gupy ATS | [@felipe-NR](https://github.com/felipe-NR) |
| Canada | [Job Bank](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/jobbankca.mjs) | The federal job-search service | [@Zoubeir23](https://github.com/Zoubeir23) |
| Germany | [Arbeitsagentur](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/arbeitsagentur.mjs) | The federal employment agency job search | [@cluebbers](https://github.com/cluebbers) |
| Germany | [Interamt.de](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/scan-interamt.mjs) | Federal, state and municipal public-sector jobs | [@jalejoa](https://github.com/jalejoa) |
| Mexico | [OCC Mundial](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/occ.mjs) | The largest general job board in Mexico | [@VictorMeneses77](https://github.com/VictorMeneses77) |
| Poland | [Just Join IT](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/justjoin.mjs) | Tech roles in Poland and the EU | [@BorisSavage](https://github.com/BorisSavage) |
| Poland | [No Fluff Jobs](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/nofluffjobs.mjs) | Tech roles in Poland and the EU | [@BorisSavage](https://github.com/BorisSavage) |
| Senegal | [Senjob](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/senjob.mjs) | Dakar and the regions | [@Zoubeir23](https://github.com/Zoubeir23) |
| Singapore | [MyCareersFuture](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/mycareersfuture.mjs) | The national job bank | [@Zoubeir23](https://github.com/Zoubeir23) |
| Spain | [getManfred](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/manfred.mjs) | Tech roles in Spain and the EU, with published salary ranges | [@Zoubeir23](https://github.com/Zoubeir23) |
| Sweden | [Platsbanken](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/platsbanken.mjs) | The national public employment service | [@gdut4140](https://github.com/gdut4140) |
| Switzerland | [joinup.ch](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/joinup.mjs) | Swiss startup jobs | [@eliador90](https://github.com/eliador90) |
| Switzerland | [Remotli](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/remotli.mjs) | Remote roles at Swiss companies, paid in CHF | [@eliador90](https://github.com/eliador90) |
| Taiwan | [Yourator](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/yourator.mjs) | Startup and digital roles | [@HeiTang](https://github.com/HeiTang) |
| United States | [Built In](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/builtin.mjs) | Tech roles, with a board per city | [@pwilinchery](https://github.com/pwilinchery) |
| Vietnam | [ITviec](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/itviec.mjs) | The largest IT job board in Vietnam | [@vnk8071](https://github.com/vnk8071) |
| Vietnam | [CareerViet](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/careerviet.mjs) | Broad-coverage board | [@vnk8071](https://github.com/vnk8071) |
| Europe | [Arbeitnow](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/arbeitnow.mjs) | EU and DACH roles, newest first | [@Scott-Emberson](https://github.com/Scott-Emberson) |
| Europe | [Landing.jobs](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/landingjobs.mjs) | Tech roles in Europe | [@Scott-Emberson](https://github.com/Scott-Emberson) |
| Latin America | [Get on Board](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/getonbrd.mjs) | Remote and Latin American tech roles | [@gunjanjaswal](https://github.com/gunjanjaswal) |
| Nordics | [The Hub](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/thehub.mjs) | Nordic and EU startups | [@Scott-Emberson](https://github.com/Scott-Emberson) |
| South-East Asia | [Kalibrr](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/kalibrr.mjs) | Mostly Indonesia, then the Philippines and Thailand | [@rafifshaf-fun](https://github.com/rafifshaf-fun) |
| South-East Asia | [Tech in Asia](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/techinasia.mjs) | Startup roles, mostly Indonesia | [@rafifshaf-fun](https://github.com/rafifshaf-fun) |
| South-East Asia, Australia and New Zealand | [Jobstreet and SEEK](https://github.com/career-ops-hq/career-ops/blob/115bc9873e3d43e23883f3c8f16436617facc62c/providers/jobstreet.mjs) | One provider for the Jobstreet and SEEK sites | [@rafifshaf-fun](https://github.com/rafifshaf-fun) |
{/* generated:boards:end */}

The full list of sources, with how each one is read, is [Supported Job Boards](https://github.com/career-ops-hq/career-ops/blob/main/docs/SUPPORTED_JOB_BOARDS.md). To add a board for your market, follow [ADDING_A_PROVIDER.md](https://github.com/career-ops-hq/career-ops/blob/main/providers/ADDING_A_PROVIDER.md).

## Community projects

Projects built on career-ops outside the plugin registry. They are community-built, not maintained by career-ops.

- **[career-ops-dashboard](https://github.com/LexLeontiev/career-ops-dashboard)** by [@LexLeontiev](https://github.com/LexLeontiev): a read-only local dashboard for your career-ops data. MIT.
Loading
Loading