Analyze and optimize your resume for a given job. Frontend (Vite + React + TypeScript) talks to a minimal FastAPI backend with a single endpoint.
backend/— FastAPI service exposingPOST /api/v1/analyze-resumefrontend/— Vite + React + TS app (UI for upload/analyze/view report)
Single, stateless API as defined in backend/backend-structure.md.
- Python 3.10+
cd backend
python -m pip install --upgrade pip
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadThe API docs are available at: http://localhost:8000/docs
POST /api/v1/analyze-resume(multipart/form-data)resume: PDF file (max 10MB, required)jobTitle: string (required)jobDescription: string (optional)jobLink: URL (optional)
Responses and error formats are documented in backend/backend-structure.md.
Backend allows local dev at http://localhost:8080 by default. If your frontend runs elsewhere, add the origin in main.py.
- Node.js 18+
Create frontend/.env (or edit it) and set the backend URL:
VITE_API_BASE_URL=http://localhost:8000cd frontend
npm install
npm run devThe app will start on http://localhost:8080 (configured in frontend/vite.config.ts).
cd frontend
npm run build
npm run preview- Start the backend (port 8000).
- Start the frontend and ensure
VITE_API_BASE_URLpoints to the backend. - In the UI:
- Upload a PDF resume (≤ 10MB).
- Enter Job Title (required), optionally Job Description and Job Link.
- Click “Analyze & Generate Report”.
- View the Markdown report; you can download or clear it.
Errors (file too large, invalid file type, bad URL, analysis failure) are surfaced via toasts, mirroring backend error messages.
- 413 File too large: Ensure the PDF is ≤ 10MB.
- Invalid file type: Only
application/pdfis accepted. - CORS error: Add your frontend origin to allowed origins in
backend/main.py. - Network error: Verify
VITE_API_BASE_URLinfrontend/.envand backend is running.
- Frontend: Vite, React, TypeScript, Tailwind CSS, shadcn-ui
- Backend: FastAPI (Python)