An AI-powered GitHub profile analyzer that delivers brutal, honest assessments of any developer's work — from code quality to career trajectory.
GitDeep is a client-side web application that uses advanced AI models to evaluate GitHub profiles with unprecedented depth. Unlike traditional portfolio scanners, GitDeep performs behavioral analysis, buzzword detection, career slope tracking, and per-repository assessments to give you the full picture.
- Employer Mode: Brutal hirability analysis with no sugar-coating. Evaluates weaknesses, red flags, buzzword density, and provides a 1-10 hirability score with role recommendations.
- Developer Mode: Same honest assessment plus a detailed mentorship plan with actionable improvement steps, project suggestions, and learning paths.
- Career Slope Detection: Tracks trajectory from account creation to present — Rising Star, Steady Maintainer, Declining Activity, or Sporadic patterns. Includes burnout risk assessment.
- Buzzword vs Reality Check: Compares bio/README hype words against actual code. Detects when developers claim "AI/ML expert" but write basic CRUD apps.
- AI Usage Quality Assessment: Distinguishes lazy AI slop (generic gradients, broken links, emoji spam) from high-quality AI orchestration (production-grade architecture, intentional tech choices).
- Behavioral Analysis: Confidence vs Arrogance scoring. Detects toxic patterns in PRs and communication style.
- Per-Repository Scoring: Each repo gets an independent 1-10 score with verdict, key highlights, and red flags.
- SWOT Analysis: Strengths, Weaknesses, Opportunities (market positioning), and Threats.
- Merged PR Analysis: Evaluates contributions to external repositories, not just owned repos.
- No Database: 100% session-based. Zero data storage on servers.
- Client-Side Processing: All AI calls happen from your browser. Your API keys never touch our servers.
- No Tracking: No analytics, no cookies, no telemetry.
Choose from 12+ AI providers:
- Cloud: Gemini (free tier), OpenAI, Anthropic, Groq, DeepSeek, Mistral, OpenRouter, Grok, Qwen, Kimi, NVIDIA NIM
- Local: Ollama (run models like Llama 3.1, Qwen 2.5, Mistral locally)
- Language distribution pie charts
- Strength/weakness radar charts
- Career timeline with growth meter
- Comparative candidate analysis (Employer Mode)
- GitHub PAT Support: Analyze private repos and increase API rate limits
- Custom Questions: Ask the AI specific questions about a candidate's suitability
- Candidate Comparison: Compare up to 5 developers side-by-side with AI-powered ranking
- Prompt Size Options: Full (1200 tokens) for cloud models, Small (400 tokens) for weak local models
- Node.js 18+ and npm
- An AI provider API key (Gemini recommended — has free tier)
# Clone the repository
git clone https://github.com/Yuvraj-Sarathe/GitDeep.git
cd GitDeep
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 in your browser.
-
Get an API Key (Recommended: Gemini)
- Visit Google AI Studio
- Click "Get API Key" → Create API key (free tier available)
- Copy the key
-
Configure in App
- Click the Settings gear icon (bottom-right or top navigation)
- Select AI Provider: Gemini API
- Paste your API key
- Model:
gemini-2.5-flash(default) - Prompt Size: Full (recommended)
-
Optional: GitHub PAT Token
- Go to GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens
- Generate token with
repoanduserscopes - Add in Settings → GitHub PAT Token field
- Benefits: Higher API rate limits, private repo analysis, more PR data
- Enter a GitHub username (e.g.,
torvalds) - Choose mode: Employer (hiring) or Developer (mentorship)
- Click Generate Assessment
- Wait 10-30 seconds for analysis
- Review the detailed report, metrics, and recommendations
# Build the image
docker build -t gitdeep .
# Run the container
docker run -p 3000:3000 gitdeepAccess at http://localhost:3000
For complete privacy and no API costs, run AI models locally:
-
Install Ollama
- Download from ollama.com
- Install for your OS (Windows/Mac/Linux)
-
Pull a Model
# Recommended for 8GB RAM (best balance) ollama pull qwen2.5:7b # Alternative: Mistral 7B ollama pull mistral # For 16GB+ RAM (better quality) ollama pull llama3.1:8b # ⚠️ NOT recommended (too small for this task) # ollama pull phi # ollama pull llama3.2:1b
-
Start Ollama Server
ollama serve
Keep this terminal running.
-
Configure GitDeep
- Settings → AI Provider → Local Ollama
- Endpoint:
http://localhost:11434 - Model:
qwen2.5:7b - Prompt Size: Full (if using 7B+ model)
| Scenario | Model | RAM | Prompt Size | Employer Mode? |
|---|---|---|---|---|
| Best Overall | Gemini 2.5 Flash (cloud) | N/A | Full | ✅ Yes |
| Premium Cloud | GPT-4o, Claude Sonnet 4 | N/A | Full | ✅ Yes |
| Local Strong | Llama 3.1 8B, Gemma 2 9B | 16GB | Full | ✅ Yes |
| Local Mid | Qwen 2.5 7B, Mistral 7B | 8GB | Full | ✅ Yes |
| Local Weak | Phi-3, Llama 3.2 3B | 4GB | Small | ❌ No |
| Too Small | Phi-1, TinyLlama | 2GB | Small | ❌ No |
Important: Small models (< 7B parameters) produce inaccurate results including wrong scores, missing red flags, and useless analysis. Use cloud models or 7B+ local models for reliable assessments.
If your local model is still too small even for the "Small" prompt size:
- Clone the repository locally (do NOT use the deployed website)
- Use an external LLM (ChatGPT, Claude, Gemini) to shorten the prompts in
lib/ai.ts - Find the
buildPrompt()andbuildSmallPrompt()functions - Ask the LLM: "Condense this assessment prompt to 200 tokens while keeping core evaluation criteria"
- Replace the prompt strings in
lib/ai.tswith the shortened versions - Run
npm run devand test athttp://localhost:3000 - CRITICAL: Do NOT deploy this modified version — it's for local testing only
-
Data Collection (via GitHub API)
- User profile (bio, location, company, social links)
- Top 15 non-fork repositories
- README contents (first 1500 chars per repo)
- Language statistics (actual byte counts)
- Merged pull requests in external repos
- Account age and activity patterns
-
AI Analysis (1200-token instruction prompt)
- 3-tier band scoring system (1-4 Weak, 5-7 Average, 8-10 Strong)
- Hard signals: (a) merged PRs, (b) original repos with READMEs, (c) 6+ months consistency
- Behavioral pattern detection
- Buzzword extraction and tech stack verification
- AI slop detection vs quality orchestration
- Career trajectory calculation
- Per-repo independent scoring
-
Output Generation
- Hirability score (1.0-10.0, never exactly 7.0)
- SWOT analysis (all 4 fields always populated)
- Detailed markdown report with structured sections
- Radar charts for strengths/weaknesses
- Timeline visualization
- Role recommendations
The hirability score uses a fixed 3-tier band system to ensure consistency:
- Maximum deviation between assessments of the same profile: ±1.0
- Temperature locked to 0 for deterministic output
- Band determined by presence/absence of 3 hard signals
- Fine-tuning within band based on quality factors
-
Small Model Performance
- Models under 7B parameters (Phi, Llama 3.2 1B/3B, TinyLlama) produce unreliable results
- Small prompt mode (400 tokens) sacrifices depth and accuracy
- Status: Actively working on optimizing small prompts for employer mode
-
API Rate Limits
- GitHub API: 60 requests/hour without token, 5000 with token
- Search API (for PRs): 10 requests/min without token, 30 with token
- Analyzing multiple candidates quickly can hit limits
-
PR Data Limitations
- Only fetches top 15 merged PRs (GitHub Search API limit)
- Cannot access PR diff details without individual API calls (would hit rate limits)
- Lines added/deleted currently set to 0
-
README Truncation
- Only first 1500 characters of each README analyzed
- Large documentation may be incompletely assessed
-
Language Detection
- Relies on GitHub's language detection (can be inaccurate for mixed projects)
- Generated/vendor code may skew language percentages
-
Private Repo Analysis
- Requires GitHub PAT token with appropriate scopes
- Token must be manually entered (no OAuth flow)
-
Session Storage Limits
- Assessed candidates stored in browser session storage (~5-10MB limit)
- Clearing browser data loses comparison history
- Private/incognito mode may block session storage
-
AI Hallucinations
- AI may occasionally infer details not present in data
- Behavioral analysis based on limited text samples (READMEs, bio)
- Confidence scores are AI estimates, not measured metrics
-
No Real-Time Updates
- Assessment is a snapshot at analysis time
- Must re-run to see updated profile data
-
Context Window Constraints
- Full prompt + profile data can exceed 8K tokens for prolific developers
- May require switching to models with larger context (32K+)
- Optimize small prompt for employer mode accuracy
- Add caching layer for GitHub API responses
- Implement progressive README loading
- Add PR diff analysis (with rate limit handling)
- Export assessment reports as PDF/Markdown
- Add assessment history persistence (localStorage)
- Implement OAuth flow for GitHub authentication
- Add support for GitLab and Bitbucket profiles
Help is appreciated! GitDeep is actively being improved, and contributions are welcome.
-
Report Issues
- Found a bug? Open an issue
- Include: Steps to reproduce, expected vs actual behavior, browser/OS, AI provider used
-
Request Features
- Have an idea? Open a feature request
- Describe the use case and expected behavior
-
Submit Pull Requests
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Small Model Optimization: Making 3B-7B models produce employer-grade assessments
- Prompt Engineering: Reducing token count while maintaining analysis depth
- Rate Limit Handling: Smarter API call batching and caching
- UI/UX Improvements: Better mobile responsiveness, loading states
- Follow existing code style (ESLint config provided)
- Test with multiple AI providers before submitting
- Update README if adding new features
- Keep client-side architecture (no server-side data storage)
- Framework: Next.js 15 (App Router)
- Language: TypeScript 5.9
- Styling: Tailwind CSS 4.1
- Charts: Recharts 3.8
- GitHub API: Octokit 5.0
- AI SDKs: Google GenAI, native fetch for others
- Markdown: react-markdown 10.1
GitDeep/
├── app/
│ ├── page.tsx # Home page (username input)
│ ├── assessment/page.tsx # Assessment results page
│ ├── help/page.tsx # Help & documentation
│ ├── layout.tsx # Root layout with footer
│ ├── globals.css # Global styles
│ └── api/ai/route.ts # Server-side AI proxy (Ollama, OpenAI-compatible)
├── components/
│ └── SettingsModal.tsx # Settings configuration UI
├── lib/
│ ├── ai.ts # AI provider logic & prompt engineering
│ ├── github.ts # GitHub API data fetching
│ ├── store.tsx # React Context for settings
│ ├── types.ts # TypeScript interfaces
│ └── utils.ts # Utility functions
├── public/
│ └── icon.svg # Favicon
└── package.json
- User enters GitHub username →
app/page.tsx - Navigate to
/assessment?user=username&mode=employer fetchGitHubProfile()calls GitHub API →lib/github.tsgenerateAssessment()sends data to AI →lib/ai.ts- AI response parsed and normalized →
AssessmentResult - Results rendered with charts and markdown →
app/assessment/page.tsx - Session storage saves candidate for comparison
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details. Any distributed modifications must remain open-source under the same terms.
Yuvraj Sarathe
- 🐙 GitHub: @Yuvraj-Sarathe
- 🌐 Portfolio: yuvraj-sarathe.github.io/Portfolio
- 💼 LinkedIn: yuvraj-sarathe
- 🧩 LeetCode: Yuvraj_Sarathe
- GitHub API for comprehensive developer data
- Google Gemini for reliable free-tier AI access
- Ollama community for local model support
- Next.js team for excellent developer experience
If you find GitDeep useful, please ⭐ star the repository!
For questions or issues:
- Open an issue on GitHub Issues
- Check the Help Page for detailed documentation
- Try the live app at gitdeep.vercel.app
Built with ❤️ by developers, for developers
