Skip to content

org-cyber/opencareer-ops

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCareer — Free, Open-Source AI Job Search Pipeline

English | Español

OpenCode Ollama Gemma Phi Node.js Go Playwright MIT
100% Free Local First EN ES DE FR


OpenCareer Demo

740+ job listings evaluated · 100+ personalized CVs · 1 dream role landed — now 100% free and local

What Is This

OpenCareer is a free, open-source fork of Career-Ops that replaces Claude Code with OpenCode and integrates local LLMs via Ollama. It turns any AI coding CLI into a full job search command center — with zero API costs and complete privacy.

Instead of manually tracking applications in a spreadsheet, you get an AI-powered pipeline that:

  • Evaluates offers with a structured A-F scoring system (10 weighted dimensions)
  • Generates tailored PDFs — ATS-optimized CVs customized per job description
  • Scans portals automatically (Greenhouse, Ashby, Lever, company pages) using free web search
  • Processes in batch — evaluate multiple offers with parallel sub-agents
  • Tracks everything in a single source of truth with integrity checks

Important: This is NOT a spray-and-pray tool. OpenCareer is a filter — it helps you find the few offers worth your time out of hundreds. The system strongly recommends against applying to anything scoring below 4.0/5. Your time is valuable, and so is the recruiter's. Always review before submitting.

OpenCareer is agentic: OpenCode navigates career pages with Playwright, evaluates fit by reasoning about your CV vs the job description (not keyword matching), and adapts your resume per listing — all powered by free, local models like Gemma, Phi, and Qwen.

Heads up: the first evaluations won't be great. The system doesn't know you yet. Feed it context — your CV, your career story, your proof points, your preferences, what you're good at, what you want to avoid. The more you nurture it, the better it gets. Think of it as onboarding a new recruiter: the first week they need to learn about you, then they become invaluable.

Built by someone who used the original system to evaluate 740+ job offers, generate 100+ tailored CVs, and land a Head of Applied AI role — now made free and private for everyone. Read the full case study.

Key Differences from Original Career-Ops

Feature Original Career-Ops OpenCareer
AI Agent Claude Code (paid subscription) OpenCode (free, open-source)
LLM Claude (cloud-based) Local models via Ollama (Gemma, Phi, Qwen, etc.)
Web Search Claude's built-in tools Open WebSearch MCP (free, unlimited, DuckDuckGo)
Cost ~$20+/month $0
Privacy Data sent to Anthropic Everything stays on your machine
Customization Full control via modes Same, plus ability to swap models freely

Features

Feature Description
Auto-Pipeline Paste a URL, get a full evaluation + PDF + tracker entry
6-Block Evaluation Role summary, CV match, level strategy, comp research, personalization, interview prep (STAR+R)
Interview Story Bank Accumulates STAR+Reflection stories across evaluations — 5-10 master stories that answer any behavioral question
Negotiation Scripts Salary negotiation frameworks, geographic discount pushback, competing offer leverage
ATS PDF Generation Keyword-injected CVs with Space Grotesk + DM Sans design
Portal Scanner 45+ companies pre-configured (Anthropic, OpenAI, ElevenLabs, Retool, n8n...) + custom queries across Ashby, Greenhouse, Lever, Wellfound
Batch Processing Parallel evaluation with opencode -p workers
Dashboard TUI Terminal UI to browse, filter, and sort your pipeline
Human-in-the-Loop AI evaluates and recommends, you decide and act. The system never submits an application — you always have the final call
Pipeline Integrity Automated merge, dedup, status normalization, health checks
100% Local & Free No API keys required. All LLM inference runs on your machine via Ollama. Web search uses open-source MCP.

Quick Start

# 1. Clone and install
git clone https://github.com/[your-username]/opencareer.git
cd opencareer && npm install
npx playwright install chromium   # Required for PDF generation

# 2. Check setup
npm run doctor                     # Validates all prerequisites

# 3. Configure
cp config/profile.example.yml config/profile.yml  # Edit with your details
cp templates/portals.example.yml portals.yml       # Customize companies

# 4. Add your CV
# Create cv.md in the project root with your CV in markdown

# 5. Set up local LLM (Ollama)
ollama pull phi3:mini              # Recommended for 8GB RAM
# Or: ollama pull qwen2.5:3b      # Better reasoning
# Or: ollama pull gemma3:4b       # Google's latest

