8000 GitHub - whoisjayd/gitresume: GitResume: AI-powered tool that transforms GitHub repositories into professional, ATS-optimized resumes and technical summaries.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

GitResume: AI-powered tool that transforms GitHub repositories into professional, ATS-optimized resumes and technical summaries.

License

Notifications You must be signed in to change notification settings

whoisjayd/gitresume

Repository files navigation

πŸš€ GitResume

Transform your GitHub repositories into professional, ATS-optimized resumes using AI.

Live Python FastAPI Docker License: MIT GitHub Issues GitHub Stars Contributions Welcome visitor badge

🌐 Live Demo

Try GitResume now: gitresume.live

πŸ“ Overview

GitResume is a production-ready FastAPI web app that uses AI to turn your GitHub repositories into polished, ATS-friendly resume content. It analyzes your codebase, extracts technical achievements, and generates impactful resume sections. Designed for engineers at all levels, GitResume supports multiple AI providers and is fully containerized for easy deployment.

🎯 What Can GitResume Do?

Transform this:

A repo with FastAPI backend, Redis caching, and Docker deployment.

Into:

  • Developed scalable backend using FastAPI and Redis for caching.
  • Implemented CI/CD with Docker and GitHub Actions.
  • Designed microservices structure for modular development.

πŸ’Ό Who Should Use GitResume?

  • πŸ§‘β€πŸŽ“ Students: Turn class projects into resume-ready experience.
  • πŸ‘©β€πŸ’» Developers: Showcase contributions with tailored resume bullets.
  • πŸ§‘β€πŸ’Ό Job Seekers: Get ATS-optimized content in minutes.
  • πŸ‘₯ Recruiters: Generate summaries from candidate GitHub links.

✨ Features

  • AI-Powered Resume Creation: Converts GitHub repositories into ATS-friendly resumes.
  • Smart Code Parsing: Uses tree-sitter to extract tech stack, structure, and key contributions.
  • Customizable Output: Tailor resumes to specific job descriptions and formats.
  • Secure & Scalable: GitHub OAuth, rate limiting, Redis support, and production-ready Docker setup.

πŸš€ Getting Started

Prerequisites

  • Python 3.11 (for local development)
  • Docker (recommended for production)
  • Git (for cloning repositories)
  • Redis (optional, for rate limiting and session management)
  • API Keys:
    • GitHub OAuth (GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_TOKEN)
    • AI Providers (Gemini, OpenAI, Groq, Claude)

Local Installation

  1. Clone the Repository:
    git clone https://github.com/whoisjayd/gitresume.git
    cd gitresume
  2. Set Up Virtual Environment:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install Dependencies:
    pip install --upgrade pip
    pip install -r requirements.txt
  4. Configure Environment Variables:
    • Copy .env.example to .env and fill in your API keys and secrets.
    • Or use env.yaml for configuration.
  5. Run the Application:
    uvicorn app:app --host 0.0.0.0 --port 8080
    Access at http://localhost:8080.

Docker Deployment

  1. Build the Docker Image:
    docker build -t gitresume .
  2. Run the Container:
    docker run --env-file .env -p 8080:8080 gitresume
    Or mount env.yaml:
    docker run -v $(pwd)/env.yaml:/app/env.yaml -p 8080:8080 gitresume

πŸ›  Tech Stack

Component Technology
Backend Python 3.11, FastAPI, Starlette, Pydantic, SlowAPI
Frontend Jinja2 Templates, Tailwind CSS (CDN)
AI Providers Gemini, OpenAI, Groq, Claude
Caching Redis (optional)
Containerization Docker, Uvicorn
Code Parsing Tree-sitter

πŸ”§ Configuration

  • Environment Variables:
    • Copy .env.example to .env or create env.yaml.
    • Key variables include:
      • GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_TOKEN
      • REDIS_HOST, REDIS_PORT, REDIS_USERNAME, REDIS_PASSWORD
      • AI_PROVIDER (gemini, openai, groq, claude)
      • API keys for AI providers
      • SESSION_SECRET_KEY, CALLBACK_URL, ENVIRONMENT
    • Both .env and env.yaml are supported for local and Docker setups.
  • Example .env:
    GITHUB_CLIENT_ID=your_client_id
    GITHUB_CLIENT_SECRET=your_client_secret
    AI_PROVIDER=gemini
    GEMINI_API_KEY=your_gemini_key
    ENVIRONMENT=production

