Skip to content

anaakhaa/project-7

Repository files navigation

The "Smart Resume Analyzer Using NLP" project leverages Natural Language Processing (NLP) and machine learning techniques to streamline the process of resume evaluation. The core functionality of the project is implemented using Python, integrating libraries like Spacy, Streamlit, and scikit-learn. The project consists of multiple components, including file handling, feature extraction, similarity scoring, and generating feedback for both job applicants and employers. A synthetic dataset of resumes, job descriptions, and eligibility criteria is used to train a machine learning model, specifically Random Forest, to predict the suitability of a candidate for a given job. The system evaluates resumes based on skill matching, providing a match score and actionable suggestions for skill improvements.

The main components of the system include a user-friendly Streamlit interface that guides both job applicants and companies through different stages. The "Applicant Form" page allows users to upload their resumes and job descriptions, after which the system processes the documents to extract relevant information. Using NLP, it identifies common skills from the resume and job description, then calculates a match score based on their similarity using TF-IDF vectorization and cosine similarity. A higher score signifies better alignment between the candidate's qualifications and the job requirements. The system also provides suggestions for skills that the candidate may need to improve, based on missing skills identified from the job description.

The project also supports a "Company Dashboard" that allows companies to upload multiple resumes and job descriptions simultaneously. After parsing the content of the uploaded documents, the system evaluates the eligibility of each candidate by comparing their resume against the job description using the trained model. The candidates are ranked based on their match scores, and their eligibility status (eligible or not) is determined. The results are displayed in an organized table, highlighting the candidate's name, score, rank, and eligibility status. This feature assists companies in efficiently processing large volumes of applications and making better-informed hiring decisions.

To ensure a seamless user experience, the project incorporates a dynamic page navigation system that uses Streamlit's session state to handle transitions between different pages, such as the home page, applicant form, and company login. Background images are added to enhance the aesthetics of the interface. Additionally, various error-handling mechanisms are implemented to address issues such as invalid file types or empty content, ensuring robustness. The project's modular design, incorporating both front-end and back-end functionality, makes it a comprehensive tool for resume analysis and matching, providing value to both applicants and companies in the hiring process.