Transform your GitHub stars into meaningful connections. Analyze, understand, and engage with your repository's stargazers.
Stargazer Analytics helps you understand and connect with the developers who star your GitHub repositories. Instead of treating stars as just numbers, we help you discover the developers behind them.
- 🔍 Deep Analysis: Understand who's interested in your project
- 🎯 Interest Discovery: Find what other repos your stargazers love
- 📧 Email Discovery: Get emails of around 20% of your stargazers
- 📊 Smart Scoring: Auto-score how well each stargazer fits your project
- 💌 AI-Powered Intros: Generate personalized outreach messages
In this repo search and replace github.com/magmueller/stargazers
and github.com/YOUR_USERNAME/stargazers
with your username.
# Clone the repository
git clone https://github.com/YOUR_USERNAME/stargazers.git
cd stargazers
# Initialize Go module
rm -rf go.mod go.sum
go mod init github.com/YOUR_USERNAME/stargazers && go mod tidy
go build
- Visit GitHub.com → Settings → Developer Settings → Personal Access Tokens
- Generate new token (classic)
- Select scopes:
public_repo
,read:user
- Copy your token
You can run the tool in two modes:
# Only collect stargazer profiles and emails
./stargazers fetch --repo=OWNER/REPO --token=YOUR_TOKEN --mode=basic
- Basic Mode (--mode=basic):
- Collects only stargazer profiles and emails
- Faster execution
- Lower API usage
- Outputs to
emails/OWNER_REPO_emails.csv
- To scrap many repos, you can use
competition_scraping.py
with a csv file containing the repo names.
# Full analysis including starred repos and contributions
./stargazers fetch --repo=OWNER/REPO --token=YOUR_TOKEN --mode=full
The modes automatically set the appropriate parameters:
- Full Analysis Mode (--mode=full):
- Analyzes correlated repositories
- Collects stargazer interests
- Maps contribution patterns
- Higher API usage
- Provides complete analysis data
Options:
-r, --repo string GitHub repository (format: owner/repo)
-t, --token string GitHub access token
-c, --cache string Cache directory (default: "./stargazer_cache")
-m, --mode string Analysis mode (default: "basic")
--verbosity Log level for verbose output
--no-color Disable colored output
If you change Go code, you need to recompile the program to make the changes effective. To do this do the initialization from above again:
go build
Run this to get csv from your cached profiles:
./stargazers analyze --repo=OWNER/REPO
Then you find the csvs in ./stargazer_cache/OWNER_REPO/
.
I drafted some scripts to analyze the data - but depending on your use case I advise you to just generate your own.
- Data Visualization: Plotting scripts in
/utils
- Data cleaning: In
emails/OWNER_REPO_emails.csv
are all your stargazers. Around 20% should have emails. Filter them our. - Email Generation: AI-powered personalized intro generator in
/emails
. Rank your leads by the score. I also recommend to filter by region (just add to the system prompt).
For sending emails, I used Instantly. Do not send more than 30 emails per email address per day to avoid being flagged as spam. 1 email address cost there around 5 USD per month + 15 USD per year for the domain + 90 USD per month for the tool.
- Scraped over 2 days 140k stargazers of related repos
- Got 20k unique email addresses with profiles
- Scored them between 0 and 1
- Started sending for top 1k emails
- 6% booked a 15 min call for user interviews
Big thanks to spencerkimball for the initial implementation from 2019. I updated the code for the current api - and integrated everything around emails.
Apache License 2.0 - See LICENSE for details
Made with ❤️ for the open source community