How abhi-0605/skillbridge_ai works
SkillBridge AI lets job seekers submit a resume and job description, then view an ATS compatibility analysis and recommendations. The client extracts resume text in-browser; the backend stores it and runs keyword extraction, skill matching, ATS scoring, and report generation. The graph also includes authentication, dashboards/history, and the provider abstraction. Edges reflect shown calls or README-documented behavior; provider selection and some client-to-API links rely on README statements because their implementation excerpts were not supplied.
Main entry points: analysisController.js Analysis orchestration · App.jsx App routing · app.js Express application · analysisApi.js Analysis API client
Components 32
Client experience
- App routing
client/src/App.jsx - Resume and JD upload
client/src/pages/UploadPage.jsx - Resume text extraction
client/src/lib/extractResumeText.js - Analysis API client
client/src/features/analysis/analysisApi.js - Dashboard and history
client/src/pages/DashboardPage.jsx - Analysis detail
client/src/pages/AnalysisDetailPage.jsx
Identity
- Login and registration
client/src/pages/LoginPage.jsx - OAuth completion
client/src/pages/OAuthSuccessPage.jsx - Client auth state
client/src/store/AuthContext.jsx - Auth API client
client/src/features/auth/authApi.js
API workflows
- Express application
server/src/app.js - Auth routes
server/src/routes/authRoutes.js - Resume routes
server/src/routes/resumeRoutes.js - Job description routes
server/src/routes/jdRoutes.js - Analysis routes
server/src/routes/analysisRoutes.js - Authentication handlers
server/src/controllers/authController.js - Resume handlers
server/src/controllers/resumeController.js - Job description handlers
server/src/controllers/jdController.js
Analysis pipeline
- Analysis orchestration
server/src/controllers/analysisController.js - Keyword extraction
server/src/services/agents/keywordExtractor.js - Skill matching
server/src/services/agents/skillMatcher.js - ATS scoring
server/src/services/agents/atsScorer.js - Report generation
server/src/services/agents/reportGenerator.js
Persistence and AI
- AI provider interface
server/src/services/ai/aiProvider.js - Resume records
server/src/models/Resume.js - Job description records
server/src/models/JobDescription.js - Analysis records
server/src/models/Analysis.js - Report records
server/src/models/Report.js - User records
server/src/models/User.js
Other components
- Job seeker
- MongoDB
- Configured AI model
Connections 41
- Job seeker → App routing: uses
README.md - App routing → Resume and JD upload: routes to
client/src/App.jsx - App routing → Dashboard and history: routes to
client/src/App.jsx - App routing → Analysis detail: routes to
client/src/App.jsx - App routing → Login and registration: routes to
client/src/App.jsx - App routing → OAuth completion: routes to
client/src/App.jsx - Resume and JD upload → Resume text extraction: extracts text
client/src/pages/UploadPage.jsx - Resume and JD upload → Analysis API client: submits analysis
README.md - Dashboard and history → Analysis API client: fetches history
client/src/pages/DashboardPage.jsx - Analysis detail → Analysis API client: fetches result
client/src/pages/AnalysisDetailPage.jsx - Login and registration → Auth API client: calls
client/src/features/auth/authApi.js - OAuth completion → Client auth state: updates session
client/src/pages/OAuthSuccessPage.jsx - Client auth state → Auth API client: loads current user
client/src/store/AuthContext.jsx - Auth API client → Express application: sends API requests
client/src/features/auth/authApi.js - Analysis API client → Express application: sends API requests
README.md - Express application → Auth routes: mounts
server/src/app.js - Express application → Resume routes: mounts
server/src/app.js - Express application → Job description routes: mounts
server/src/app.js - Express application → Analysis routes: mounts
server/src/app.js - Auth routes → Authentication handlers: dispatches
server/src/routes/authRoutes.js - Resume routes → Resume handlers: dispatches
server/src/routes/resumeRoutes.js - Job description routes → Job description handlers: dispatches
server/src/routes/jdRoutes.js - Analysis routes → Analysis orchestration: dispatches
server/src/routes/analysisRoutes.js - Analysis orchestration → Resume records: reads
server/src/controllers/analysisController.js - Analysis orchestration → Job description records: reads
server/src/controllers/analysisController.js - Analysis orchestration → Analysis records: creates and updates
server/src/controllers/analysisController.js - Analysis orchestration → Keyword extraction: extracts keywords
server/src/controllers/analysisController.js - Analysis orchestration → Skill matching: matches skills
server/src/controllers/analysisController.js - Analysis orchestration → ATS scoring: calculates score
server/src/controllers/analysisController.js - Analysis orchestration → Report generation: generates report
server/src/controllers/analysisController.js - Analysis orchestration → Report records: creates and reads
server/src/controllers/analysisController.js - Keyword extraction → AI provider interface: requests generation
server/src/services/agents/keywordExtractor.js - AI provider interface → Configured AI model: selects provider
README.md - Authentication handlers → User records: reads and creates
server/src/controllers/authController.js - Resume handlers → Resume records: reads and creates
server/src/controllers/resumeController.js - Job description handlers → Job description records: reads and creates
server/src/controllers/jdController.js - Resume records → MongoDB: persists
README.md - Job description records → MongoDB: persists
README.md - Analysis records → MongoDB: persists
README.md - Report records → MongoDB: persists
README.md - User records → MongoDB: persists
README.md