Skip to content
Closed
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
6 changes: 4 additions & 2 deletions .agents/skills/career-ops/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: career-ops
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 | oferta | ofertas | apply | batch | tracker | pipeline | contacto | training | project | interview-prep | update]"
argument-hint: "[compass | scan | deep | pdf | oferta | ofertas | apply | batch | tracker | pipeline | contacto | training | project | interview-prep | update]"
license: MIT
---

Expand All @@ -17,6 +17,7 @@ Determine the mode from `$mode`:
|-------|------|
| (empty / no args) | `discovery` -- Show command menu |
| JD text or URL (no sub-command) | **`auto-pipeline`** |
| `compass` | `compass` |
| `oferta` | `oferta` |
| `ofertas` | `ofertas` |
| `contacto` | `contacto` |
Expand Down Expand Up @@ -48,6 +49,7 @@ career-ops -- Command Center

Available commands:
/career-ops {JD} → AUTO-PIPELINE: evaluate + report + PDF + tracker (paste text or URL)
/career-ops compass → Career discovery: figure out what you want + set up your profile
/career-ops pipeline → Process pending URLs from inbox (data/pipeline.md)
/career-ops oferta → Evaluation only A-F (no auto PDF)
/career-ops ofertas → Compare and rank multiple offers
Expand Down Expand Up @@ -77,7 +79,7 @@ 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`
Applies to: `auto-pipeline`, `oferta`, `ofertas`, `pdf`, `contacto`, `apply`, `pipeline`, `scan`, `batch`, `compass`

### Standalone modes (only their mode file):
Read `modes/{mode}.md`
Expand Down
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ If `config/profile.yml` is missing, copy from `config/profile.example.yml` and t

Fill in `config/profile.yml` with their answers. For archetypes and targeting narrative, store the user-specific mapping in `modes/_profile.md` or `config/profile.yml` rather than editing `modes/_shared.md`.

**If the user is uncertain about target roles** (signals: "I don't know", "not sure", "still figuring it out", "exploring", "at a crossroads", or no clear answer to what roles they're targeting) → respond:
> "No problem — run `/career-ops compass` and I'll help you figure it out. It takes about 5–10 minutes and ends with your profile fully set up."

Do not attempt to run compass inline during onboarding. Route to it as a standalone follow-up.

#### Step 3: Portals (recommended)
If `portals.yml` is missing:
> "I'll set up the job scanner with 45+ pre-configured companies. Want me to customize the search keywords for your target roles?"
Expand Down Expand Up @@ -194,6 +199,7 @@ Default modes are in `modes/` (English). Additional language-specific modes are

| If the user... | Mode |
|----------------|------|
| Doesn't know target roles or wants career direction help | `compass` |
| Pastes JD or URL | auto-pipeline (evaluate + report + PDF + tracker) |
| Asks to evaluate offer | `oferta` |
| Asks to compare offers | `ofertas` |
Expand Down
208 changes: 208 additions & 0 deletions docs/superpowers/specs/2026-05-13-compass-mode-design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# Design Spec: `/career-ops compass` — Career Discovery Mode

**Date:** 2026-05-13
**Status:** Approved
**PR scope:** `modes/compass.md` (new) + `AGENTS.md` (modified) + `.agents/skills/career-ops/SKILL.md` (modified, symlinked from `.claude/`)
**Follow-on PR:** `/career-ops polish` — CV enhancement for target archetypes (out of scope here)

---

## Problem

The current onboarding flow (AGENTS.md Step 2) assumes the user already knows their target roles and archetypes. Users who don't know what they want — or who are at a career crossroads — have no guided path. They land in a system built for clarity before they have it.

---

## Goal

Give users who don't know their direction a structured, conversational path to figure it out — and end up with a working `profile.yml` and `_profile.md` without having to fill in blanks themselves.

---

## Design

### Overview

A single new mode, `compass`, that combines:
1. Silent CV analysis (what your background implies)
2. Adaptive discovery questions (what you actually want)
3. An ikigai-style reveal comparing the two
4. Interactive profile file drafting with section-by-section approval

The mode is standalone (`/career-ops compass`) and reachable from onboarding when the user is unclear on target roles.

---

### Files Changed

| File | Change |
|------|--------|
| `modes/compass.md` | New mode file — all discovery logic |
| `AGENTS.md` | Step 2 onboarding: add offramp for users who don't know their target roles |
| `.agents/skills/career-ops/SKILL.md` | Add `compass` to routing table and discovery menu (symlinked from `.claude/`) |

---

### Compass Flow

#### Phase 0 — Profile Check

Read `config/profile.yml` and `modes/_profile.md`.

- If both are missing or contain only example/placeholder data → proceed to Phase 1 directly
- If real data exists → ask: *"I see you already have a profile set up. Do you want to revisit your direction, or start fresh?"*
- "Revisit" → run full compass, frame questions around what's changed
- "Start fresh" → run full compass as if no profile exists
- Either path ends at Phase 4 with a new draft

**Placeholder detection:** profile is considered a placeholder if `candidate.full_name` is `"Jane Smith"` or `candidate.email` contains `"example.com"`.

---

#### Phase 1 — Silent CV Analysis

Read `cv.md` if it exists. Do not show output to the user. Internally derive:

If `cv.md` is absent, skip the analysis and proceed to Phase 2. Archetype detection becomes discovery-only; the Phase 3 reveal will omit the CV-derived baseline and present discovery findings directly.

Comment thread
coderabbitai[bot] marked this conversation as resolved.
- **Domains** — what fields/industries the candidate has worked in
- **Functions** — what they've actually done (build, consult, manage, train, sell, deploy, support)
- **Seniority signals** — years of experience, titles held, scope of responsibility
- **Candidate archetypes** — 2–3 best-fit archetypes from `_shared.md` with internal rationale notes

Store all of this. It will surface only in Phase 3.

---

#### Phase 2 — Adaptive Discovery Questions

Ask questions conversationally, one at a time. Never present a form or numbered list.

**Core questions (always asked, in this order):**

1. *"What kind of work energizes you most — building things, helping people solve problems, leading strategy, something else?"*
2. *"What would you want more of in your next role that you don't have enough of now?"*
3. *"What would be a hard no — work that would drain you, or conditions you'd walk away from?"*

**Adaptive follow-ups** — ask when signals warrant it:

| Signal | Follow-up |
|--------|-----------|
| Vague or "I don't know" answer | *"Tell me about a time at work when you felt most in your element. What were you doing?"* |
| Mentions a crossroads or transition | *"What's changed for you recently that's making you rethink your direction?"* |
| Clear direction but two competing options | *"If you had to pick one to optimize for in the next 2 years, which would it be — [A] or [B]?"* |
| No mention of environment preferences | *"What kind of company environment fits you best — early-stage startup, growth-stage, enterprise, or something else?"* |
| No signal on IC vs leadership | *"Do you want to go deeper as an individual contributor, or are you drawn to building and leading a team?"* |
| Ambiguous on remote/location | *"Any constraints on location or travel?"* |

**Stopping rule:** stop asking when archetypes have converged and deal-breakers are clear. Minimum 3 questions, maximum 10. If the user is consistently uncertain after 7 questions, surface a "here's what I'm hearing" summary and ask them to react rather than asking more questions.

---

#### Phase 3 — Ikigai Reveal

This is the moment where the two threads come together.

Present in three parts:

**Part 1 — What your background says:**
> *"Based on your CV alone, before you told me anything, here's where I would have pointed you..."*

Show the 2–3 CV-derived archetype candidates with a one-sentence rationale for each (e.g., "9 years of client-facing technical work at enterprise software companies is a strong signal for Solutions Architect or Forward Deployed Engineer").

**Part 2 — What you told me:**
> *"Here's what I heard from your answers..."*

A brief synthesis of the discovery questions: what energizes them, what they want more of, their deal-breakers, and any strong directional signals.

**Part 3 — Where they overlap (and where they don't):**
> *"Here's where your background and your answers point to the same place — that's your strongest signal..."*

Highlight archetype(s) that appear in both the CV analysis and the discovery answers. If there's a gap — e.g., CV points to Solutions Architect but the user said they want to stop being client-facing — name it explicitly and let them react.

End with:
- **Primary archetype(s):** strongest fit, both from background and stated preferences
- **Secondary archetype(s):** good fit, one dimension may be a stretch
- **Notable gap (if any):** where background and preferences diverge, with a note on what bridging it would take

Ask: *"Does this feel right, or does something land wrong?"* Adjust before moving to Phase 4.

---

#### Phase 4 — Profile Draft & Approval

Draft both files. Present section by section. Write only after the user approves.

**`config/profile.yml` sections (presented in order):**

1. `candidate` block — populate from CV (name, email, phone, location, LinkedIn, GitHub)
2. `target_roles` block — populate from Phase 3 archetype recommendations
3. `narrative` block — headline, superpowers, and proof points derived from CV + discovery
4. `compensation` block — ask directly if not surfaced in discovery: *"What's your target comp range and your walk-away number?"*
5. `location` block — populate from CV + any constraints surfaced in discovery

Comment on lines +138 to +143

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Specify fallback behavior for Blocks 1, 3, and 5 when cv.md is absent.

Phase 1 (Line 66) establishes that cv.md can be absent, but the Phase 4 block descriptions assume CV data is available. When cv.md is missing:

  • Block 1 (candidate): needs fallback for contact details
  • Block 3 (narrative): "derived from CV + discovery" has no CV to derive from
  • Block 5 (location): "populate from CV" has no CV to populate from

This specification gap propagates to the implementation file (modes/compass.md), where Block 1 has been addressed but Blocks 3 and 5 have not.

📋 Proposed specification update
 **`config/profile.yml` sections (presented in order):**
 
-1. `candidate` block — populate from CV (name, email, phone, location, LinkedIn, GitHub)
+1. `candidate` block — if `cv.md` exists, populate from CV; otherwise prompt user for contact details
 2. `target_roles` block — populate from Phase 3 archetype recommendations
-3. `narrative` block — headline, superpowers, and proof points derived from CV + discovery
+3. `narrative` block — headline, superpowers, and proof points derived from discovery; include CV-based proof points if `cv.md` exists
 4. `compensation` block — ask directly if not surfaced in discovery: *"What's your target comp range and your walk-away number?"*
-5. `location` block — populate from CV + any constraints surfaced in discovery
+5. `location` block — populate from any constraints surfaced in discovery; include CV location if `cv.md` exists
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/superpowers/specs/2026-05-13-compass-mode-design.md` around lines 138 -
143, Update the Phase 4 block specs and the implementation in modes/compass.md
to define explicit fallbacks when cv.md is absent: for the candidate block
(Block 1) ensure contact fields fall back to discovery data and, if missing, to
an explicit "unknown" placeholder and a prompt to collect email/phone; for the
narrative block (Block 3) specify that headline, superpowers, and proof points
must be synthesized from discovery notes alone (or else mark as "needs CV" and
surface questions to elicit missing proof points), and implement that synthesis
logic in modes/compass.md; for the location block (Block 5) state it should come
from discovery constraints or a default of "remote/unknown" plus a prompt to
confirm location constraints, and update modes/compass.md to populate location
from discovery or emit the confirmation prompt when absent.

