Skip to content

Weekly

See who starred a GitHub repo, with profiles

Every Monday a CSV of all stargazers of a GitHub repo arrives by email, with the star date, name, company, location and follower count.

Runs
Weekly
Apps
GitHub
AI
Not needed
Access
Metadata: read

Send this to your assistant

Create a ClickRuntime automation: every Monday at 8am, email me a CSV of everyone who starred acme/app with the date they starred, their name, company, location and followers, newest first.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

GitHub shows a stargazers page, but it is a grid of avatars with no dates, no companies and no way to download it. People who want to know who starred their project usually end up scrolling the page or writing a quick script against the API.

This automation is that script, run every Monday. It reads the full list with the date of each star, looks up recent stargazers' public profiles and emails you a CSV you can open in any spreadsheet. The top line tells you how many stars came in during the week.

Open source maintainers use it to find companies using their library, developer tool founders use it as a lead list, and anyone launching a project uses it to see who showed up after a post.

What you get out of it

  • Star dates you cannot see on GitHub

    The stargazers page has no dates. The export includes the day each star was given, so you can line it up with a launch post, a newsletter mention or a conference talk.

  • Companies and locations in one column

    Public profile fields like company and location are pulled in, so you can sort by company and spot teams that are evaluating your project.

  • A file you can keep

    Each week's CSV is a snapshot. Comparing two of them shows growth without relying on a third-party star history chart.

  • Rate limits respected

    Only recent stargazers are profiled by default, which keeps large repositories within GitHub's API limits for a connected account.

  • Works on any public repo

    You can run it on a competitor or a project you depend on, not only your own, because stargazer lists of public repositories are public.

How it works

What happens, step by step

  1. Every Monday the automation asks GitHub for the full stargazer list of your repository, including the date of each star.

  2. For people who starred in the last 90 days it looks up the public profile to add name, company, location and follower count.

  3. Everything is written into a CSV, newest stars first.

  4. The CSV arrives by email with a short count of stars this week at the top.

Before it runs live

  • Connect GitHub

What you get

RunsWeekly
See who starred a GitHub repo, with profilestoday, 9:00Succeeded
Email · acme/app stargazers: 4,212 total, 37 this weekstarred_at,login,name,company,location,followers 2026-11-09,kchen,Kim Chen,@northwind,Berlin,812 2026-11-08,mlopez,Maria Lopez,,Madrid,95 2026-11-08,tpark,Tae Park,Stripe,Seoul,1204 …

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other GitHub steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
see_who_starred_a_github_repo_with_profiles.pyexample
import csv, io, datetime
from clickruntime import on_trigger, credentials, http, notify

REPO = "acme/app"
ENRICH_DAYS = 90

def gh(method, path, **kw):
    resp = http.request(method, f"https://api.github.com{path}", headers={
        "Authorization": f"Bearer {credentials.connection('github', 'work')}",
        "Accept": "application/vnd.github+json"}, **kw)
    resp.raise_for_status()
    return resp.json() if resp.content else None

@on_trigger
def run(event):
    stars, page = [], 1
    while True:
        batch = http.get(f"https://api.github.com/repos/{REPO}/stargazers", params={"per_page": 100, "page": page},
                         headers={"Authorization": f"Bearer {credentials.connection('github', 'work')}",
                                  "Accept": "application/vnd.github.star+json"}).json()
        stars += batch
        if len(batch) < 100:
            break
        page += 1
    stars.sort(key=lambda s: s["starred_at"], reverse=True)
    now = datetime.datetime.utcnow()
    cutoff = (now - datetime.timedelta(days=ENRICH_DAYS)).isoformat()
    week = (now - datetime.timedelta(days=7)).isoformat()
    buf = io.StringIO()
    w = csv.writer(buf)
    w.writerow(["starred_at", "login", "name", "company", "location", "followers"])
    for s in stars:
        login = s["user"]["login"]
        p = gh("GET", f"/users/{login}") if s["starred_at"] >= cutoff else {}
        w.writerow([s["starred_at"][:10], login, p.get("name") or "", p.get("company") or "",
                    p.get("location") or "", p.get("followers", "")])
    new = sum(1 for s in stars if s["starred_at"] >= week)
    notify.email_me(f"{REPO} stargazers: {len(stars)} total, {new} this week", buf.getvalue())
    return {"total": len(stars), "this_week": new}

FAQ

Common questions

Why are older stargazers missing a name and company?
Profile lookups use one API call per person, so by default only people who starred in the last 90 days are looked up. Raise ENRICH_DAYS if you want profiles for everyone; a repository with tens of thousands of stars will then take longer and use more of your GitHub rate limit.
Does it work for a repository I do not own?
Yes. Stargazer lists of public repositories are public, so any connected GitHub account can read them. For a private repository the connected account needs access to it.
Can I get it in a Google Sheet instead of an email?
Ask your assistant to write the rows to a sheet instead of building a CSV. The stargazer request and profile lookups stay the same; only the last step changes.
What permissions does it need?
Metadata: read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (weekly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “See who starred a GitHub repo, with profiles” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.