This project is an ATS (Applicant Tracking System) Interview Chatbot designed to assist in automating the recruitment process. The chatbot uses Azure services for natural language processing and generates job-specific interview questions based on the job description. It also evaluates candidate responses for fitment and sentiment analysis.
- Introduction
- Features
- Technologies Used
- Installation
- Usage
- Endpoints
- Contributing
- License
- Acknowledgements
The ATS Interview Chatbot is designed to streamline the hiring process by automating resume screening, question generation, and candidate evaluation. It uses Azure Cognitive Services for extracting key phrases and performing sentiment analysis.
- Extract text from resumes in PDF format.
- Preprocess and compare resumes with job descriptions.
- Generate interview questions based on job descriptions.
- Conduct interviews and capture candidate responses.
- Analyze candidate responses for keyword matches and sentiment.
- Verify candidate identity based on resume information.
- Flask: A lightweight WSGI web application framework.
- Python: The programming language used for backend logic.
- Azure Cognitive Services: Used for text analytics and sentiment analysis.
- PyPDF2: For extracting text from PDF resumes.
- NLTK: For natural language processing tasks.
- Transformers (Hugging Face): For text generation using GPT-2.
- scikit-learn: For calculating text similarity.
- dotenv: For loading environment variables.
-
Clone the repository:
git clone https://github.com/yourusername/ats-interview-chatbot.git cd ats-interview-chatbot -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
Create a
.envfile in the root directory with the following content:AZURE_LANGUAGE_ENDPOINT="https://your-azure-endpoint.cognitiveservices.azure.com/" AZURE_LANGUAGE_KEY="your-azure-key" -
Download NLTK data:
python -m nltk.downloader stopwords punkt
-
Run the application:
flask run
-
Start the Flask server:
flask run
-
Access the application:
Open your web browser and go to
http://127.0.0.1:5000. -
Upload a job description:
Enter the job description in the provided form.
-
Receive the best matching resume and interview questions:
The system will provide the best matching resume and generate interview questions based on the job description.
-
Conduct the interview:
Ask the generated questions to the candidate and record their responses.
-
Analyze candidate responses:
The system will analyze the candidate's responses for keyword matches and sentiment to provide an overall fitment score.
- GET /:
- Render the index page.
- POST /search_resume:
- Search for the best matching resume based on the job description.
- POST /verify_candidate:
- Verify the candidate's identity based on provided information.
- GET /interview:
- Render the interview page.
- POST /analyze_interview:
- Analyze the candidate's interview responses.
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Make your changes and commit them:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature-name. - Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- The project utilizes Azure Cognitive Services.
- Special thanks to the contributors of open-source libraries and tools used in this project.