Skip to main content

Auto-generate ATS-friendly resume bullets from your GitHub commits

Project description

gitfolio

Turn your GitHub commits into ATS-friendly resume bullets. Automatically. Every week.


The Problem

You ship features every day. You close PRs, review code, fix bugs, build systems. None of it shows up on your resume because it's all in private repos and you're too busy shipping to write about it.

gitfolio fixes that.

It reads your commits and PRs (including private repos), uses Claude AI to analyze the actual diffs, and generates polished XYZ-format resume bullets. Every week it emails you the updated .tex file — you review, upload to Overleaf, done.


How It Works

GitHub (private + public repos)
        ↓
Fetch commits + diffs + PRs
        ↓
Score & prioritize by impact
        ↓
Claude AI → XYZ format resume bullets
        ↓
Inject into your LaTeX resume
        ↓
Email digest + updated .tex file → you review → upload to Overleaf

Install

pip install gitfolio

Or via Homebrew tap (coming soon):

brew install pranav-iiitdm/tap/gitfolio

Setup

1. Get a GitHub token

Go to github.com/settings/tokens → New token → select repo scope.

2. Get an Anthropic API key

Sign up at console.anthropic.com and create an API key.

3. Set your API key

export ANTHROPIC_API_KEY="sk-ant-..."

4. Run setup

gitfolio init

This walks you through setting up your GitHub token, repos, email, and resume path.


Usage

First run (backfill last 12 months)

gitfolio sync --backfill

Preview without sending email

gitfolio sync --dry-run

Weekly sync

gitfolio sync

Check everything is working

gitfolio doctor

Set Up Weekly Cron

# Open crontab
crontab -e

# Add this line — runs every Sunday at 9am
0 9 * * 0 ANTHROPIC_API_KEY=sk-ant-... gitfolio sync

What You Get in Your Weekly Email

gitfolio weekly digest — March 08, 2026
==================================================

SUMMARY
-------
Added 3 bullet(s) ready to use.
Flagged 1 bullet(s) needing your input.

✅ Ready bullets:
  • Implemented JWT-based authentication system with refresh token
    flow and middleware, reducing session-related support tickets
    across the platform
  • Migrated legacy REST endpoints to GraphQL, improving API
    response consistency for mobile clients

⚠️  Needs your input:
  • Optimized database query layer for user feed service,
    reducing load time by [METRIC: add latency improvement here]
  → Do you know the before/after query time for this change?

SKIPPED (14 items)
-------
These were too small to include:
  • fix typo in README
  • bump lodash version
  ...

==================================================
The updated resume .tex file is attached.
Review it, upload to Overleaf, and you're done.

How Bullets Are Prioritized

Every commit/PR cluster is scored across 5 dimensions:

Signal What it looks at
Work type Feature > Perf > Migration > Refactor > Bugfix > Chore
Scope Files changed, lines added
Business context PR description quality, impact keywords
Your involvement Author vs reviewer
Skip signals WIP, typo, dependency bump, etc.

Tier 1 — strong signal, written directly into resume
Tier 2 — good work but needs a metric from you (flagged in email)
Tier 3 — skipped (mentioned in summary only)


Privacy

  • Your code diffs are sent to the Anthropic API for analysis
  • No data is stored anywhere outside your machine and Anthropic's API
  • Only your own commits (filtered by your git email) are analyzed
  • You can use PR titles + commit messages only mode if you prefer (set diff_access: false in config)

Requirements

  • Python 3.11+
  • GitHub Personal Access Token (repo scope)
  • Anthropic API key
  • Gmail account with App Password (for sending digest)
  • A .tex resume (Overleaf format works perfectly)

Contributing

PRs welcome. See CONTRIBUTING.md.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitfolio_cli-1.0.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitfolio_cli-1.0.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

Details for the file gitfolio_cli-1.0.0.tar.gz.

File metadata

  • Download URL: gitfolio_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gitfolio_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9d7584d5e2f504eaccb0d060a0aa7564046b1dffbfd54e14f92078fde8b8a239
MD5 78779a248887ca08f720595c68d78d44
BLAKE2b-256 87d32d1764773f9eb108c951f59c9517daf24f6a7a502a4233ce255094294d43

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitfolio_cli-1.0.0.tar.gz:

Publisher: release.yml on pranav-iiitdm/gitfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitfolio_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: gitfolio_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 23.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gitfolio_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a30f951111c1c4aef33951138cedce7792700fe9c448f1824f8bd124056ee446
MD5 f9aca40af6923dbae76e56b231da90ed
BLAKE2b-256 bd33d3b380970d0f272191763bee1b6b6055408afb40d4f75e6128fc9192467d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitfolio_cli-1.0.0-py3-none-any.whl:

Publisher: release.yml on pranav-iiitdm/gitfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page