How coderaryan1008/careerforge-ai works
CareerForge-AI is a career-preparation web app. A user signs in, submits a resume or profile description plus a job description, and receives an AI-generated interview report with match scoring, questions, skill gaps, and a preparation plan; reports can be revisited and used to generate a tailored PDF resume. The graph follows the sampled auth and report-generation code. Interview route and frontend API implementations were not sampled, so their internal request wiring is not expanded.
Main entry points: main.jsx App router · useInterview.js Interview hook · Interview.controller.js Report controller · auth.routes.js Auth routes
Components 24
Web application
- App router
Frontend/src/main.jsx - Auth pages
Frontend/src/features/auth/pages/Login.jsx - Auth hook
Frontend/src/features/auth/hooks/useAuth.js - Auth API client
Frontend/src/features/auth/services/auth.api.js - Interview workspace
Frontend/src/features/interview/pages/Home.jsx - Interview hook
Frontend/src/features/interview/hooks/useInterview.js - Interview API client
Frontend/src/features/interview/services/interview.api.js - Report view
Frontend/src/features/interview/pages/InterviewReport.jsx - Saved reports
Frontend/src/features/interview/pages/GetReports.jsx
API and workflow
- Express app
Backend/src/app.js - Auth routes
Backend/src/routes/auth.routes.js - Auth controller
Backend/src/controllers/auth.controllers.js - Token middleware
Backend/src/middlewares/auth.middleware.js - Interview routes
Backend/src/routes/interview.ai.js - Report controller
Backend/src/controllers/Interview.controller.js
Persistent data
- User records
Backend/src/models/user.model.js - Interview reports
Backend/src/models/interviewReport.model.js - Token blacklist
Backend/src/models/blacklist.model.js
AI generation
- AI and PDF service
Backend/src/routes/services/ai.service.js
Other components
- Career candidate
- Gemini AI
- Resume and job details
- PDF text extraction
- Chromium PDF renderer
Connections 23
- Career candidate → App router: uses
- App router → Auth pages: routes
- App router → Interview workspace: routes
- App router → Report view: routes
- App router → Saved reports: routes
- Auth pages → Auth hook: auth actions
- Auth hook → Auth API client: calls
- Express app → Auth routes: mounts
- Express app → Interview routes: mounts
- Auth routes → Auth controller: dispatches
- Auth routes → Token middleware: protects profile
- Auth controller → User records: reads and writes
- Auth controller → Token blacklist: blacklists token
- Token middleware → Token blacklist: checks token
- Interview workspace → Interview hook: submits inputs
- Interview hook → Interview API client: calls
- Interview hook → Report view: sets report
- Interview hook → Saved reports: loads reports
- Report controller → PDF text extraction: extracts resume text
- Report controller → AI and PDF service: requests report or resume
- AI and PDF service → Gemini AI: generates content
- Report controller → Interview reports: stores and reads reports
- AI and PDF service → Chromium PDF renderer: renders resume PDF