Skip to content

Skobyn/orgsignal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔭 OrgSignal

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)


What It Does

  1. Discovers GitHub orgs matching your ideal customer profile (by topic, language, or org name)
  2. Analyzes their public repos for tech stack, team size, activity level, and open issues
  3. Identifies likely decision makers from top contributors
  4. Synthesizes pain points from READMEs, open issues, and commit patterns
  5. Drafts a personalized cold email grounded in their actual technical reality

Why GitHub Data Is Underrated

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

Quickstart

1. Clone the repo

git clone https://github.com/yourusername/orgsignal.git
cd orgsignal

2. Install dependencies

pip install -r requirements.txt

3. Set your API keys

cp .env.example .env

Edit .env:

ANTHROPIC_API_KEY=your_key_here
GITHUB_TOKEN=your_github_token_here   # Free — generate at github.com/settings/tokens

4. Configure your search

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 json

5. Run it

python -m orgsignal.main

Output lands in output/leads_YYYYMMDD.csv — ready to import anywhere.


Output Fields

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

How the Scoring Works

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.


Rate Limits

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

Project Structure

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

Contributing

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)

License

MIT — free to use, modify, and commercialize. Attribution appreciated but not required.


Built with the GitHub API and Claude. No paid data vendors.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages