The all-in-one, self-hosted, AI-powered job search command center. Evaluate job descriptions with Claude AI, generate ATS-optimized PDF CVs tailored to every role, scan Greenhouse / Ashby / Lever portals automatically, track every application, draft LinkedIn outreach, prep interviews, and analyze rejection patterns β all from a single multi-user web app you can host on AWS, your own VPS, or any Node.js server.
Search keywords: AI job search Β· AI resume builder Β· ATS-optimized CV generator Β· Claude AI career assistant Β· LinkedIn outreach AI Β· interview prep AI Β· job application tracker Β· multi-user self-hosted job search platform Β· Greenhouse Ashby Lever scraper Β· rejection pattern analyzer Β· follow-up cadence tracker Β· salary negotiation assistant Β· tailored cover letter Β· open-source career tools Β· Anthropic API job pipeline Β· ChatGPT job search alternative Β· Claude Sonnet 4.6 web app
Sending hundreds of generic applications doesn't work anymore. career-ops uses Claude AI to find the right roles, tailor your CV to each one, and track every step β turning the modern job hunt from a soul-crushing slog into a focused, data-driven pipeline.
Originally built and used to evaluate 740+ job offers and land a Head of Applied AI role, it's now a self-hostable web platform you and your friends can run privately. No SaaS lock-in, no monthly subscription, no data leaving your server.
π Multi-user Web App (web/)
A single Node.js server gives every user their own private workspace:
| Feature | Description |
|---|---|
| π Multi-user accounts | bcrypt-hashed passwords, session cookies, fully isolated per-user data |
| π Dashboard | Applications tracker with status, scores, filters, statistics |
| β‘ AI Job Evaluation | Paste any JD or URL β get a 7-block AβG analysis (fit, comp, gaps, red flags, posting legitimacy) streamed live |
| π ATS-Optimized PDF CV | Claude tailors your CV to each JD, Playwright renders a clean PDF that passes ATS parsers |
| π Compare Multiple Offers | 10-dimension scoring matrix to rank competing offers |
| π Deep Company Research | Structured intel brief β AI strategy, recent moves, culture, tech stack |
| βοΈ LinkedIn Outreach Generator | Three-sentence framework for recruiters, hiring managers, and peers |
| π Interview Prep Engine | Glassdoor / Blind / LeetCode pattern analysis + STAR stories |
| π Course / Certification ROI | "Should I take this course?" β MAKE / SKIP / TIMEBOX verdict |
| π Portfolio Project Evaluator | Scores project ideas across signal, uniqueness, demo-ability |
| βοΈ Apply Assistant | Paste form questions β get tailored answers ready to copy-paste |
| π‘ Portal Scanner | Zero-token scan of Greenhouse, Ashby, Lever APIs to discover new roles |
| β³ Pipeline Auto-Process | Paste 10 URLs, get 10 evaluations + reports + tracker entries in one click |
| π Rejection Pattern Analyzer | Detects what's working and what's wasting time, recommends targeting changes |
| π¬ Follow-up Cadence Tracker | Calculates which applications need a follow-up and drafts the message |
| β Profile & CV Editor | Edit CV, archetypes, scoring weights, application tracker β all from the browser |
The original career-ops CLI is also available β every mode is exposed as a Claude Code slash command (/career-ops, /career-ops oferta, /career-ops scan, etc.). See CLAUDE.md for the full command list.
git clone https://github.com/PunithVT/career-ops.git
cd career-ops
# Install root deps (Playwright for PDF generation)
npm install
npx playwright install chromium
# Install + run the web app
cd web
npm install
cp .env.example .env
# Edit .env β add your ANTHROPIC_API_KEY (get one at console.anthropic.com)
npm startOpen http://localhost:3000, register an account, paste your CV during onboarding, and start evaluating roles.
# On a fresh Ubuntu EC2 instance:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs git
git clone https://github.com/PunithVT/career-ops.git
cd career-ops
npm install
npx playwright install --with-deps chromium
cd web
npm install
cp .env.example .env
nano .env # paste your ANTHROPIC_API_KEY + a long random SESSION_SECRET
# Keep it running with PM2
sudo npm install -g pm2
pm2 start "node --env-file=.env server.mjs" --name career-ops
pm2 save && pm2 startupOpen port 3000 in your EC2 security group (or front it with nginx + Let's Encrypt for a proper HTTPS domain). Share the URL β friends register their own accounts with their own private data.
βββββββββββββββββββ
β Browser (SPA) β β vanilla HTML / CSS / JS, dark theme, no build step
ββββββββββ¬βββββββββ
β fetch + Server-Sent Events (streaming)
ββββββββββΌβββββββββ
β Express server β β bcrypt auth Β· session cookies Β· per-user data dirs
β (Node.js 22) β
ββββββββββ¬βββββββββ
β
ββββ Anthropic API (Claude Sonnet 4.6) β all AI modes, with prompt caching
ββββ Playwright (Chromium headless) β HTML β ATS-clean PDF rendering
ββββ Greenhouse / Ashby / Lever APIs β zero-token portal scan
Each user has an isolated data directory (CV, profile, applications, reports, PDF output). The 13 AI prompt modes in modes/ are loaded as Claude system prompts with prompt caching enabled to reduce token costs.
- Backend: Node.js 22 Β· Express 4 Β·
express-sessionΒ·bcryptjsΒ·js-yaml - AI / LLM:
@anthropic-ai/sdkβ Claude Sonnet 4.6, prompt caching, SSE streaming - PDF rendering: Playwright β Chromium headless, ATS-parseable output
- Frontend: Vanilla HTML / CSS / JS β no React, no Vue, no build pipeline, no bundler
- Storage: File-based β markdown + YAML, per-user directories. No database, no Docker required
- Job portals: Greenhouse, Ashby, Lever (direct REST APIs, zero LLM tokens spent)
- Deployment: Single Node process Β· works on any VPS Β· AWS-ready Β· Docker-friendly
career-ops gives you the power of paid AI career platforms, self-hosted and free:
- Better than ChatGPT job search β automated portal scanning, persistent tracker, multi-user
- Better than Teal / Huntr β AI-tailored PDF CVs, deep evaluation, interview prep, all integrated
- Better than Resume.io / Kickresume β your CV is a markdown file, AI tailors it per role
- Better than LinkedIn Premium β outreach scripts that actually convert, no monthly fee
- Better than Final Round AI / Glider β interview intel pulled from real Glassdoor / Blind / LeetCode data
This is a fork of the excellent santifer/career-ops CLI with a custom multi-user web app added. Pull requests, bug reports, and feedback welcome.
MIT β see LICENSE.
- Original career-ops CLI, prompt logic, archetypes, and scoring system by Santiago FernΓ‘ndez de Valderrama
- Multi-user web app, AWS deployment, and platform engineering by Punith VT
π Available in: English Β· EspaΓ±ol Β· PortuguΓͺs Β· νκ΅μ΄ Β· ζ₯ζ¬θͺ Β· Π ΡΡΡΠΊΠΈΠΉ Β· ηΉι«δΈζ