@playerplanet/opencode-career-ops
v1.0.0
Published
Career-Ops job search automation for OpenCode - AI-powered offer evaluation, CV generation, and application tracking
Maintainers
Readme
Career-Ops for OpenCode
AI-powered job search automation ported from Claude Code to OpenCode
Career-Ops turns OpenCode into a full job search command center with 8 specialized AI skills:
- 🎯 Evaluate - A-F scoring for job offers with archetype detection
- 📄 PDF - ATS-optimized CV generation tailored to each role
- 🔍 Scan - Automated portal scanning for new opportunities
- 📊 Tracker - Application status and pipeline management
- 🔬 Research - Deep company research and LinkedIn outreach
- 📝 Apply - Application form assistance
- 🎓 Training - Course/certification evaluation
- 💼 Projects - Portfolio project evaluation
Installation
1. Install the Plugin
npm install -g @playerplanet/opencode-career-ops2. Install Skills into OpenCode
career-ops-setupOr manually:
npx @playerplanet/opencode-career-ops setup3. Initialize a New Project
cd ~/your-projects
mkdir my-job-search
cd my-job-search
career-ops-initThis creates:
config/profile.yml- Your profile and targetsportals.yml- Job portal configurationmodes/_profile.md- Your archetypes and negotiation scriptsdata/applications.md- Application trackerdata/pipeline.md- URL inbox.gitignore- Proper git exclusions
4. Create Your CV
Create cv.md in your project root with your CV in markdown format.
Usage
Once set up, just ask OpenCode naturally:
"Evaluate this job: https://company.com/careers/job-123"
→ Full A-F evaluation with score, report, and tracker entry
"Generate a CV for this Senior Backend role"
→ ATS-optimized PDF tailored to the role
"Scan for new opportunities"
→ Scans 45+ pre-configured companies
"Show my application tracker"
→ Displays current pipeline status
"Research Anthropic for my interview"
→ Deep company research with talking pointsSkills Reference
career-ops-evaluate
Triggers: evaluate, assess, analyze job, compare offers, job URLs
What it does: Reads your CV, evaluates job fit across 6 dimensions (A-F blocks), generates report, updates tracker
Outputs: reports/{###}-{company}-{date}.md, tracker entry
career-ops-pdf
Triggers: generate CV, create resume, tailor CV, ATS optimize
What it does: Injects job description keywords into your CV, generates PDF
Outputs: output/tailored-cv.pdf, optional cover letter
career-ops-scan
Triggers: scan jobs, find opportunities, search portals
What it does: 3-level discovery (Playwright → API → WebSearch) across configured portals
Outputs: New URLs in data/pipeline.md
career-ops-tracker
Triggers: tracker, applications, pipeline, update status
What it does: Manages application tracker, processes pending URLs
Outputs: Updated data/applications.md
career-ops-research
Triggers: research company, LinkedIn outreach, deep dive
What it does: Company research, finds hiring managers, generates outreach messages
Outputs: Research notes, 3-phrase connection messages
career-ops-apply
Triggers: fill application, apply to job
What it does: Generates personalized form answers based on evaluation
Note: Never submits without your review
career-ops-training
Triggers: evaluate course, certification worth it
What it does: 6-dimension scoring for learning investments
Outputs: Evaluation report with HACER/NO HACER verdict
career-ops-project
Triggers: evaluate project, portfolio idea, build MVP
What it does: Scores portfolio projects on demoability and STAR potential
Outputs: Evaluation with actionable recommendations
Configuration
Profile (config/profile.yml)
name:
full: "Your Name"
contact:
email: "[email protected]"
linkedin: "linkedin.com/in/you"
target:
roles:
- "Senior Backend Engineer"
compensation:
target_base: 180000
currency: "USD"
# ... see templates/profile.example.yml for full structurePortals (portals.yml)
Configure companies to scan:
companies:
- name: "Anthropic"
careers_url: "https://www.anthropic.com/careers"
greenhouse_board: "anthropic"
title_filter:
positive:
- "Senior"
- "Staff"
negative:
- "Intern"
- "Junior"User Archetypes (modes/_profile.md)
Customize archetypes, negotiation scripts, and scoring weights to match your career.
Architecture
┌─────────────────────────────────────────────────────────┐
│ OpenCode Agent │
├─────────────────────────────────────────────────────────┤
│ career-ops-evaluate ←──reads── cv.md │
│ │ config/profile.yml │
│ ↓ │
│ career-ops-pdf ←──generates── output/*.pdf │
│ │ │
│ ↓ │
│ career-ops-tracker ←──updates── data/applications.md │
│ ↑ │
│ career-ops-scan ←──discovers── portals.yml │
└─────────────────────────────────────────────────────────┘Data Contract
User Layer (NEVER auto-updated):
cv.md- Your CVconfig/profile.yml- Your profilemodes/_profile.md- Your customizationsdata/*- Your tracking dataportals.yml- Your portal config
System Layer (skills read these):
modes/_shared.md- Scoring rulestemplates/*- CV templatesscripts/*.mjs- Utilities
Requirements
- Node.js 18+ (for PDF generation)
- OpenCode 1.0+
- Playwright (bundled with plugin)
Differences from Claude Code Original
| Feature | Claude Code | OpenCode Plugin |
|---------|-------------|-----------------|
| Entry | /career-ops command | Natural language triggers |
| Architecture | Monolithic CLAUDE.md | 8 modular skills |
| Activation | Explicit | Intent detection |
| Distribution | Git clone | npm install |
| Setup | Manual | career-ops-init CLI |
Contributing
Issues and PRs welcome! See CONTRIBUTING.md
Credits
- Original: santifer/career-ops
- Port: OpenCode dev-team with parallel builder agents
- License: MIT (same as original)
Roadmap
- [ ] Batch processing with subagent workers
- [ ] Dashboard TUI binary distribution
- [ ] German language modes
- [ ] Integration with job board APIs
- [ ] Auto-application (opt-in)
