New to Claude Skills? Learn how to install them →

gooseworks-ai on GitHub

GitHub Repository Signals

Free

Generate high-intent leads from GitHub interactions.

Get this skill

Free · Opens the source repo

What GitHub Repository Signals does

GitHub Repository Signals is a skill designed to help users extract actionable leads from GitHub repositories by analyzing various user interactions such as stars, forks, issues, and pull requests. This tool operates entirely on free GitHub API data, ensuring that no paid API credits are required for lead generation. By leveraging the interactions across multiple repositories, it provides a comprehensive view of potential leads who are actively engaging with the open-source community.

The skill processes data from specified GitHub repositories, scoring users based on their level of interaction. For example, users who open issues or contribute to pull requests receive the highest scores, indicating a deeper engagement with the repository. This scoring system allows users to prioritize leads who are more likely to be interested in their products or services, based on their contributions to relevant projects.

Once the user inputs the desired repositories and the limit on the number of leads to extract, the skill runs a series of scripts to gather and analyze the data. The output includes two CSV files: one containing deduplicated user profiles and another detailing their interactions with the specified repositories. This structured data can be invaluable for businesses targeting developers or technical professionals who are active on GitHub.

Overall, GitHub Repository Signals is particularly useful for companies looking to identify high-intent prospects in technical spaces, such as software development or open-source tools. It is a powerful tool for lead generation without the overhead of paid services, making it accessible for startups and established companies alike.

When to use it

Use this skill when you want to find leads from GitHub repositories, especially in technical fields where users are active contributors.

When not to use it

This skill is not suitable for non-technical lead generation or if you require data from private repositories, as it only analyzes public GitHub data.

What you can build with it

Identifying Prospective Clients

A software company wants to find potential clients who are active contributors to open-source projects related to their product.

Competitive Analysis

A startup analyzes user interactions in competitor repositories to identify potential leads who may be interested in their alternative solutions.

Community Engagement

A tech firm seeks to engage with developers who contribute to specific technologies, using the skill to find and reach out to these individuals.

How to install GitHub Repository Signals

View source

1. Install with the skills CLI

npx skills add gooseworks-ai/goose-skills/github-repo-signals --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by gooseworks-ai

GitHub Repository Signals

Extract high-intent leads from one or more GitHub repositories by analyzing every type of user interaction. This skill uses only free GitHub API data — no enrichment credits are spent.

When to Use

  • User wants to find leads from open-source GitHub repositories
  • User wants to identify people who interact with competitor or category repos
  • User wants cross-repo interaction analysis to find high-intent prospects
  • User asks for GitHub-based lead generation without paid enrichment
  • User says their ICP, target audience, or buyers are developers, engineers, or technical people who are active on GitHub
  • User describes prospects who use open-source tools, contribute to open source, or build with specific technologies — and those technologies have public GitHub repos
  • User wants to find leads in a technical space (e.g., "real-time communication", "AI agents", "infrastructure") where the community congregates around GitHub repositories

Note: If the user describes their ICP as GitHub-active but hasn't identified specific repositories yet, this skill still applies. In that case, ask the user which repositories their ICP is likely to interact with, or help them identify relevant repos based on the technology/space they describe.

Prerequisites

  • gh CLI authenticated (gh auth status to verify)
  • Python 3.9+ with PyYAML installed
  • Working directory: the project root containing this skill

Inputs to Collect from User

Before running, ask the user for:

  1. Repositories (required): One or more GitHub repository URLs or owner/repo strings
  2. User limit (required): How many top users to include in the output. Explain that more users = longer runtime due to GitHub profile fetching (~5,000 profiles/hour). Suggest 500 as a good starting point for testing.

Execution Steps

Step 1: Verify Environment

gh auth status

Step 2: Run the Tool

python3 ${CLAUDE_SKILL_DIR}/scripts/gh_repo_signals.py \
    --repos "owner1/repo1,owner2/repo2" \
    --limit <USER_LIMIT> \
    --output ${CLAUDE_SKILL_DIR}/../.tmp/repo_signals.csv

Replace the repos and limit with user-provided values.

The tool will:

  1. Extract all interaction types per repo (stars, forks, contributors, issues, PRs, comments, watchers, commit emails)
  2. Filter out bots and org members automatically (fetches org member lists and detects org email domains)
  3. Score each user by interaction depth using these weights:
    • Issue opener: 5 points
    • PR author: 5 points
    • Contributor: 4 points
    • Issue commenter: 3 points
    • Forker: 3 points
    • Watcher: 2 points
    • Stargazer: 1 point
  4. Rank users by (repos_interacted desc, total_score desc) — multi-repo users surface first
  5. Fetch GitHub profiles for the top N users (name, email, company, location, blog, twitter, bio, followers)
  6. Export two CSV files: _users.csv and _interactions.csv

Step 3: Review Output

The tool produces two CSV files:

repo_signals_users.csv — One row per person, deduplicated across all repos

ColumnDescription
usernameGitHub login
nameDisplay name
emailPublic GitHub email
commit_emailEmail from git commits (if different from public)
companyCompany from GitHub profile
locationLocation from GitHub profile
blogWebsite/blog URL
twitterTwitter/X handle
bioGitHub bio
followersFollower count
public_reposNumber of public repos
total_repos_interactedNumber of input repos this user interacted with
interaction_scoreWeighted score across all repos

repo_signals_interactions.csv — One row per user x repo combination

