AI-Powered GitHub Candidate Screening Platform
GitGauge is a comprehensive technical recruitment tool that analyzes GitHub profiles to provide detailed candidate assessments using AI. It combines GitHub API data with advanced AI analysis to generate professional hiring recommendations.
- GitHub Integration: Fetches and analyzes user repositories
- AI-Powered Analysis: Uses Groq/Gemini for intelligent candidate assessment
- Skills Matching: Evaluates technical skills with evidence-based scoring
- Code Quality Assessment: Analyzes code style, documentation, and practices
- Interview Questions: Generates relevant technical interview questions
- Risk Assessment: Identifies potential red flags and concerns
- Hiring Recommendations: Provides data-driven hiring decisions
- RESTful API: FastAPI-based with comprehensive documentation
- Background Processing: Asynchronous job processing with Redis
- Database Persistence: PostgreSQL with SQLAlchemy ORM
- Comprehensive Logging: Detailed logging and error handling
- Rate Limiting: GitHub API rate limit management
- CORS Support: Cross-origin resource sharing enabled
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β FastAPI App β β GitHub Client β β AI Client β
β β β β β β
β β’ Job Creation βββββΆβ β’ Repo Fetching βββββΆβ β’ Groq/Gemini β
β β’ Status Check β β β’ Skills Filter β β β’ Analysis β
β β’ Results API β β β’ Rate Limiting β β β’ Report Gen β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β PostgreSQL β β Redis β β Background β
β β β β β Workers β
β β’ Job Storage β β β’ Job Queue β β β
β β’ Artifacts β β β’ Status Cache β β β’ Job Processingβ
β β’ Reports β β β’ Rate Limiting β β β’ Error Handlingβ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Python 3.8+
- PostgreSQL 12+
- Redis 6+
- GitHub API Token (optional, for higher rate limits)
- Groq API Key (for AI analysis)
-
Clone the repository
git clone <repository-url> cd GitGauge
-
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment
cp env.example .env # Edit .env with your configuration -
Set up database
# Ensure PostgreSQL is running # The app will create tables automatically on startup
-
Start Redis
redis-server
-
Run the application
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Database
DATABASE_URL=postgresql://user:password@localhost/gitgauge
# GitHub API
GITHUB_TOKEN=your_github_token_here # Optional but recommended
# AI Configuration
AI_API_KEY=your_groq_api_key_here
# Redis
REDIS_URL=redis://localhost:6379/0
# Application
APP_NAME=GitGauge
DEBUG=True
HOST=0.0.0.0
PORT=8000-
GitHub Token (Optional)
- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate a token with
public_reposcope - Add to
.envfile
-
Groq API Key (Required for AI features)
- Sign up at Groq Console
- Generate an API key
- Add to
.envfile
curl -X POST "http://localhost:8000/api/jobs/" \
-H "Content-Type: application/json" \
-d '{
"github_username": "torvalds",
"skills": ["C", "Linux", "kernel"],
"repo_limit": 10,
"max_files_per_repo": 5,
"languages": ["C", "Python"],
"notes_for_ai": "Looking for kernel development expertise"
}'Response:
{
"job_id": "uuid-here",
"status": "queued",
"estimated_wait_seconds": 300
}curl "http://localhost:8000/api/jobs/{job_id}"Response:
{
"job_id": "uuid-here",
"status": "completed",
"created_at": "2025-10-12T18:02:09.666813+05:30",
"updated_at": "2025-10-12T18:02:26.006046+05:30",
"report": {
"candidate": {
"github_username": "torvalds",
"summary_of_work": "Active developer with 5 relevant repositories...",
"notable_repos": ["torvalds/linux", "torvalds/subsurface-for-dirk"]
},
"skills_match": [
{
"skill": "C",
"strength": 5,
"evidence_snippets": ["Found C code in linux", "..."],
"repos_referenced": ["torvalds/linux", "..."]
}
],
"code_quality": {
"style": "Excellent",
"readability": "Excellent",
"testing": "Good",
"documentation": "Good",
"security": "Good"
},
"commit_habits": {
"frequency": "Frequent",
"message_quality": "Excellent",
"collaboration_signals": "Very Active"
},
"interview_questions": [
{
"question": "Can you explain the Linux kernel's memory management subsystem?",
"rationale": "Assesses understanding of kernel-level memory management",
"difficulty": "advanced"
}
],
"risk_flags": [
{
"flag": "Lack of diversity in project types",
"description": "Most projects are related to Linux kernel development...",
"severity": "medium"
}
],
"overall_assessment": {
"decision_hint": "strong_yes",
"justification": "Linus Torvalds' GitHub profile showcases exceptional expertise..."
}
},
"generated_at": "2025-10-12T18:02:26.055519+05:30"
}curl "http://localhost:8000/api/jobs/?limit=10"- Strength Rating: 1-5 scale based on evidence
- Evidence Snippets: Specific examples from repositories
- Repository References: Links to relevant projects
- Style: Code organization and consistency
- Readability: Code clarity and documentation
- Testing: Test coverage and quality indicators
- Documentation: README and code documentation
- Security: Security best practices
- Technical Depth: Questions based on actual projects
- Difficulty Levels: Beginner, intermediate, advanced
- Rationale: Why each question is relevant
- Red Flags: Potential concerns identified
- Severity Levels: Low, medium, high
- Descriptions: Detailed explanations
GitGauge/
βββ app/
β βββ api/
β β βββ routers/
β β β βββ jobs.py # Job API endpoints
β β βββ schemas/
β β βββ jobs.py # Pydantic models
β βββ db/
β β βββ base.py # Database configuration
β β βββ models.py # SQLAlchemy models
β β βββ repositories.py # Data access layer
β βββ integrations/
β β βββ github_client.py # GitHub API client
β β βββ ai_client.py # AI analysis client
β βββ services/
β β βββ analysis_service.py # Business logic
β βββ utils/
β β βββ logging.py # Logging utilities
β β βββ id_gen.py # ID generation
β βββ workers/
β β βββ tasks.py # Background job processing
β β βββ queue.py # Job queue management
β β βββ redis_manager.py # Redis operations
β βββ static/ # Static files
β βββ templates/ # HTML templates
β βββ config.py # Configuration
β βββ main.py # FastAPI application
βββ requirements.txt # Python dependencies
βββ env.example # Environment template
βββ README.md # This file
# Run the application
python -m uvicorn app.main:app --reload
# Test API endpoints
curl -X POST "http://localhost:8000/api/jobs/" \
-H "Content-Type: application/json" \
-d '{"github_username": "torvalds", "skills": ["C", "Linux"]}'The application includes comprehensive logging:
- Request Logging: All HTTP requests and responses
- Job Progress: Detailed job processing steps
- Error Handling: Contextual error logging
- Performance: Timing and resource usage
Logs are output to console with color coding and can be configured for file output.
- Environment Variables: Set all required environment variables
- Database: Use production PostgreSQL instance
- Redis: Use production Redis instance
- API Keys: Ensure all API keys are properly configured
- Logging: Configure file-based logging for production
- Monitoring: Set up application monitoring
- Rate Limiting: Configure appropriate rate limits
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the API documentation at
/docswhen running the application - Review the logs for debugging information
- FastAPI for the excellent web framework
- Groq for AI model access
- GitHub for the comprehensive API
- PostgreSQL and Redis for data storage
- The open-source community for inspiration and tools