SuperAPI AI Directory

github-stars-monitor

Deployment & operations

View repository

Updated 10-15 20:13

About this skill

GitHub Stars & Forks Monitor

Track who stars and forks [YOUR_PRODUCT] repos. Research their profile. Alert when someone from a notable company or with a large following engages.

Why

A GitHub star from a VP Eng at Stripe is worth more than 100 random stars. Forks are even stronger — they indicate intent to evaluate. Cross-referencing GitHub profiles with company data surfaces enterprise prospects hiding in OSS engagement.

Setup

Requires two env vars in ~/.openclaw/gateway.env (or your agent's secrets store):

GITHUB_TOKEN=<fine-grained token with read access to Starring + Contents for the org>
MONITORED_REPOS=owner/repo-1,owner/repo-2,owner/repo-3

Repos to Monitor

Set via the MONITORED_REPOS env var (comma-separated owner/repo entries). Examples:

MONITORED_REPOS=acme-org/acme-cli,acme-org/acme-mcp,acme-org/acme-skills

Workflow

Step 1: Collect New Stars & Forks

Run the collector script. It handles pagination (per_page=100), deduplication against state, and profile enrichment automatically:

python3 /home/openclaw/.openclaw/workspace/skills/github-stars-monitor/collect.py

CRITICAL: Use the exact absolute path above. Do NOT use cd /path && python3 script.py (triggers exec preflight block). Do NOT append 2>&1. Direct form only.

Output is JSON:

{
  "new_stargazers": [{"repo": "...", "username": "...", "starred_at": "...", "profile": {"name": "...", "company": "...", ...}}],
  "new_forkers": [{"repo": "...", "username": "...", "forked_at": "...", "profile": {...}}],
  "repo_stats": {"owner/repo-1": {"total_stars": N, "new_stars": N, ...}},
  "total_new": N
}

State is saved to memory/github-stars.json automatically — processed users won't appear again on next run.

If total_new == 0 → reply HEARTBEAT_OK, done.

Step 2: Qualify

For each new stargazer/forker, score as HOT / WARM / SKIP using profile data from the collector output:

HOT (alert immediately):

  • company field mentions a known tech company (>100 employees)
  • followers > 500 (influential developer)
  • bio contains leadership keywords: VP, CTO, Director, Head, Lead, Principal, Staff
  • Profile shows they match your ICP profile (active repos, relevant tech stack, contribution patterns)

WARM (include in summary):

  • Business company in company field but small/unknown
  • Moderate activity (20+ public repos)
  • Forked (stronger signal than star)

SKIP:

  • Empty profile, no company, <5 repos, bot-like

Step 3: Research HOT Candidates

For HOT candidates, run Exa to find more about their company:

exa-search__web_search_advanced_exa \
  query="COMPANY_NAME company" \
  category=company \
  numResults=3 \
  type=auto

If stargazer has no company but has a personal site in blog, check it via Exa for affiliation.

Step 4: Alert

For HOT candidates:

GitHub: [username] starred [repo]
[Real name] — [bio/title]
[Company] — [one-line from Exa research]
[followers] followers | [public_repos] repos
Profile: github.com/USERNAME

Summary for WARM:

Also starred: [N] others ([username1] @ [company], ...)

Repo stats summary:

Stars: [repo1] N (+new), [repo2] N (+new)

Notes

  • GitHub API rate limit: 5000 req/hour with token. Collector uses ~10-50 requests per run depending on star count.
  • Fork is a stronger signal than star — forkers appear first in output.
  • State file keeps up to 2000 processed users per repo. Old entries trimmed automatically.
  • First run will report ALL existing stargazers as "new". Review and send HEARTBEAT_OK if no HOT candidates.

Related Skills

  • signup-monitor — if a stargazer later signs up, connect the dots
  • exa-company-research — deep company research for HOT leads
  • exa-people-research — deep people research
  • pipeline-manager — add HOT stargazers as prospects