name: career-ops description: AI job search command center — evaluate offers, generate CVs, scan portals, track applications. Adapted from Claude Code to Hermes Agent. user_invocable: true args: mode
career-ops — Router (Hermes Edition)
Adapted from Claude Code's career-ops system to work with Hermes Agent's tooling.
Mode Routing
When invoked (via /skill career-ops or as preloaded skill), determine the mode from user input:
| 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 |
pdf | pdf |
training | training |
project | project |
tracker | tracker |
pipeline | pipeline |
apply | apply |
scan | scan |
batch | batch |
Auto-pipeline detection: If input 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.
Discovery Mode (no arguments)
Show this menu:
career-ops — Command Center (Hermes Edition)
Available commands:
career-ops {JD or URL} → AUTO-PIPELINE: evaluate + report + PDF + tracker (paste text or URL)
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
career-ops contacto → LinkedIn power move: find contacts + draft message
career-ops deep → Deep research prompt about company
career-ops pdf → Generate ATS-optimized CV PDF
career-ops training → Evaluate training/certification courses
career-ops project → Evaluate portfolio project ideas
career-ops apply → Live application form assistant
career-ops tracker → View application tracker
career-ops scan → Scan configured company portals for new listings
career-ops batch → Batch process multiple URLs
Execution Rules
- Read profile first: Always load
config/profile.ymlfor candidate identity. - Read CV: Always read
cv.md(project root or HERMES_HOME/career-ops/) for experience data. - JD extraction: For URLs, use
browser_navigate+browser_snapshot(SPAs) →web_extract(static) →web_search(fallback). - Reports go to:
reports/{###}-{company-slug}-{YYYY-MM-DD}.md - Tracker is at:
data/applications.md - Pipeline inbox is at:
data/pipeline.md
Sources of Truth
| File | Path | Purpose |
|---|---|---|
| SKILL.md | This file | Router |
| modes/ | modes/*.md | Individual mode definitions |
| profile.yml | config/profile.yml | Candidate identity and targets |
| cv.md | project root or skill dir | CV in markdown |
| states.yml | templates/states.yml | Canonical application states |
| portals.yml | project root | Portal scanner config |
Scan Mode Implementation Details
When processing career-ops scan:
- Load config: Read
portals.ymlfor tracked companies + search queries - WebSearch sweep: Run 20+ queries across site:jobs.ashbyhq.com, site:job-boards.greenhouse.io, site:jobs.lever.co, and general ML role queries
- Filter results: Match against candidate's profile (roles, tech stack, location constraints) — skip PM/sales/junior roles
- Rank tiers: A-tier (strong match), B-tier (potential), Skip (wrong fit)
CRITICAL ASHBY PATTERN:
- Individual Ashby job URLs from web_search results (jobs.ashbyhq.com/{company}/{uuid}) are FREQUENTLY stale/dead with 404 errors
- ALWAYS navigate to the company page first:
jobs.ashbyhq.com/{slug}(found in portals.ymlcareers_url) - Use
browser_navigate+browser_snapshot(full=true)— web_extract returns near-empty on Ashby (JS-rendered SPA) - From company page, use snapshot to find current open roles with their fresh URLs, then click into each for JD