ColumnDescription
usernameGitHub login
repositoryWhich repo this row is about
is_contributorYES/NO
is_stargazerYES/NO
is_forkerYES/NO
is_watcherYES/NO
is_issue_openerYES/NO
is_pr_authorYES/NO
is_issue_commenterYES/NO
contribution_countNumber of commits (0 if not contributor)
starred_atDate starred (if applicable)
forked_atDate forked (if applicable)
repo_scoreInteraction score for this specific repo

Phase 3: Analyze & Recommend

Once the CSV files are generated, do not stop. Immediately proceed to analyze the data and brief the user.

Step 5: Collect Company Context

Check if you already know the user's company and intent from prior conversation. If not, ask:

"Before I analyze these results, I need to understand who you're finding leads for:

  1. What does your company/product do? (one-liner is fine)
  2. Who is your ideal customer? (role, company size, industry, tech stack — whatever is relevant)
  3. What's the goal for these leads? (outbound sales, partnership, hiring, community building, etc.)"

Do NOT proceed to analysis until you have this context. It directly shapes the recommendations.

Step 6: Analyze the Data

Read the generated .csv file and compute the following analysis. Present it to the user as a structured briefing.

6a. Overall Stats

  • Total users in the sheet
  • Score distribution (how many at 15+, 10-14, below 10)
  • Email coverage: how many have any email (public or commit)
  • Company coverage: how many have a company listed

6b. Multi-Repo Users (if multiple repos were scanned)

  • How many users interacted with 2+ repos
  • List the top 10 multi-repo users with their names, companies, and which repos they touched
  • This is the highest-signal segment — call it out explicitly

6c. Top Companies

  • Extract all company names from the Users sheet
  • Group users by company (normalize company names — strip @, leading/trailing whitespace, lowercase comparison)
  • List the top 15 companies by number of engaged users
  • For each, note how many users, their average score, and which interaction types are most common
  • Flag companies with 3+ engaged users as "organizational adoption signals"

6d. Interaction Patterns

  • How many users are issue openers (highest intent)
  • How many are PR authors (deep practitioners)
  • How many are stargazer-only (lowest signal)
  • Any notable patterns (e.g., a burst of recent stars, many forkers from one company)

6e. Data Gaps

  • What percentage lack email — this determines enrichment priority
  • What percentage lack company — affects ability to do company-level targeting
  • How many have a blog/website or twitter that could help with manual research

Step 7: Recommend Next Steps

Based on the analysis AND the user's company context/intent, recommend specific next steps. Tailor recommendations to what the data actually shows — do not give generic advice.

Framework for recommendations:

  1. If multi-repo users exist (2+ repos):

    • These are the #1 priority segment. Recommend enriching them first.
    • Estimate credit cost: N users x cost per enrichment call.
  2. If company clusters exist (3+ users from same company):

    • Recommend company-level enrichment via SixtyFour /enrich-company
    • Then use /enrich-lead to find the decision-maker at those companies (not the developer who starred — the person who signs off on purchases)
    • This is the "find the buyer, not the user" play
  3. If high email coverage (>40%):

    • Can start outreach directly for users with emails
    • Recommend SixtyFour /qa-agent to qualify them against ICP before reaching out
    • Suggest segmenting by interaction type for personalized outreach (issue openers get a different message than stargazers)
  4. If low email coverage (<40%):

    • Recommend SixtyFour /find-email for the top-scored users first
    • Estimate cost: N users x $0.05 (professional) or $0.20 (personal)
    • Suggest starting with a small batch (50-100) to validate quality before scaling
  5. If the user's goal is outbound sales:

    • Prioritize: company clusters -> multi-repo users -> issue openers -> PR authors -> forkers -> stargazers
    • Recommend enriching companies first, then finding decision-makers
    • Suggest personalization angles based on interaction type (e.g., "I noticed your team has been active in the [repo] community...")
  6. If the user's goal is community/partnerships:

    • Prioritize: PR authors -> contributors -> issue commenters who help others
    • These are potential advocates, not just buyers
  7. Always include a cost estimate:

    • Break down what each enrichment step would cost
    • Suggest a phased approach: start small, validate, then scale

Format the recommendation as a clear action plan with numbered steps, estimated costs, and expected outcomes.

Step 8: Ask for Go-Ahead

After presenting the analysis and recommendations, ask:

"Would you like me to proceed with any of these steps? I can start with [recommended first action] — it would cost approximately [estimate] and take [time estimate]."

Wait for user confirmation before spending any credits or running enrichment tools.

Output Interpretation Reference

  • total_repos_interacted > 1: High-intent signal — user engages with multiple repos in the same category
  • interaction_score >= 15: Deep engagement — multiple interaction types
  • is_issue_opener = YES: Active user with real use case and pain points
  • is_pr_author = YES (non-org member): Technical practitioner invested in the ecosystem
  • is_forker = YES: Taking code to build something — stronger than starring
  • is_stargazer only: Lowest signal — casual interest

Rate Limits & Runtime Estimates

  • GitHub API: 5,000 requests/hour for authenticated users
  • Each repo extraction uses ~500-2,000 API calls depending on repo size
  • Profile fetching: 1 API call per user
  • Estimate for 1 repo, 500 users: ~15-30 minutes
  • Estimate for 3 repos, 500 users: ~45-90 minutes

Frequently asked questions about GitHub Repository Signals

Similar skills