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:
- Paste your CV here and I'll convert it to markdown
- Paste your LinkedIn URL and I'll extract the key info
- 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:
# 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 runscan- Open the command menu for your CLI:
/career-ops, the CLI-specific alias, or ask Codex to show the available career-ops modesEverything 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.