🌟 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

  1. Backend: Developed using Python and Flask.
  2. Resume Parsing: Extracted text from PDF files using PyPDF2.
  3. Text Processing: Applied text cleaning techniques using NLTK, including stopword removal, punctuation elimination, and lowercase conversion.
  4. Vectorization: Transformed text into numerical vectors using TF-IDF.
  5. Similarity Calculation: Measured relevance using Cosine Similarity:
    • A and B represent the TF-IDF vectors of the resume and job description.
  6. Output: Generated JSON responses containing the match score and recommendation.
  7. 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.

Built With

Share this project:

Updates

Submission history