Most teams mining GitHub for leads focus on stars and forks. Those are strong signals — but pull request activity is richer, more specific, and less saturated as a signal source. A developer who opens a PR on an open-source project is not passively bookmarking it; they are actively contributing code. That level of engagement tells you far more about their tech stack, skill level, and current priorities than a star ever could.
What PR Activity Tells You About a Developer
- Tech stack confirmation: merged PRs prove they write that language/framework in production, not just experiment with it
- Seniority signal: PR review activity on large OSS projects indicates senior/staff-level engineers who make buying decisions
- Timing signal: a PR opened this week is a current project, not something they tried six months ago
- Problem signal: PR description often explains what they were trying to fix or add — your product may solve the next step
- Company context: many devs submit PRs from work accounts with their employer email in git config
The GitHub PRs API: What You Can Query
GitHub exposes full pull request data via its REST and GraphQL APIs. Key endpoints:
# List recent open PRs on a repo (paginate for all)
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.github.com/repos/{owner}/{repo}/pulls?state=open&sort=created&per_page=100"
# List merged PRs (closed with merge_commit_sha set)
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.github.com/repos/{owner}/{repo}/pulls?state=closed&sort=updated&per_page=100"
# Get PR review activity for a specific PR
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/reviews"
# Search PRs across GitHub by keyword (e.g. "opentelemetry" in PR body)
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.github.com/search/issues?q=type:pr+opentelemetry+is:merged&sort=updated"High-Value PR Signal Patterns
1. Contributors to Competitor OSS Projects
If you sell an observability SaaS and Grafana, Prometheus, or OpenTelemetry are in your competitive set, their OSS repos are goldmines. Developers who submit merged PRs to these projects are production users — often at companies with real monitoring budgets. They understand the problem deeply, which means your outreach can be technical and specific.
2. PR Authors Adding Integrations You Support
Monitor PRs that add integrations with tools in your ecosystem. A developer opening a PR titled "Add support for Neon serverless Postgres" in a popular framework repo is almost certainly evaluating or using Neon. If you sell anything adjacent to serverless databases, that developer is a warm lead today.
import requests
HEADERS = {"Authorization": "Bearer YOUR_TOKEN"}
def find_pr_contributors(owner: str, repo: str, keyword: str, days: int = 14) -> list[dict]:
"""Find devs who opened/merged PRs mentioning a keyword in the last N days."""
from datetime import datetime, timedelta
since = (datetime.utcnow() - timedelta(days=days)).isoformat() + "Z"
url = "https://api.github.com/search/issues"
params = {
"q": f"repo:{owner}/{repo} type:pr is:merged {keyword} merged:>{since[:10]}",
"per_page": 30,
"sort": "updated",
}
resp = requests.get(url, headers=HEADERS, params=params)
items = resp.json().get("items", [])
leads = []
for pr in items:
login = pr["user"]["login"]
# Enrich profile
profile_resp = requests.get(f"https://api.github.com/users/{login}", headers=HEADERS)
profile = profile_resp.json()
leads.append({
"login": login,
"name": profile.get("name") or login,
"email": profile.get("email"),
"company": profile.get("company"),
"location": profile.get("location"),
"followers": profile.get("followers"),
"pr_title": pr["title"],
"pr_url": pr["html_url"],
})
return leads
# Example: find devs who merged PRs mentioning "supabase" in vercel/next.js
leads = find_pr_contributors("vercel", "next.js", "supabase", days=14)3. PR Reviewers on High-Traffic OSS Projects
PR reviewers are even more senior than PR authors. Being a designated reviewer on a popular OSS project typically means you are a maintainer, a long-term contributor, or a company employee with a technical decision-making role. These are your ideal ICP for an enterprise-tier or platform-level product.
Scaling PR Signal Mining with GitLeads
Manually querying the GitHub PR API works for a handful of repos but does not scale. Rate limits, pagination, deduplication, and enrichment add up quickly. GitLeads automates PR signal monitoring as part of its keyword signal feature: configure keyword patterns and GitLeads continuously monitors new PRs, issues, and discussions across GitHub for matches, enriches each contributing developer's profile, and delivers leads to your CRM or outreach tool.
Outreach Angle for PR-Triggered Leads
The PR title and description give you everything you need for a warm opener:
Subject: your PR in {repo} → quick question
Hi {first_name},
Saw your merged PR "{pr_title}" in {repo} — nice work on the {specific detail}.
We're building something that handles the next step in that flow. [One sentence on product].
Happy to share a technical overview if it's relevant to what you're working on.
Worth a quick async exchange?
[Your name]Key Metrics for PR Signal Campaigns
- Reply rate: expect 8–18% for well-personalised PR-signal outreach (vs. 1–3% for cold lists)
- Email find rate: ~60–70% for active GitHub contributors (higher than passive stargazers)
- ICP fit: PR contributors are generally more senior than stargazers — fewer leads but higher ACV potential
- Signal freshness: use PRs merged in the last 7–14 days for maximum timing relevance
Related: GitHub buying signals for sales, monitor GitHub issues for sales, GitHub keyword monitoring for sales, GitHub fork signals, GitHub contribution signals, GitHub signal monitoring.