How codewithshek/ai-powered-resume-screening-and-ranking-system works
This Streamlit application accepts a job description and multiple PDF resumes, extracts resume text, scores each resume against the job description, and displays candidates in descending score order. Its main stages are input, PDF extraction, similarity-based ranking, and result presentation. The README also documents PDF support and candidate ranking; the sampled Main.py implements these capabilities directly. All application components below share that source file; dependency edges reflect calls visible there.
Main entry points: Main.py Screening workflow
Components 10
Hiring interface
- Streamlit interface
Main.py - Screening workflow
Main.py
Resume processing
- PDF text extraction
Main.py - PyPDF2 reader
- Resume ranking
Main.py - TF-IDF vectors
- Cosine similarity
Ranked results
- Sorted score table
Main.py - Pandas DataFrame
Other components
- Recruiter
Connections 11
- Recruiter → Streamlit interface: enters inputs
- Streamlit interface → Screening workflow: passes inputs
- Screening workflow → PDF text extraction: extracts resumes
- PDF text extraction → PyPDF2 reader: reads PDFs
- Screening workflow → Resume ranking: ranks resumes
- Resume ranking → TF-IDF vectors: builds vectors
- Resume ranking → Cosine similarity: calculates scores
- Screening workflow → Sorted score table: builds sorted results
- Sorted score table → Pandas DataFrame: creates DataFrame
- Screening workflow → Streamlit interface: displays rankings
- Streamlit interface → Recruiter: shows results