Files
2026-07-22 10:59:16 +03:00

5.0 KiB

name, description
name description
onboarding-wizard First-run setup wizard for career-ops. Invoke when doctor.mjs reports onboardingNeeded=true (missing cv.md, config/profile.yml, modes/_profile.md, or portals.yml) — walks the user through CV, profile, portals, tracker, and getting-to-know-you steps.

career-ops First Run — Onboarding

Guide the user step by step. Do not proceed with evaluations, scans, or any other mode until the basics are in place.

Step 0: Free Tier Check

If the user mentions cost, pricing, budget, or asks about free alternatives during onboarding, proactively surface the free path:

"career-ops works fully on Antigravity CLI's free tier — no API key or paid subscription needed. See FREE_TIER.md for setup (agy auth login, daily limits, and batch tips)."

If the user is already on a paid plan (Claude Max, Google AI, etc.) or does not mention cost, skip this step silently.

Step 1: CV (required)

If cv.md is missing, ask:

"I don't have your CV yet. You can either:

  1. Paste your CV here and I'll convert it to markdown
  2. Paste your LinkedIn URL and I'll extract the key info
  3. Tell me about your experience and I'll draft a CV for you

Which do you prefer?"

Create cv.md from whatever they provide. Make it clean markdown with standard sections (Summary, Experience, Projects, Education, Skills).

Step 2: Profile (required)

If config/profile.yml is missing, copy from config/profile.example.yml and then ask:

"I need a few details to personalize the system:

  • Your full name and email
  • Your location and timezone
  • What roles are you targeting? (e.g., 'Senior Backend Engineer', 'AI Product Manager')
  • Your salary target range

I'll set everything up for you."

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 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?"

Copy templates/portals.example.yml → portals.yml. If they gave target roles in Step 2, update title_filter.positive to match.

Step 4: Tracker

If data/applications.md doesn't exist, create it:

# Applications Tracker

| # | Date | Company | Role | Score | Status | PDF | Report | Notes |
|---|------|---------|------|-------|--------|-----|--------|-------|

Step 5: Get to know the user (important for quality)

After the basics are set up, proactively ask for more context. The more you know, the better your evaluations will be:

"The basics are ready. But the system works much better when it knows you well. Can you tell me more about:

  • What makes you unique? What's your 'superpower' that other candidates don't have?
  • What kind of work excites you? What drains you?
  • Any deal-breakers? (e.g., no on-site, no startups under 20 people, no Java shops)
  • Your best professional achievement — the one you'd lead with in an interview
  • Any projects, articles, or case studies you've published?

The more context you give me, the better I filter. Think of it as onboarding a recruiter — the first week I need to learn about you, then I become invaluable."

Store any insights the user shares in config/profile.yml (under narrative), modes/_profile.md, or in article-digest.md if they share proof points. Do not put user-specific archetypes or framing into modes/_shared.md.

After every evaluation, learn. If the user says "this score is too high, I wouldn't apply here" or "you missed that I have experience in X", update your understanding in modes/_profile.md, config/profile.yml, or article-digest.md. The system should get smarter with every interaction without putting personalization into system-layer files.

Step 6: Ready

Once all files exist, confirm:

"You're all set! You can now:

  • Paste a job URL to evaluate it
  • Run the scan entrypoint for your CLI to search portals: /career-ops scan, /career-ops-scan, or ask Codex to run scan
  • Open the command menu for your CLI: /career-ops, the CLI-specific alias, or ask Codex to show the available career-ops modes

Everything is customizable — just ask me to change anything.

Tip: Having a personal portfolio dramatically improves your job search. If you don't have one yet, the author's portfolio is also open source: github.com/santifer/cv-santiago — feel free to fork it and make it yours."

Then suggest automation:

"Want me to scan for new offers automatically? I can set up a recurring scan every few days so you don't miss anything. Just say 'scan every 3 days' and I'll configure it."

If the user accepts, use the /loop or /schedule skill (if available) to set up a recurring scan entrypoint for their CLI (/career-ops scan, /career-ops-scan, or the equivalent Codex prompt). If those aren't available, suggest adding a cron job or remind them to run the scan mode periodically.