---
name: trajecktory
description: AI job search command center -- evaluate offers, generate CVs, scan portals, track applications
arguments: mode # Claude Code specific
user-invocable: true
argument-hint: "[scan | deep | pdf | cover-letter | cheat-sheet | oferta | ofertas | apply | batch | tracker | pipeline | contacto | training | project | interview-prep | update]"
license: MIT
---

# career-ops -- Router

## Mode Routing

Determine the mode from `$mode`:

| Input | Mode |
|-------|------|
| (empty / no args) | `discovery` -- Show command menu |
| JD text or URL (no sub-command) | **`auto-pipeline`** |
| `oferta` | `oferta` |
| `ofertas` | `ofertas` |
| `contacto` | `contacto` |
| `deep` | `deep` |
| `interview-prep` | `interview-prep` |
| `pdf` | `pdf` |
| `training` | `training` |
| `project` | `project` |
| `tracker` | `tracker` |
| `pipeline` | `pipeline` |
| `apply` | `apply` |
| `scan` | `scan` |
| `batch` | `batch` |
| `patterns` | `patterns` |
| `followup` | `followup` |
| `cover-letter` | `cover-letter` |
| `cheat-sheet` | `cheat-sheet` |

**Auto-pipeline detection:** If `$mode` is not a known sub-command AND contains JD text (keywords: "responsibilities", "requirements", "qualifications", "about the role", "we're looking for", company name + role) or a URL to a JD, execute `auto-pipeline`.

If `$mode` is not a sub-command AND doesn't look like a JD, show discovery.

---

## Discovery Mode (no arguments)

Show this menu:

```
career-ops -- Command Center

Available commands:
  /trajecktory {JD}      → AUTO-PIPELINE: evaluate + report + PDF + tracker (paste text or URL)
  /trajecktory pipeline  → Process pending URLs from inbox (data/pipeline.md)
  /trajecktory oferta    → Evaluation only A-F (no auto PDF)
  /trajecktory ofertas   → Compare and rank multiple offers
  /trajecktory contacto  → LinkedIn power move: find contacts + draft message
  /trajecktory deep      → Deep research prompt about company
  /trajecktory interview-prep → Generate company-specific interview prep doc
  /trajecktory pdf       → PDF only, ATS-optimized CV
  /trajecktory training  → Evaluate course/cert against North Star
  /trajecktory project   → Evaluate portfolio project idea
  /trajecktory tracker   → Application status overview
  /trajecktory apply     → Live application assistant (reads form + generates answers)
  /trajecktory scan      → Scan portals and discover new offers
  /trajecktory batch     → Batch processing with parallel workers
  /trajecktory patterns  → Analyze rejection patterns and improve targeting
  /trajecktory followup       → Follow-up cadence tracker: flag overdue, generate drafts
  /trajecktory cover-letter   → Generate tailored cover letter + optional PDF
  /trajecktory cheat-sheet    → Generate interview cheat sheet + optional Obsidian push

Inbox: add URLs to data/pipeline.md → /trajecktory pipeline
Or paste a JD directly to run the full pipeline.
```

---

## Context Loading by Mode

After determining the mode, load the necessary files before executing:

### Modes that require `_shared.md` + their mode file:
Read `modes/_shared.md` + `modes/{mode}.md`

Applies to: `auto-pipeline`, `oferta`, `ofertas`, `pdf`, `contacto`, `apply`, `pipeline`, `scan`, `batch`

### Standalone modes (only their mode file):
Read `modes/{mode}.md`

Applies to: `tracker`, `deep`, `interview-prep`, `training`, `project`, `patterns`, `followup`, `cover-letter`, `cheat-sheet`

### Modes delegated to subagent:
For `scan`, `apply` (with Playwright), and `pipeline` (3+ URLs): launch as Agent with the content of `_shared.md` + `modes/{mode}.md` injected into the subagent prompt.

```
Agent(
  subagent_type="general-purpose",
  prompt="[content of modes/_shared.md]\n\n[content of modes/{mode}.md]\n\n[invocation-specific data]",
  description="career-ops {mode}"
)
```

Execute the instructions from the loaded mode file.
