🌟 Inspiration
Recruiters often dedicate countless hours to manually reviewing hundreds of resumes for a single job posting. This process is not only time-intensive but also susceptible to human error and potential bias. To address these challenges, we developed a solution that leverages AI to automate resume screening, enabling recruiters to efficiently identify the best candidates while minimizing bias and enhancing productivity.
⚙️ What it does
- Accepts PDF resumes and a job description (JD) as inputs.
- Utilizes Natural Language Processing (NLP) to extract key details such as skills, experience, and education from resumes.
- Converts text into numerical vectors using TF-IDF and calculates the cosine similarity between resumes and the JD.
- Provides a match score along with a recommendation (Shortlist / Consider / Reject).
- Outputs results in JSON format, allowing seamless integration with other systems.
Example Output:
{
"match_score": 86.7,
"recommendation": "Shortlist"
}
🛠️ How we built it
- Backend: Developed using Python and Flask.
- Resume Parsing: Extracted text from PDF files using PyPDF2.
- Text Processing: Applied text cleaning techniques using NLTK, including stopword removal, punctuation elimination, and lowercase conversion.
- Vectorization: Transformed text into numerical vectors using TF-IDF.
- Similarity Calculation: Measured relevance using Cosine Similarity:
- A and B represent the TF-IDF vectors of the resume and job description.
- A and B represent the TF-IDF vectors of the resume and job description.
- Output: Generated JSON responses containing the match score and recommendation.
- Optional: Stored results in MongoDB for historical data analysis.
🚧 Challenges we faced
- Resume Formats: Handling diverse PDF layouts made clean text extraction challenging.
- Unstructured Data: Scattered keywords and experience required extensive preprocessing for accuracy.
- Integration: Merging NLP, TF-IDF, and Flask into a cohesive API was a learning experience.
- Testing: Ensured consistent API performance across various resumes and job descriptions.
🏆 Accomplishments we’re proud of
- Successfully built a functional AI-powered resume screening prototype.
- Gained hands-on experience with NLP techniques to tackle a real-world HR challenge.
- Created a reusable API compatible with any recruitment system.
- Demonstrated how AI can reduce manual workload and human bias effectively.
📚 Key learnings
- Strengthened foundational Python skills like loops, functions, file handling, and JSON.
- Mastered NLP preprocessing techniques, including tokenization and text cleaning.
- Learned to use TF-IDF and Cosine Similarity for textual data comparison.
- Gained experience in developing and testing Flask APIs using Postman.
- Explored database integration with MongoDB (optional).
- Learned to break down complex, real-world problems into manageable steps.
🚀 Future plans
- Expand support to include multiple resume formats (e.g., Word, scanned PDFs).
- Integrate advanced ML models for smarter candidate-job fit predictions.
- Develop a recruiter dashboard with detailed analytics and insights.
- Deploy the solution on cloud platforms like AWS or Render for public accessibility.
- Implement features like keyword highlighting and skill-matching visualizations.
Log in or sign up for Devpost to join the conversation.