imtalha/AI-Powered-Resume-Screening-System
0
AI-Powered-Resume-Screening-System
Overview
This project is an AI-driven resume screening system that extracts key details from resumes, compares them with job descriptions, and computes a match score using NLP techniques. The system leverages Groq's Mixtral-8x7B-32768 model, Sentence Transformers, and Gradio for an interactive user interface.
Implementation Process
- Extracting Text from Resume (PDF)
The system uses pdfminer.six to extract text from uploaded PDF resumes.
- The extracttextfrom_pdf() function reads the document and returns plain text.
- Extracting Structured Information from Resume
The extracted text is processed using Groq's LLM (Mixtral-8x7B-32768) to extract:
- Name
- Skills
- Experience
- Education
The extractresumedata() function sends the extracted text to the LLM and retrieves structured information.
- Matching Resume with Job Description
- The system encodes both the resume details and job description into vector embeddings using SentenceTransformer('all-MiniLM-L6-v2').
- Cosine similarity is computed between the two embeddings using pytorchcossim().
- The matchresumewith_job() function returns a match score indicating candidate suitability.
- Building a User Interface with Gradio
The Gradio library is used to create a simple UI where users can:
- Upload a resume (PDF format)
- Input a job description
- Get extracted resume information and a match score
The process_resume() function integrates all steps and returns results to the UI.
Technologies Used
- Groq API: LLM for resume data extraction
- pdfminer.six: Extract text from PDFs
- Sentence Transformers: Convert text into vector embeddings
- Torch: Compute similarity scores
- Gradio: Build an interactive web interface
Installation & Setup
- Clone the Repository
git clone https://github.com/your-repo/AI-Resume-Screening.git
cd AI-Resume-Screening- Install Dependencies
pip install -r requirements.txt- Set Up Environment Variables
GROQ_API_KEY="your_api_key_here" - Run the Application
python app.pyData Sources
- Resumes: Provided by users in PDF format
- Job Descriptions: Entered manually into the UI
Key Challenges & Solutions
- Extracting Accurate Resume Data
- Challenge: Extracting structured information from raw text.
- Solution: Used Groq LLM to parse text and extract fields accurately.
- Ensuring Resume & Job Matching is Effective
- Challenge: Matching resumes with job descriptions using relevant skills.
- Solution: Used Sentence Transformer embeddings for similarity computation.
- Handling Different Resume Formats
- Challenge: PDF resumes have varied layouts.
- Solution: Used pdfminer.six, which extracts text from diverse formats.
Future Improvements
- Enhance extraction accuracy using fine-tuned LLM models.
- Implement database storage for storing analyzed resumes.
- Add multi-resume comparison to rank multiple candidates.