For each section: show the draft, ask *"Does this look right?"*, accept edits or approval, move on.

**`modes/_profile.md` sections (presented after profile.yml is approved):**

1. Target roles table — archetypes from Phase 3 with fit levels
2. Adaptive framing table — how to position CV for each archetype
3. Exit narrative — drafted from the discovery answers and CV summary
4. Comp targets and negotiation scripts — populated from profile.yml comp block
5. Location policy — populated from profile.yml location block

Same section-by-section approval flow.

**Write gate:** only write files after the user has approved all sections. Write both files atomically. Confirm with: *"Profile saved. You're ready to start evaluating roles — paste a job description or URL to run the full pipeline."*

---

### Onboarding Integration (AGENTS.md)

In Step 2 (Profile setup), after asking for target roles, add:

> If the user says "I don't know", "not sure", "exploring", or otherwise signals uncertainty about target roles → respond:
> *"No problem — run `/career-ops compass` and I'll help you figure it out. It takes about 5–10 minutes and ends with your profile fully set up."*

Do not attempt to run compass inline during onboarding. Route to it as a standalone follow-up.

---

### Router Changes (`.agents/skills/career-ops/SKILL.md`)

Add to routing table:

```md
| `compass` | `compass` |
```

Add to discovery menu:

```md
/career-ops compass → Career discovery: figure out what you want + set up your profile
```

Position it near the top of the menu, before `scan` — it's the first thing a new user without a clear direction needs.

---

## Success Criteria

- A user with no `profile.yml` and no idea what they want can run `/career-ops compass` and end up with a complete, personalized `profile.yml` and `_profile.md` that they feel good about
- A user who already has a profile can re-run compass when their direction changes, and update their profile without losing data they want to keep
- The ikigai reveal moment surfaces at least one insight the user hadn't considered — either an archetype they didn't know existed, or a gap between what their background says and what they actually want
- The adaptive question count stays between 3–10; no user should feel interrogated or bored

---

## Out of Scope

- CV rewriting or enhancement (→ `/career-ops polish`, future PR)
- Comp market research during compass (Block D in `oferta.md` covers this per-job; compass uses user-provided comp targets only)
- Multi-language compass modes (DE/FR/JA) — can follow once English version is stable

---

## Follow-on PR

**`/career-ops polish`** — given a finalized profile with target archetypes, analyze `cv.md` and produce a prioritized list of improvements to strengthen the CV for those archetypes. Operates on the baseline CV, not a job-specific tailoring (that's already handled by `modes/pdf.md`).
Loading