title | emoji | colorFrom | colorTo | sdk | sdk_version | app_file | pinned |
---|---|---|---|---|---|---|---|
Automated Interview Filtering |
🐉 |
red |
purple |
gradio |
5.6.0 |
src/app.py |
true |
The Automated Interview Filtering System is an AI-powered tool that helps HR professionals streamline their interview process through automated analysis of video interviews, resumes, and candidate responses. The system leverages multiple AI technologies including emotion detection, speech-to-text conversion, and natural language processing to provide comprehensive candidate assessments.
The project follows a clean, layered monolith architecture:
src/
├── domain/ # Core business logic and entities
├── service/ # Use cases and business rules
├── utils/ # Helper functions and utilities
└── app.py # Frontend interface
tests/
└── integration/ # Integration tests
- Domain Layer: Contains business entities, value objects, and enums
- Service Layer: Core business logic and use cases
- LangChain for LLM integration
- DeepFace for emotion analysis
- Google Speech-to-Text for audio transcription
- LlamaParse for resume parsing
- Frontend Interface: Gradio-based user interface
- Utils: Helper functions and utilities
- Frontend: Gradio
- AI/ML:
- LangChain for LLM operations
- DeepFace for facial emotion analysis
- Google Speech-to-Text API
- LlamaParse for resume parsing
- Development Tools:
- Python 3.9+
- Black for code formatting
- pytest for testing
- pre-commit hooks
- Python 3.9 or higher
- pip package manager
- Git
- Clone the repository:
git clone https://github.com/How-to-Train-Your-AI-Dragon/Automated-Interview-Filtering.git
cd automated-interview-filtering
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env
# Edit .env with your API keys and configurations
We use Black for code formatting. To set up:
- Install black and pre-commit:
pip install black pre-commit
- Run pre-commit hooks:
pre-commit install
- Run Black manually:
black .
- Configure VS Code (optional):
{
"python.formatting.provider": "black",
"editor.formatOnSave": true
}
Refer to the Black documentation for more information. Reference from the article here
# Update main branch
git checkout main
git pull origin main
# Create new feature branch
git checkout -b feature/your-feature-name
# Stage changes
git add .
# Commit changes
git commit -m "feat: your descriptive commit message"
# Push to remote
git push origin feature/your-feature-name
python -m src.presentation.gradio.interface
The interface will be available at http://localhost:7860
# Run all tests
pytest -v tests/
# Run specific test file
pytest -v tests/unit/test_interview_analyzer.py
# Run with coverage
pytest --cov=src tests/
OPENAI_API_KEY=your_key_here
GOOGLE_SPEECH_KEY=your_key_here
LLAMAPARSE_API_KEY=your_key_here
FIREFLY_API_KEY=your_key_here
- Video: MP4, AVI, MOV, WMV
- Resume: PDF, DOCX, DOC, TXT
The system implements comprehensive error handling for:
- Invalid file formats
- API failures
- Resource limitations
- Processing errors
- Clone the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[<type>]: <subject>
[<body>]
[<footer>]
Types:
- feat: New feature
- fix: Bug fix
- docs: Documentation
- style: Formatting
- refactor: Code restructuring
This project is licensed under the MIT License. See LICENSE
for more information.