Case study
Career Compass
ML-driven recommendations and LLM-powered resume analysis that guide students and professionals from interest to opportunity with live job matches.
Overview
ML-driven recommendations and LLM-powered resume analysis that guide students and professionals from interest to opportunity with live job matches.
Problem
Career guidance is fragmented: students struggle to map interests to academic paths, and job-seekers struggle to turn resumes into actionable role matches. Career Compass unifies both flows with ML-based recommendations and AI-driven skill extraction, then surfaces live jobs so users can act immediately.
Constraints
Must keep a Node + Python stack, avoid GPU hosting, fit free/low-cost deployment (Render + Vercel), work with limited input data (17-question flow + resume text), and handle external API rate limits with fallbacks.
Decisions
- Split into three services: React UI, ML API, and Resume/Jobs API.
- Use Hugging Face Inference API for skill extraction to avoid GPU hosting.
- Keep deterministic fallbacks when the LLM or external APIs fail.
- Host APIs on Render and the frontend on Vercel.
- Integrate the ML model through a Python subprocess for compatibility.
Metrics
Architecture
Frontend: React + Vite (Career Compass UI)
ML API: Node.js + Python (RandomForest model)
Resume/Jobs API: Node.js + HF Inference API + JSearch
External services: Hugging Face Inference API, RapidAPI JSearch
Connections
Frontend: React + Vite (Career Compass UI) → ML API: Node.js + Python (RandomForest model)
flows
ML API: Node.js + Python (RandomForest model) → Resume/Jobs API: Node.js + HF Inference API + JSearch
flows
Resume/Jobs API: Node.js + HF Inference API + JSearch → External services: Hugging Face Inference API, RapidAPI JSearch
flows