πŸ“„ Resume Output

GitResume generates structured JSON output optimized for ATS systems and easy integration into resume templates. The schema includes:

  • project_title: Project name (string)
  • tech_stack: List of technologies used (array)
  • bullet_points: 4-6 concise achievement statements (array)
  • additional_notes: Unique technical setup, deployment strategies, or noteworthy engineering decisions (string)
  • future_plans: Logical next features or enhancements (string)
  • potential_advancements: Advanced architectural improvements or optimizations (string)
  • interview_questions: Array of objects with question, answer, and category

Example Output:

{
  "project_title": "E-Commerce Platform",
  "tech_stack": ["Python", "Redis"],
  "bullet_points": [
    "Developed scalable backend using FastAPI and Redis for caching.",
    "Integrated secure payment gateway and OAuth authentication.",
    "Implemented CI/CD pipeline with Docker and GitHub Actions.",
    "Optimized database queries, reducing latency by 30%."
  ],
  "additional_notes": "Designed modular microservices architecture for rapid feature deployment.",
  "future_plans": "Add automated testing and expand API documentation.",
  "potential_advancements": "Utilize event-driven design with message queues for order processing.",
  "interview_questions": [
    {
      "question": "How did you ensure scalability in the backend?",
      "answer": "By leveraging FastAPI's async capabilities and Redis for caching.",
      "category": "Backend Architecture"
    }
  ]
}

❓ FAQ

  • Is my GitHub data stored?
    No, repositories are cloned temporarily and deleted after analysis.
  • Which AI models are supported?
    Gemini, OpenAI, Groq, and Claudeβ€”configurable via .env.
  • Can I analyze private repositories?
    Yes, after authenticating via GitHub OAuth.
  • How do I deploy in production?
    Use the provided Docker setup with environment variables configured.
  • How do I report bugs or suggest features?
    Open an issue on GitHub Issues.
  • How do I contribute?
    See the Contributing section below.

🀝 Contributing

We welcome contributions! To get started:

  1. Fork and clone the repository.
  2. Create a feature branch: git checkout -b feature/your-feature.
  3. Implement and test your changes locally.
  4. Push to your fork and submit a pull request.

Guidelines:

  • Follow PEP 8 for Python code.
  • Include tests for new features (use pytest).
  • Update documentation as needed.
  • Be respectful and inclusive (see Code of Conduct).

πŸ“œ License

This project is licensed under the MIT License.

πŸ™Œ Acknowledgments

πŸ— Architecture Overview

GitResume uses a modular, scalable architecture:

  • Frontend: Jinja2 templates styled with Tailwind CSS, served by FastAPI.
  • Backend: FastAPI handles routing, API endpoints, and WebSocket connections.
  • Authentication: GitHub OAuth for secure access to public and private repos.
  • Code Analysis: Tree-sitter parses codebases for structure and technology insights.
  • AI Integration: Modular support for Gemini, OpenAI, Groq, and Claude.
  • Caching & Rate Limiting: Redis (optional) for session management and performance.
  • Deployment: Docker with multi-stage builds for minimal, secure images.

πŸ”— API Endpoints

Endpoint Method Description
/ GET Home page
/ POST Generate resume from repo URL
/login GET Initiate GitHub OAuth
/callback GET Handle OAuth callback
/logout GET Log out
/health GET Health check endpoint
/{user}/{repo} GET/POST Dynamic repo analysis
/ws/ WS WebSocket for real-time updates

πŸ“¦ Module Breakdown

Module Purpose
app.py Core FastAPI app with routing and middleware
tools/create_resume.py Orchestrates AI resume generation
tools/git_operations.py Manages repo cloning and validation
tools/gitingest.py Parses and summarizes codebases
tools/grammar_check.py Ensures high-quality AI text output
tools/api_utils.py Integrates with AI provider APIs
tools/utils.py General utility functions

🌟 Why GitResume?

  • No More Blank Pages: Start your resume with content generated from real code.
  • Designed for Engineers: Resume bullets highlight your actual skills and impact.
  • Recruiter-Ready: Outputs are optimized for ATS and easy formatting.
  • Plug-and-Play: Works with public and private repos, supports multiple AI providers, and Docker.
  • Open Source: Built for the communityβ€”contributions welcome!

πŸ“¬ Contact

Created with ❀ by Jaydeep Solanki.
Questions or feedback? Reach out via GitHub Issues.

0