
CareerForge AI is a full-stack, privacy-oriented career preparation application that helps job seekers discover roles, shape their materials, and practice interviews without user accounts or a server-side database: the React 19 and TypeScript single-page app (Vite, Tailwind, Radix UI) persists profiles, saved jobs, tailored resumes, and interview history in the browser’s localStorage, while a stateless Python 3.12 FastAPI backend exposes REST and WebSocket APIs for the heavy lifting. Users can build a profile manually or upload a resume PDF, which PyMuPDF extracts and an LLM structures into normalized fields; job search hits the JSearch API on RapidAPI with optional keyword-based relevance scoring when a profile is present, falling back to mock listings if no API key is set; resume tailoring sends profile and posting context to the LLM to produce markdown plus ATS-oriented metadata, with PDF and DOCX export handled on the client. The flagship flow is a voice mock interview: the server generates spoken questions via pluggable text-to-speech (gTTS by default, or pyttsx3 or Groq Orpheus), the browser streams answers over a WebSocket, Groq Whisper transcribes audio, and the LLM scores answers and drives the next round until a client-side report summarizes performance. LLM inference targets a local Ollama or endpoint through a LangChain OpenAI-compatible client, with integration points configurable through environment variables; production deployment uses Docker Compose with an nginx-served frontend that reverse-proxies API and WebSocket traffic to the backend and Nginx Proxy Manager at the edge for TLS and long timeouts, while Ollama typically runs on the host and is reached from containers via host.docker.internal. Sensitive career data stays off the server by design; optional outbound use of JSearch, Groq, or remote LLMs is explicit configuration, and HTTPS at the proxy replaces application-level authentication in the current model.
10 May 2026