Free B2B lead intelligence from public GitHub data — no paid vendors, no scraping, no CSV hell.
OrgSignal scans public GitHub organizations to extract tech stack, team size, pain points, and decision-maker contacts — then uses Claude AI to synthesize a lead record and draft a personalized outreach email per prospect.
Total cost per lead: ~$0.003 (Claude API calls only)
- Discovers GitHub orgs matching your ideal customer profile (by topic, language, or org name)
- Analyzes their public repos for tech stack, team size, activity level, and open issues
- Identifies likely decision makers from top contributors
- Synthesizes pain points from READMEs, open issues, and commit patterns
- Drafts a personalized cold email grounded in their actual technical reality
Most paid lead tools infer tech stack. GitHub is the tech stack — ground truth data that a company put there themselves. You also get:
- Real team size — from unique contributor counts, not LinkedIn estimates
- Pain points in their own words — from open issues and READMEs
- Growth signals — commit frequency trends, recent new contributors
- Recency — when did they last ship something? Is this org active or dead?
- Decision makers — top contributors are usually founding engineers or CTOs
git clone https://github.com/yourusername/orgsignal.git
cd orgsignalpip install -r requirements.txtcp .env.example .envEdit .env:
ANTHROPIC_API_KEY=your_key_here
GITHUB_TOKEN=your_github_token_here # Free — generate at github.com/settings/tokens
Edit config.yaml to define your ICP:
search:
topics: # GitHub repo topics to target
- "saas"
- "b2b"
- "restaurant-tech"
languages: # Filter by primary language
- "python"
- "typescript"
min_stars: 5 # Ignore tiny/inactive orgs
min_contributors: 3
max_contributors: 150 # Filter out enterprises
your_company:
name: "Acme Analytics"
description: "AI-powered analytics for growing SaaS companies"
pitch: "We help engineering-led companies turn their data into revenue insights"
output:
min_score: 6 # Only output leads scored 6/10 or higher
format: "csv" # csv or jsonpython -m orgsignal.mainOutput lands in output/leads_YYYYMMDD.csv — ready to import anywhere.
| Field | Description |
|---|---|
org_name |
GitHub organization name |
org_url |
Link to their GitHub org |
website |
Their website if listed on GitHub |
team_size_estimate |
Contributor count as team size proxy |
primary_stack |
Top languages + detected frameworks |
activity_level |
High / Medium / Low based on commit recency |
prospect_score |
Claude's 1–10 fit score for your ICP |
decision_maker |
Top contributor name + GitHub profile |
pain_points |
3 inferred pain points from repo analysis |
trigger |
Specific signal that makes now a good time to reach out |
email_subject |
Drafted subject line |
email_body |
Drafted outreach email body |
reasoning |
Claude's scoring rationale |
Claude receives a structured summary of each org and scores it against your config.yaml ICP definition. It factors in:
- Stack alignment with your product
- Team size fit (too small = no budget, too big = wrong buyer)
- Activity level (dead orgs don't buy software)
- Presence of signals that suggest active pain (open issues, stale PRs, tech debt indicators)
Only leads at or above min_score make it to the output file.
| API | Limit | How We Handle It |
|---|---|---|
| GitHub (unauthenticated) | 60 req/hr | Always use a token |
| GitHub (authenticated) | 5,000 req/hr | Built-in 0.3s delay between calls |
| Claude API | Depends on tier | Configurable concurrency in config.yaml |
orgsignal/
├── orgsignal/
│ ├── __init__.py
│ ├── main.py # Orchestrator
│ ├── github_scanner.py # GitHub API wrapper
│ ├── repo_analyzer.py # Tech stack + pain point extraction
│ ├── contributor_finder.py # Decision maker identification
│ ├── claude_synthesizer.py # Lead record + email generation
│ └── output_handler.py # CSV / JSON export
├── config.yaml # Your ICP definition (edit this)
├── .env.example # API key template
├── requirements.txt
├── LICENSE # MIT
└── README.md
PRs welcome. Priority areas:
- Email finder integration (Hunter.io free tier)
- LinkedIn URL matcher via Google search
- Slack output channel support
- Web UI for non-technical users
- More output destinations (Notion, Airtable, HubSpot)
MIT — free to use, modify, and commercialize. Attribution appreciated but not required.
Built with the GitHub API and Claude. No paid data vendors.