• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
project logo

stevekrouse

github-leads

Find people to hire or sell to from GitHub activity
Remix of templates/github-leads
Public
Like
github-leads
Home
Code
10
PROMPT.txt
README.md
agent.ts
check-events.ts
dashboard.tsx
db.ts
C
digest.ts
C
github.cron.ts
H
main.ts
welcome-ui.tsx
Branches
1
Pull requests
Remixes
History
Environment variables
2
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
main.ts
https://stevekrouse--019ba3feabe274f7aeed4e421b9b1d7e.web.val.run
README.md

GitHub Leads

Find potential customers from GitHub activity. Monitor your org's repos for stars, forks, issues, and PRs — then use AI to qualify leads automatically.

image.png

What this does

  1. A cron job monitors public activity on your GitHub org
  2. When someone stars, forks, or opens an issue/PR, they're captured
  3. An AI agent researches the person and scores them as a lead
  4. Qualified leads appear in your dashboard with periodic digest emails

Getting started

  1. Click Remix
  2. Add environment variables:
    • OPENAI_API_KEY — for AI lead qualification
    • GITHUB_TOKEN — for accessing GitHub API (create one here)
  3. Configure your settings:
    • Edit GITHUB_ORG in github.cron.ts
    • Edit RECIPIENTS in digest.ts
    • Customize PROMPT.txt with your ICP criteria
  4. Open main.ts to view your dashboard

Note: GitHub's Events API only returns the 300 most recent events per org.

How it works

GitHub Monitoring (github.cron.ts)

  • Runs hourly to check for new activity on your org
  • Captures stars, forks, issues, PRs, and other public events
  • Groups events by user to avoid duplicate leads

AI Agent (agent.ts)

  • Researches each GitHub user's profile, repos, and linked sites
  • Uses web search to learn about their company and role
  • Scores them against your ICP defined in PROMPT.txt
  • Returns {name, match, score, leadTypes, reasoning}

Storage (db.ts)

  • Every lead is stored in SQLite with columns:
    • id — auto-incremented
    • timestamp — when first seen
    • input_data — the GitHub event(s) that triggered it
    • output_data — AI result

Dashboard (main.ts)

  • Qualified leads (match=true) appear at the top
  • Shows score and lead type tags (customer/hire)
  • Click a lead to see full details and GitHub activity

Email Digest (digest.ts)

  • Sends daily emails (1pm UTC) with new qualified leads
  • Edit RECIPIENTS array to configure who receives them

Customization

  • Edit PROMPT.txt to define your ideal customer profile
  • Adjust the GitHub sweep frequency in github.cron.ts interval settings (default: hourly)
  • Adjust the email digest schedule in digest.ts interval settings (default: daily at 1pm UTC)
  • Run check-events.ts to preview how many users will be processed on the first run

Testing

Use the test bar in the dashboard to evaluate any GitHub username instantly.

Code
PROMPT.txtREADME.mdagent.tscheck-events.tsdashboard.tsxdb.ts
C
digest.ts
C
github.cron.ts
H
main.ts
welcome-ui.tsx
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.