The Virtual Interviewer is an innovative project that combines the power of large language models (LLMs) and audio transcription to create an interactive and intelligent interviewing system. This project aims to streamline the interview process by generating relevant questions based on a candidate's resume and evaluating the candidate's responses using advanced natural language processing techniques.
- Automatic generation of interview questions based on the candidate's resume
- Audio recording and transcription of the candidate's responses
- Real-time evaluation of the candidate's answers using LLMs
- Interactive and user-friendly interface
- Integration with Google's Gemini language model for accurate question generation and response evaluation
- Python
- LangChain: A framework for building applications with LLMs
- AssemblyAI: Audio transcription API
- Google Generative AI: Language model for question generation and response evaluation
- PyPDF: Library for loading and processing PDF documents
- FFmpeg: Library for handling audio and video files
-
Clone the repository:
git clone https://github.com/your-username/virtual-interviewer.git -
Install the required dependencies:
pip install -r requirements.txt -
Set up the necessary API keys:
- Obtain an API key from AssemblyAI and update the
aai.settings.api_keyvariable in the code. - Obtain a Google API key and provide it as the
api_keyvariable in the code.
- Obtain an API key from AssemblyAI and update the
-
Prepare the candidate's resume:
- Save the candidate's resume as a PDF file.
- Update the
pdf_pathvariable in the code with the path to the resume file.
-
Run the Virtual Interviewer:
python virtual_interviewer.py
-
The Virtual Interviewer will load the candidate's resume and generate relevant interview questions based on the content.
-
The candidate will be prompted to answer each question by speaking into the microphone.
-
The audio responses will be recorded, transcribed, and evaluated in real-time using the LLMs.
-
If a response is deemed unsatisfactory or irrelevant, the candidate will be asked to provide a more relevant answer.
-
The interview will continue until all generated questions have been answered satisfactorily.
- Integration with video recording for a more immersive interview experience
- Sentiment analysis of the candidate's responses
- Customizable question generation based on specific job requirements
- Multi-language support for global recruitment
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.
This project is licensed under the MIT License.
We would like to express our gratitude to the developers and contributors of the various libraries and frameworks used in this project. Their hard work and dedication have made this project possible.
For any inquiries or feedback, please contact us at [email protected]
Feel free to customize and expand upon this README file based on your specific project details and requirements.