# 6. Set environment variables (Windows CMD)
set OPENAI_API_KEY=ollama
set OPENAI_BASE_URL=http://localhost:11434/v1
set OPENAI_MODEL=phi3:mini

# 7. Personalize with OpenCode
opencode   # Open OpenCode in this directory

# Then ask OpenCode to adapt the system to you:
# "Change the archetypes to backend engineering roles"
# "Translate the modes to English"
# "Add these 5 companies to portals.yml"
# "Update my profile with this CV I'm pasting"

# 8. Start using
# Paste a job URL or run /career-ops

The system is designed to be customized by the AI itself. Modes, archetypes, scoring weights, negotiation scripts — just ask OpenCode to change them. It reads the same files it uses, so it knows exactly what to edit.

See docs/SETUP.md for the full setup guide.

Usage

Career-ops is a single slash command with multiple modes:

/open-career-ops                → Show all available commands
/open-career-ops {paste a JD}   → Full auto-pipeline (evaluate + PDF + tracker)
/open-career-ops scan           → Scan portals for new offers
/open-career-ops pdf            → Generate ATS-optimized CV
/open-career-ops batch          → Batch evaluate multiple offers
/open-career-ops tracker        → View application status
/open-career-ops apply          → Fill application forms with AI
/open-career-ops pipeline       → Process pending URLs
/open-career-ops contacto       → LinkedIn outreach message
/open-career-ops deep           → Deep company research
/open-career-ops training       → Evaluate a course/cert
/open-career-ops project        → Evaluate a portfolio project

Or just paste a job URL or description directly — open-career-ops auto-detects it and runs the full pipeline.

How It Works

You paste a job URL or description
        │
        ▼
┌──────────────────┐
│  Archetype       │  Classifies: LLMOps / Agentic / PM / SA / FDE / Transformation
│  Detection       │
└────────┬─────────┘
         │
┌────────▼─────────┐
│  A-F Evaluation  │  Match, gaps, comp research, STAR stories
│  (reads cv.md)   │
└────────┬─────────┘
         │
    ┌────┼────┐
    ▼    ▼    ▼
 Report  PDF  Tracker
  .md   .pdf   .tsv

Pre-configured Portals

The scanner comes with 45+ companies ready to scan and 19 search queries across major job boards. Copy templates/portals.example.yml to portals.yml and add your own:

AI Labs: Anthropic, OpenAI, Mistral, Cohere, LangChain, Pinecone
Voice AI: ElevenLabs, PolyAI, Parloa, Hume AI, Deepgram, Vapi, Bland AI
AI Platforms: Retool, Airtable, Vercel, Temporal, Glean, Arize AI
Contact Center: Ada, LivePerson, Sierra, Decagon, Talkdesk, Genesys
Enterprise: Salesforce, Twilio, Gong, Dialpad
LLMOps: Langfuse, Weights & Biases, Lindy, Cognigy, Speechmatics
Automation: n8n, Zapier, Make.com
European: Factorial, Attio, Tinybird, Clarity AI, Travelperk

Job boards searched: Ashby, Greenhouse, Lever, Wellfound, Workable, RemoteFront

Dashboard TUI

The built-in terminal dashboard lets you browse your pipeline visually:

cd dashboard
go build -o career-dashboard .
./career-dashboard --path ..

Features: 6 filter tabs, 4 sort modes, grouped/flat view, lazy-loaded previews, inline status changes.

Project Structure

open-career-ops/
├── CLAUDE.md                    # Agent instructions
├── cv.md                        # Your CV (create this)
├── article-digest.md            # Your proof points (optional)
├── config/
│   └── profile.example.yml      # Template for your profile
├── modes/                       # 14 skill modes
│   ├── _shared.md               # Shared context (customize this)
│   ├── oferta.md                # Single evaluation
│   ├── pdf.md                   # PDF generation
│   ├── scan.md                  # Portal scanner
│   ├── batch.md                 # Batch processing
│   └── ...
├── templates/
│   ├── cv-template.html         # ATS-optimized CV template
│   ├── portals.example.yml      # Scanner config template
│   └── states.yml               # Canonical statuses
├── batch/
│   ├── batch-prompt.md          # Self-contained worker prompt
│   └── batch-runner.sh          # Orchestrator script
├── dashboard/                   # Go TUI pipeline viewer
├── data/                        # Your tracking data (gitignored)
├── reports/                     # Evaluation reports (gitignored)
├── output/                      # Generated PDFs (gitignored)
├── fonts/                       # Space Grotesk + DM Sans
├── docs/                        # Setup, customization, architecture
└── examples/                    # Sample CV, report, proof points

