How yashnw2005/careerforge-ai works
CareerForge AI is a resume-to-job matching application. A user registers or signs in, opens the protected dashboard, submits a PDF resume with a job description and required skills, and receives a persisted match analysis with skill gaps and career recommendations; they can also retrieve analysis history. The backend authenticates requests and coordinates the ML service and MongoDB. The ML API exposes additional skill extraction, job matching, semantic matching, skill-gap, and role-recommendation capabilities. Frontend wiring beyond the sampled app and auth context is inferred only where component roles are clear; ML internals are shown at the API-to-service boundary.
Main entry points: main.py ML API · User.js User records · server.js Express server · analysisController.js Analysis controller
Components 27
Web application
- Application routes
frontend/src/App.tsx - Auth state
frontend/src/context/AuthContext.tsx - Dashboard
frontend/src/pages/Dashboard.tsx - Analysis form
frontend/src/components/analysis/AnalysisForm.tsx - Analysis results
frontend/src/components/analysis/AnalysisResults.tsx - HTTP client
frontend/src/services/api.ts - Analysis API client
frontend/src/services/analysisApi.ts
Backend API
- Express server
backend/server.js - Auth routes
backend/routes/authRoutes.js - Auth controller
backend/controllers/authController.js - User routes
backend/routes/userRoutes.js - Token protection
backend/middleware/authMiddleware.js - Analysis routes
backend/routes/analysisRoutes.js - Analysis controller
backend/controllers/analysisController.js - ML service client
backend/services/mlService.js
ML analysis
- ML API
ml-service/app/main.py - PDF extraction
ml-service/app/services/pdf_extractor.py - Resume analysis
ml-service/app/services/resume_analyzer.py - Skill extraction
ml-service/app/services/skill_extractor.py - Job matching
ml-service/app/services/job_matcher.py - Semantic matching
ml-service/app/services/semantic_matcher.py - Skill gap analysis
ml-service/app/services/skill_gap.py - Role recommendations
ml-service/app/services/role_recommender.py
Persistence
- User records
backend/models/User.js - Analysis records
backend/models/Analysis.js
Other components
- User
- MongoDB
Connections 32
- User → Application routes: uses
- Application routes → Auth state: renders
- Application routes → Dashboard: routes
- Dashboard → Analysis form: presents
- Dashboard → Analysis results: shows
- Auth state → HTTP client: requests
- Analysis form → Analysis API client: submits
- Analysis API client → HTTP client: uses
- HTTP client → Express server: HTTP requests
- Express server → Auth routes: dispatches
- Express server → User routes: dispatches
- Express server → Analysis routes: dispatches
- Auth routes → Auth controller: dispatches
- Auth controller → User records: reads/writes
- Auth controller → User records: issues token for
- User routes → Token protection: protects
- Analysis routes → Token protection: protects
- Token protection → User records: loads
- Analysis routes → Analysis controller: dispatches
- Analysis controller → ML service client: requests analysis
- ML service client → ML API: posts PDF and job data
- Analysis controller → Analysis records: creates/queries
- Analysis controller → User records: scopes by user
- ML API → Resume analysis: analyzes resume-job
- ML API → Skill extraction: extracts skills
- ML API → Job matching: calculates match
- ML API → Semantic matching: calculates similarity
- ML API → Skill gap analysis: analyzes gaps
- ML API → Role recommendations: recommends roles
- ML API → PDF extraction: extracts PDF text
- MongoDB → Analysis records: stores
- MongoDB → User records: stores