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

templates

github-leads

Find people to hire or sell to from GitHub activity
Remix of templates/leads
Public
Like
1
github-leads
Home
Code
9
PROMPT.txt
README.md
agent.ts
dashboard.tsx
db.ts
C
digest.ts
C
github.cron.ts
H
main.ts
welcome-ui.tsx
Branches
1
Pull requests
Remixes
1
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
/
README.md
Code
/
README.md
Search
…
Viewing readonly version of main branch: v84
View latest version
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)

Testing

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

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.