--- name: onboarding-wizard description: 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](docs/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`. ## 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?" 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: ```markdown # 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.