GitHub Profile Roaster
Type any GitHub username. Get back a roast card built from their real, public stats — not a canned insult.
ProfilePulse pulls a GitHub profile and every public repo straight from the GitHub REST API, then runs the numbers through a procedural roast engine that only fires lines whose trigger condition is actually true for that account. Real repo counts, real stars, real activity gaps — turned into commentary that changes with the profile, not a script.
Live — runs against the real GitHub API.
Every roast line is gated on an independent, real data condition evaluated against the GitHub API response. Two usernames almost never produce the same roast card, because the output is computed from the account, not picked from a fixed list of insults.
Trigger
Repos exist but total stars ≤ 5
Roast line
“23 repos, 4 stars, and the audacity to have a bio.”
Trigger
No bio set on the profile
Roast line
“Even your repos ghosted you before you could ghost them first.”
Trigger
Last push ≥ 90 days ago
Roast line
“You commit less than your college attendance.”
Trigger
≥ 15 repos but ≤ 10 total stars
Roast line
“Collecting repos like they're Pokemon — gotta catch 'em all, use none.”
Plus more triggers for monolingual repos, stale activity, follower imbalance, missing descriptions, fork-heavy profiles, and even a grudging compliment for genuinely high average stars per repo.
What a roast card actually looks like once the engine runs against a real profile.
@someuser
The Ghost Committer
23
4 (yikes)
4 months ago
🔥 Roast
“23 repos, 4 stars, and the audacity to have a bio.”
💀 Verdict
Collecting repos like they’re Pokémon — gotta catch ’em all, use none.
The roaster above is live on this site. To run your own copy, start the Flask app and open localhost:5000.
cd ProfilePulse
pip install flask requests
python app.py
# then open http://localhost:5000Requires Python 3.8+. Set GITHUB_TOKEN to raise the GitHub API limit from 60 to 5,000 requests/hour.