🚀 GitResume
Transform your GitHub repositories into professional, ATS-optimized resumes using AI.
GitResume is a CLI tool that analyzes your local or remote repositories, extracts technical achievements, and generates impactful resume bullet points, tech stack summaries, and interview preparation materials.
✨ Features
- 🔍 Deep Analysis: Uses Tree-sitter to parse your code and understand the actual technical complexity.
- 🤖 Multi-LLM Support: Integrates with Gemini, OpenAI, Anthropic, and Groq via LiteLLM.
- 📄 Multiple Formats: Generates resumes in Markdown and structured JSON.
- 💻 Local-First: No need to upload your code to a 3rd party service. Analysis happens on your machine.
- 📊 Web Dashboard: View your generated resumes and analysis history in a beautiful local web interface.
- 🎯 Job Tailoring: Provide a job description to generate targeted achievements.
🚀 Quick Start
Installation
Choose your preferred installation method:
1. Via uv (Recommended)
uv tool install gitresume
2. Via pip
pip install gitresume
3. Via Docker
docker pull whoisjayd/gitresume
📖 Usage
1. Analyze a Repository
Point GitResume at any local folder or clone a remote repo to create an analysis artifact.
# Local
gitresume analyze ./my-awesome-project
# Docker
docker run -v $(pwd):/app/data -e GEMINI_API_KEY=$GEMINI_API_KEY whoisjayd/gitresume analyze /app/data/my-project
2. Generate a Resume
Use the analysis to generate a polished resume. You can optionally provide a job description for better targeting.
gitresume generate ./artifacts/my-awesome-project-run-id --jd "Senior Backend Engineer at Google"
3. View in Dashboard
Start the local dashboard to browse your artifacts and view your resumes.
gitresume web
4. Bulk Processing
Process multiple repositories at once using a text file, JSON, or CSV containing paths or URLs.
# Analyze multiple repos in parallel
gitresume bulk repos.txt --mode analyze --concurrency 10
🔧 Configuration
GitResume uses environment variables for API keys. You can set them in your shell or use an .env or env.yaml file.
See the Configuration Guide for a full list of environment variables.
| Variable | Description |
|---|---|
GEMINI_API_KEY |
Required for Gemini models (Default) |
OPENAI_API_KEY |
Required for OpenAI models |
ANTHROPIC_API_KEY |
Required for Claude models |
GITRESUME_MODEL |
Model string (e.g., gemini/gemini-1.5-flash) |
🏗 CLI Reference
For detailed command usage, see the CLI Reference.
📄 Documentation
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
Created with ❤ by Jaydeep Solanki.
Release files for gitresume 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gitresume-0.1.0.tar.gz | 261.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitresume-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 301.2 kB
Release files / gitresume-0.1.0.tar.gz
| Download URL | gitresume-0.1.0.tar.gz |
|---|---|
| Size | 261.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f576187262cc6e8f2a6e62f3a8893afb429c3d41a33c9949d4468a12802e7d4
|
|
BLAKE2b-256 checksum How to use checksums |
176b594e975f6e67b15ef19c541fde2745326577c3eed457bafa2bb9984e169a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / gitresume-0.1.0-py3-none-any.whl
| Download URL | gitresume-0.1.0-py3-none-any.whl |
|---|---|
| Size | 39.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
119a2f0a22837ea73b20dd44ff4f2f05e29adbc30f416018558a6d646a9e2f68
|
|
BLAKE2b-256 checksum How to use checksums |
965dc735e21f2f008b1eb6adf4d31c36403ad615c8d200b120e0febe64012e69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|