Tech Stack

OpenCode Ollama Node.js Playwright Go Bubble Tea

Component Technology
Agent OpenCode with custom skills and modes
LLM Local models via Ollama (Phi, Qwen, Gemma, etc.)
PDF Playwright + HTML template
Scanner Playwright + Greenhouse API + open-websearch MCP (DuckDuckGo)
Dashboard Go + Bubble Tea + Lipgloss (Catppuccin Mocha theme)
Data Markdown tables + YAML config + TSV batch files

Open WebSearch MCP Server: Complete Setup & Integration Guide

What is Open WebSearch MCP?

The open-websearch MCP server is an open-source Model Context Protocol (MCP) server that provides free, unlimited web search capabilities to AI agents like OpenCode. It acts as a bridge between OpenCode and public search engines (DuckDuckGo, Bing, etc.), allowing the AI to perform web searches without requiring paid API keys or hitting rate limits.

Key Features

Feature Description
100% Free No API keys required; uses public search engines
No Rate Limits Unlimited searches via DuckDuckGo
Privacy-First All searches run locally; no third-party tracking
Multiple Engines Supports DuckDuckGo, Bing, Google (with API key)
MCP Compatible Works with OpenCode, Claude Desktop, and other MCP clients

Why OpenCareer Needs This

The original Career-Ops relied on Claude Code's built-in web search, which is tied to a paid subscription. OpenCareer replaces this with open-websearch MCP, ensuring:

  • Zero API costs for job scanning
  • No rate limits when scanning dozens of portals
  • Complete privacy (searches don't leave your machine beyond the search engine)

How It Works

The server exposes an MCP-compatible endpoint that OpenCode connects to. When the AI needs to search the web, it calls the server's search tool, which queries the configured search engine and returns structured results.


Prerequisites

  • Node.js 18+ (required for npx to run the server)
  • OpenCode CLI installed
  • Terminal access (Command Prompt, PowerShell, or terminal of choice)

Installation & Setup

Method 1: Direct NPX (Recommended for Testing)

This runs the server directly without global installation.

# Start the server with DuckDuckGo as default engine
npx -y open-websearch@latest

# Windows Command Prompt
set DEFAULT_SEARCH_ENGINE=duckduckgo && npx -y open-websearch@latest

# Windows PowerShell
$env:DEFAULT_SEARCH_ENGINE="duckduckgo"; npx -y open-websearch@latest

# macOS / Linux
DEFAULT_SEARCH_ENGINE=duckduckgo npx -y open-websearch@latest

# Custom port (Windows PowerShell)
$env:PORT="3100"; npx -y open-websearch@latest

Method 2: Global Install

# Install globally
npm install -g open-websearch

# Run the server
open-websearch

Star History

Star History Chart

Disclaimer

open-career-ops is a local, open-source tool — NOT a hosted service. By using this software, you acknowledge:

  1. You control your data. Your CV, contact info, and personal data stay on your machine and are sent directly to the AI provider you choose (Anthropic, OpenAI, etc.). We do not collect, store, or have access to any of your data.
  2. You control the AI. The default prompts instruct the AI not to auto-submit applications, but AI models can behave unpredictably. If you modify the prompts or use different models, you do so at your own risk. Always review AI-generated content for accuracy before submitting.
  3. You comply with third-party ToS. You must use this tool in accordance with the Terms of Service of the career portals you interact with (Greenhouse, Lever, Workday, LinkedIn, etc.). Do not use this tool to spam employers or overwhelm ATS systems.
  4. No guarantees. Evaluations are recommendations, not truth. AI models may hallucinate skills or experience. The authors are not liable for employment outcomes, rejected applications, account restrictions, or any other consequences.

See LEGAL_DISCLAIMER.md for full details. This software is provided under the MIT License "as is", without warranty of any kind.

License

MIT

Let's Connect

Website LinkedIn X Email

About

AI-powered job search system built on Open Code and Ollama. 14 skill modes, Go dashboard, PDF generation, batch processing.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 47.6%
  • Go 36.5%
  • Shell 10.3%
  • HTML 5.6%