How prashik007-sudo/ai-resume-analyzer works
AI Resume Analyzer is a FastAPI backend for extracting structured resume and job-description data, scoring resumes for ATS readiness, and comparing resumes with job requirements. The main workflow is PDF upload, text extraction and AI parsing, then ATS scoring; job matching combines rule-based comparisons with Gemini analysis. The README also documents role prediction, career guidance, and cover-letter generation, but the sampled source does not establish their implementation or wiring. The tree and excerpts support the core services and integrations shown; uncertain connections are omitted.
Main entry points: resume_services.py Resume service · gemini_service.py Gemini service · ats_score_service.py ATS scoring · job_matching_service.py Job matching
Components 23
API entrypoints
- FastAPI app
backend/app/main.py - Resume routes
backend/app/routers/resume.py - Job routes
backend/app/routers/jd.py
Resume analysis
- Resume service
backend/app/services/resume_services.py - Uploaded PDFs
backend/app/services/resume_services.py - Text cleaner
backend/app/utils/text_cleaner.py - Resume parser
backend/app/services/resume_parser.py - Resume schema
backend/app/schemas/resume_schema.py - ATS scoring
backend/app/services/ats_score_service.py - ATS scoring rules
backend/app/config/ats_config.py - Skill categories
backend/app/config/skill_categories.py - Skill normalizer
backend/app/utils/skill_normalizer.py
Job matching
- JD extraction
backend/app/services/jd_service.py - JD schema
backend/app/schemas/jd_schema.py - Job matching
backend/app/services/job_matching_service.py - Rule comparisons
backend/app/services/matching_utils.py - Match schema
backend/app/schemas/matching_schema.py - Role, guidance & letters
backend/app/services
AI integration
- Gemini service
backend/app/ai/gemini_service.py - AI prompts
backend/app/ai/prompts - Response parser
backend/app/ai/response_parser.py
Other components
- Applicant
- Gemini API
Connections 22
- Applicant → FastAPI app: sends requests
- FastAPI app → Resume routes: mounts routes
- FastAPI app → Job routes: mounts routes
- Resume routes → Resume service: calls upload/extract
- Resume routes → ATS scoring: calls scoring
- Resume service → Uploaded PDFs: writes/reads PDFs
- Resume service → Text cleaner: cleans text
- Resume service → Resume parser: extracts contacts
- Resume service → Gemini service: requests extraction
- Resume service → Resume schema: builds response
- ATS scoring → ATS scoring rules: reads score rules
- ATS scoring → Skill categories: reads categories
- ATS scoring → Skill normalizer: normalizes skills
- Job routes → JD extraction: calls extraction
- JD extraction → Gemini service: requests extraction
- JD extraction → JD schema: builds response
- Job matching → Rule comparisons: runs comparisons
- Job matching → Gemini service: requests semantic match
- Job matching → Match schema: builds result
- Gemini service → AI prompts: formats prompts
- Gemini service → Gemini API: generates content
- Gemini service → Response parser: parses response