This project demonstrates the creation of an Applicant Tracking System (ATS) powered by Generative AI (GenAI) models. The system leverages AI capabilities to streamline recruitment processes by:
- Matching candidates to job roles.
- Automating candidate communication.
- Advising on the chances that the resume provided fits the job description.
- Provides strengths and weakness of a resume in relation to a job description.
By integrating GenAI, the ATS provides smarter, faster, and more accurate talent acquisition workflows.
- Resume Parsing: Extracts key details such as name, skills, work history, and education from resumes in PDF or DOCX format.
- Job Description Generation: Leverages Generative AI to craft precise and engaging job descriptions for any role. Candidate Matching: Analyzes candidate profiles and job descriptions to compute compatibility scores.
- Fit Assessment: Provides a detailed analysis of how well a resume matches a job description and advises on overall fit chances. Strengths and Weaknesses Analysis: Highlights the strengths and areas for improvement in a candidate's resume relative to a job description.
- Automated Communication: Drafts customized emails for candidate updates, interview invitations, or feedback.
- Programming Language: Python
- Framework: Streamlit (for the UI)
- AI Models: GenAI GPT models (e.g., gemini-1.5)
- Libraries:
pandas
- Data manipulation.streamlit
- User interface.genai
- API integration for GenAI.pdf2image
- Load in a pdf and convert to image
- Python 3.10+
- GenAI API key (for GPT model usage)
- Clone the repository:
git clone https://github.com/yourusername/ATS-system.git cd ATS-system
- Load in the environment:
conda create -f environment.yml
- Set up the GenAI API key:
- Create a
.env
file in the project directory. - How to create a GenAI API key
- Add your API key:
OPENAI_API_KEY=your_openai_api_key
- Create a
- Run the application:
streamlit run app.py
- Navigate to the URL provided by Streamlit (usually
http://localhost:8501
). - Use the following features:
- Upload resumes in PDF or DOCX format for parsing.
- Input job titles to generate descriptions.
- View candidate-job matches based on AI scores.
ATS-GenAI/
│
├── app.py # Streamlit app
├── resume_parser.py # Resume parsing logic
├── job_description.py # Job description generator
├── candidate_matcher.py # Candidate ranking and matching
├── .env # API key file
├── requirements.txt # Python dependencies
├── README.md # Project documentation
└── data/
├── sample_resumes/ # Sample resumes for testing
├── output/ # Parsed and matched results
- Input:
"Software Engineer"
- Output: A detailed job description including roles, responsibilities, and qualifications.
- Input: A resume file and a job description.
- Output: Fit score (e.g., "85% match"). Strengths and weaknesses analysis.
- Integration with LinkedIn for candidate sourcing.
- Advanced analytics dashboard for recruiters.
- Support for multi-language parsing and matching.
- Integration with third-party email platforms for automated scheduling.
- Nanyaemuny Savins - GitHub Profile
This project is licensed under the MIT License. See LICENSE
for more details.
- GenAI for providing the Generative AI models.
- Streamlit for the interactive UI framework.
- Community contributors for testing and feedback.