How abdullahasim19/career-coach-app-ai-powered-resume-analysis works
CareerCoach AI supports resume improvement, mock interview practice, career advice, and progress tracking. The main workflow lets a professional upload a resume, which the API parses, sends for AI analysis, and stores for later review; interview sessions separately generate questions, evaluate submitted answers, and persist results. The dashboard exposes progress metrics, while career-advice and resume-tailoring routes provide additional coaching paths. The graph follows sampled route implementations and documented capabilities; some UI-to-API wiring and unsampled features are not shown.
Main entry points: prisma.ts PostgreSQL · upload/route.tsx Resume upload · start/route.tsx Start interview · answer/route.tsx Answer evaluation
Components 23
Resume coaching
- Resume upload
src/app/api/v1/resume/upload/route.tsx - Resume parser
src/lib/utils/fileProcessor.ts - Resume analysis
src/lib/ai/openai/resumeAnalysis.ts - Analysis retrieval
src/app/api/v1/[id]/analysis/route.tsx - Resume tailoring
src/app/api/v1/resume/upload/tailor/route.tsx - Tailoring AI
src/lib/ai/openai/resumeTailoring.ts
Interview practice
- Start interview
src/app/api/v1/interview/start/route.tsx - Question generation
src/lib/ai/openai/interviewQuestions.ts - Answer evaluation
src/app/api/v1/interview/start/[sessionId]/answer/route.tsx - Answer evaluator
src/lib/ai/openai/answerEvaluation.ts - Interview results
src/app/api/v1/interview/start/[sessionId]/results/route.tsx - Voice interview
src/hooks/useVoiceInterview.ts - Interview state
src/store/interviewStore.ts
Career insights
- Career advice
src/app/api/v1/user/career-advice/route.tsx - Advice generation
src/lib/ai/openai/careerAdvice.ts - Progress metrics
src/app/api/v1/user/stats/route.tsx - Progress dashboard
src/app/(dashboard)/page.tsx
Platform services
- User preferences
src/app/api/v1/user/preferences/route.tsx - Account sync
src/app/api/webhooks/clerk/route.tsx - Clerk identity
- OpenAI
- PostgreSQL
src/lib/db/prisma.ts
Other components
- Professional
Connections 42
- Professional → Resume upload: uploads resume
- Resume upload → Resume parser: parses file
- Resume upload → Resume analysis: requests analysis
- Resume upload → PostgreSQL: writes resume and score
- Resume parser → Resume upload: returns text
- Resume analysis → OpenAI: calls API
- Resume analysis → Resume upload: returns analysis
- Professional → Analysis retrieval: requests analysis
- Analysis retrieval → PostgreSQL: reads analysis
- Professional → Resume tailoring: requests tailoring
- Resume tailoring → PostgreSQL: reads resume, saves session
- Resume tailoring → Tailoring AI: requests tailoring
- Tailoring AI → OpenAI: calls API
- Professional → Start interview: starts session
- Start interview → Question generation: requests questions
- Start interview → PostgreSQL: reads user, saves session
- Question generation → OpenAI: calls API
- Professional → Answer evaluation: submits answer
- Answer evaluation → PostgreSQL: reads session, saves feedback
- Answer evaluation → Answer evaluator: requests evaluation
- Answer evaluator → OpenAI: calls API
- Professional → Interview results: requests results
- Interview results → PostgreSQL: reads feedback
- Voice interview → Interview state: adds transcript
- Professional → Career advice: requests advice
- Career advice → PostgreSQL: reads career history
- Career advice → Advice generation: requests advice
- Advice generation → OpenAI: calls API
- Professional → Progress metrics: requests metrics
- Progress metrics → PostgreSQL: reads progress data
- Professional → User preferences: manages preferences
- User preferences → PostgreSQL: reads and writes preferences
- Clerk identity → Account sync: sends account events
- Account sync → PostgreSQL: creates or deletes user
- Clerk identity → Resume upload: authenticates
- Clerk identity → Start interview: authenticates
- Clerk identity → Answer evaluation: authenticates
- Clerk identity → Interview results: authenticates
- Clerk identity → Career advice: authenticates
- Clerk identity → Progress metrics: authenticates
- Clerk identity → User preferences: authenticates
- Clerk identity → Analysis retrieval: authenticates