How User Status Is Calculated Based on GitHub Activity in Resume.github.com

The user status displayed on Resume.github.com is calculated using a weighted scoring algorithm in js/githubresume.js that assigns points based on public repositories, gists, followers, and following counts, then adds bonuses for early adoption and profile completeness before mapping the total score to a descriptive label like "Passionate GitHub user."

The open-source project Resume.github.com generates dynamic résumés from GitHub profiles. According to the source code in the resume/resume.github.com repository, the user status shown on each generated page is not merely decorative but derived from a deterministic scoring system that quantifies platform activity.

The Scoring Algorithm in js/githubresume.js

The calculation logic resides in js/githubresume.js, specifically within the getUserStatus() function. The algorithm aggregates four metrics from the GitHub API user endpoint and applies specific coefficients to each.

Base Score Components

The system retrieves four numeric fields from the user profile data:

  • public_repos — number of public repositories
  • public_gists — number of public gists
  • followers — follower count
  • following — count of users followed

Each field is multiplied by a predefined coefficient:

var COEF_REPOS     = 2;      // each repo → 2 points
var COEF_GISTS     = 0.25;   // each gist → 0.25 points
var COEF_FOLLOWERS = 0.5;    // each follower → 0.5 points
var COEF_FOLLOWING = 0.25;   // each following → 0.25 points

The base score is calculated as:

var statusScore =
    data.public_repos * COEF_REPOS +
    data.public_gists * COEF_GISTS +
    data.followers   * COEF_FOLLOWERS +
    data.following   * COEF_FOLLOWING;

Bonus Points for Early Adoption and Profile Completeness

Beyond the base calculation, the algorithm awards +1 point for each of two conditions:

  1. Early-adopter bonus: If the account creation date falls within GitHub's first six months (February 2008 through July 2008) or before 2008, the user receives one additional point.

  2. Profile-completeness bonus: When the user has populated all three fields—location, email, and blog—another point is added.

Mapping Scores to Status Labels

The final statusScore is mapped to a human-readable string through threshold comparisons:

Score range Status label
0 "Inactive GitHub user"
1 – 5 "Newbie GitHub user"
6 – 20 "Regular GitHub user"
21 – 50 "Advanced GitHub user"
51 – 150 "Enthusiastic GitHub user"
> 150 "Passionate GitHub user"

The getUserStatus() function returns this label and assigns it to view.userStatus, which the Mustache template renders.

Displaying the Status in views/resume.html

Once calculated, the status string is injected into the résumé template. The file views/resume.html uses Mustache syntax to display the value:

<span class="status">{{userStatus}}</span>

This placement ensures the calculated user status appears prominently in the generated résumé header.

Summary

  • The user status calculation occurs entirely client-side in js/githubresume.js within the getUserStatus() function.
  • The algorithm applies weighted coefficients to four GitHub metrics: repositories (×2), gists (×0.25), followers (×0.5), and following (×0.25).
  • Two bonus points may be added: one for early adoption (account created before August 2008) and one for complete profile data (location, email, and blog all present).
  • The final numeric score maps to one of six descriptive labels ranging from "Inactive" to "Passionate" GitHub user.

Frequently Asked Questions

What GitHub data points are used to calculate user status?

The calculation uses four public metrics from the GitHub API user endpoint: public_repos, public_gists, followers, and following. Additionally, the algorithm checks created_at for early-adopter bonuses and location, email, and blog for profile-completeness bonuses.

How much does each repository contribute to the status score?

Each public repository contributes 2 points to the base score, as defined by the COEF_REPOS coefficient in js/githubresume.js. This is the highest-weighted metric in the algorithm, making repository count the primary driver of high-status labels.

Can a user improve their status by filling out their profile?

Yes. The algorithm awards +1 bonus point when a user has populated all three profile fields: location, email, and blog. This can potentially bump the user into a higher status tier if they are near a threshold boundary, though the impact is modest compared to repository counts.

What is the highest possible user status label?

The highest status label is "Passionate GitHub user", which is assigned to any account with a calculated score greater than 150. Achieving this typically requires a combination of numerous public repositories, substantial follower counts, and potentially the available bonus points.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →