How adityaonam/resume_ranking_system works
Resume Ranker is a candidate-resume assessment and recruiter-facing matching application. A candidate signs in, uploads a resume, and receives parsed profile data, ATS scoring and feedback, and company-specific eligibility and rankings; recruiters can browse candidates, company matches, and leaderboards. Company records can also be added from job descriptions with AI-assisted extraction. The README documents these capabilities and the two-stage matching design; sampled source confirms the app shell, authentication, API setup, ranking logic, and ML/LLM service behavior. Some endpoint-to-service wiring is represented at the documented workflow level because endpoint source was not sampled.
Main entry points: resumes.py Resume endpoints · App.jsx React app shell · api.js API client · main.py FastAPI app
Components 28
Candidate and recruiter UI
- React app shell
client/src/App.jsx - Sign-in page
client/src/pages/AuthPage.jsx - Auth context
client/src/contexts/AuthContext.jsx - Upload dashboard
client/src/components/Dashboard/Dashboard.jsx - Resume results
client/src/pages/ResumeResultPage.jsx - ATS dashboard
client/src/pages/ATSDashboard.jsx - Leaderboard
client/src/pages/Leaderboard.jsx - Company directory
client/src/components/Company/CompaniesShowcase.jsx
API and access
- API client
client/src/services/api.js - FastAPI app
server/app/main.py - Resume endpoints
server/app/api/endpoints/resumes.py - Company endpoints
server/app/api/endpoints/companies.py - Analytics endpoints
server/app/api/endpoints/analytics.py
Resume assessment
- Resume parser
server/app/services/resume_parser.py - ATS analysis
server/app/services/ats_analyzer.py - ATS scoring
server/app/services/ats_scorer.py
Company matching
- Embedding engine
server/app/services/embedding_engine.py - Ranking service
server/app/services/rank_service.py - Company matcher
server/app/services/company_matcher.py
Persistence and integrations
- LLM service
server/app/services/llm_service.py - GitHub enrichment
server/app/services/github_service.py - Supabase data store
server/app/core/database.py
Other components
- Candidate
- Recruiter
- Supabase Auth
- Supabase Storage
- Groq LLM API
- GitHub API
Connections 36
- Candidate → React app shell: uses
- Recruiter → React app shell: uses
- React app shell → Sign-in page: routes
- Sign-in page → Auth context: requests sign-in
- Auth context → Supabase Auth: authenticates
- React app shell → Upload dashboard: routes
- React app shell → Resume results: routes
- React app shell → ATS dashboard: routes
- React app shell → Leaderboard: routes
- React app shell → Company directory: routes
- Upload dashboard → API client: submits resume
- Resume results → API client: requests results
- ATS dashboard → API client: requests data
- Leaderboard → API client: requests rankings
- Company directory → API client: requests companies
- API client → FastAPI app: sends API requests
- FastAPI app → Resume endpoints: dispatches
- FastAPI app → Company endpoints: dispatches
- FastAPI app → Analytics endpoints: dispatches
- Resume endpoints → Resume parser: parses resume
- Resume parser → LLM service: extracts structure
- Resume endpoints → ATS analysis: analyzes resume
- ATS analysis → ATS scoring: scores resume
- Resume endpoints → Embedding engine: embeds resume
- Resume endpoints → Ranking service: generates rankings
- Ranking service → Company matcher: scores matches
- Ranking service → Embedding engine: uses embeddings
- Ranking service → Supabase data store: reads and writes rankings
- Resume endpoints → Supabase data store: stores resume data
- Company endpoints → LLM service: extracts job details
- Company endpoints → Supabase data store: reads and writes companies
- Analytics endpoints → Supabase data store: reads analytics data
- Resume endpoints → Supabase Storage: stores uploads
- LLM service → Groq LLM API: requests inference
- Resume endpoints → GitHub enrichment: enriches candidate
- GitHub enrichment → GitHub API: fetches public signals