Skip to content

PunithVT/career-ops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

career-ops β€” AI Job Search Platform πŸš€

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.

License: MIT Node.js Powered by Claude Self-hosted

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


⚑ Why career-ops

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.

🎯 What it does

🌐 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

πŸ’» CLI mode

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.


πŸ›  Quick start

Run the web app locally (5 minutes)

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 start

Open http://localhost:3000, register an account, paste your CV during onboarding, and start evaluating roles.


☁️ Deploy to AWS EC2 (production)

# 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 startup

Open 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.


🧠 Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  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.


πŸ”§ Tech stack

  • 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

πŸš€ Comparable to / better than

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

🀝 Contributing

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.

πŸ“œ License

MIT β€” see LICENSE.

πŸ™ Credits


🌐 Available in: English Β· EspaΓ±ol Β· PortuguΓͺs Β· ν•œκ΅­μ–΄ Β· ζ—₯本θͺž Β· Русский Β· 繁體中文

About

πŸš€ Self-hosted multi-user AI job search platform β€” evaluate JDs with Claude AI, generate ATS-optimized PDF CVs, scan Greenhouse/Ashby/Lever portals, track applications, draft LinkedIn outreach, prep interviews, and analyze rejection patterns. Deploy on AWS in 5 minutes.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors