Fetches all pull requests you authored in a GitHub org or your personal repositories and generates a Markdown file with:
- Resume bullets — AI-generated (via Claude), grouped by technical theme, ready to copy onto a resume or LinkedIn
- PR list by repository — every PR with state, date, and labels
- Full timeline — all PRs sorted newest-first
- Python 3.11+
- A GitHub Personal Access Token
- An Anthropic API key (for resume bullet generation)
git clone <your-repo-url>
cd github-work-summarypip install -r requirements.txtcp .env.example .envOpen .env and fill in your values:
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
Yes | GitHub Personal Access Token (scopes: repo, read:org) |
REPO_TYPE |
No | org (default) to search an org, or user for personal repos |
GITHUB_ORG |
When REPO_TYPE=org |
Your org's slug, e.g. acme-corp |
GITHUB_USERNAME |
Yes | Your GitHub username |
ANTHROPIC_API_KEY |
Yes | Anthropic API key for resume bullet generation |
SINCE_DATE |
No | Only include PRs created on or after this date (YYYY-MM-DD) |
UNTIL_DATE |
No | Only include PRs created on or before this date (YYYY-MM-DD) |
- Go to https://github.com/settings/tokens/new
- Give it a name (e.g.
work-summary) - Set an expiration
- Check
reposcope (andread:orgif usingREPO_TYPE=org) - Click Generate token and copy the value into
GITHUB_TOKEN
- Go to https://console.anthropic.com/settings/keys
- Click Create Key
- Copy the value into
ANTHROPIC_API_KEY
python main.pyThe output file is saved in the current directory as:
work-summary-<org>-<YYYYMMDD>.md # REPO_TYPE=org (default)
work-summary-<username>-personal-<YYYYMMDD>.md # REPO_TYPE=user
By default the tool searches within a GitHub organization. To summarize PRs
across your own personal repositories instead, set REPO_TYPE=user in your
.env (and omit GITHUB_ORG):
REPO_TYPE=user
GITHUB_USERNAME=your-usernameOr inline:
REPO_TYPE=user python main.pyTo limit the date range, set SINCE_DATE and/or UNTIL_DATE in your .env:
SINCE_DATE=2024-01-01
UNTIL_DATE=2024-12-31Or export them inline:
SINCE_DATE=2024-01-01 UNTIL_DATE=2024-12-31 python main.py# Work Summary — @username @ org
## Resume Bullets ← AI-generated, themed, copy-paste ready
### Backend Development
- Implemented ...
- Designed ...
### Infrastructure & DevOps
- Automated ...
## Overview ← stats table
## By Repository ← PR list per repo
## Full Timeline ← all PRs, newest first
- If
ANTHROPIC_API_KEYis missing, the tool still runs but skips the resume section. - PRs are fetched via the GitHub GraphQL API; pagination is handled automatically.
- PR descriptions are truncated to 400 characters before being sent to Claude to keep costs low.