Why route GitHub leads into Overloop
Overloop is a sales engagement platform built for outbound sequences across email and LinkedIn. GitLeads captures developers showing buying signals on GitHub — new stargazers, keyword mentions in issues/PRs/discussions — and enriches them with GitHub profile data including email, company, and tech stack context. Routing those leads into Overloop lets you launch targeted sequences automatically, without any manual prospecting.
What GitLeads sends to Overloop
Each GitLeads lead payload contains the fields Overloop needs to personalize sequences:
- `first_name`, `last_name` — from GitHub display name
- `email` — public GitHub email (when available)
- `company` — GitHub profile company field
- `github_username` — for LinkedIn lookup and personalization
- `signal_context` — the specific GitHub event that triggered the lead (used in first-line personalization)
- `top_languages` — programming languages for sequence targeting
Integration method 1: Overloop API via GitLeads webhook
GitLeads supports outbound webhooks on every new lead. You can use that webhook to call the Overloop API directly.
// Vercel / Cloudflare Worker webhook handler
// GitLeads POSTs to this URL when a new lead is captured
import type { NextRequest } from 'next/server';
interface GitLeadsPayload {
name: string;
email?: string;
github_username: string;
company?: string;
signal_context: string;
top_languages: string[];
}
export async function POST(req: NextRequest) {
const lead: GitLeadsPayload = await req.json();
const [first_name, ...rest] = (lead.name || lead.github_username).split(' ');
const last_name = rest.join(' ') || '';
const overloopProspect = {
prospect: {
first_name,
last_name,
email: lead.email,
organization_name: lead.company,
custom_attributes: {
github_username: lead.github_username,
signal_context: lead.signal_context,
top_languages: lead.top_languages.join(', '),
},
},
};
// Create prospect in Overloop
const res = await fetch('https://api.overloop.com/public/v1/prospects', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.OVERLOOP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(overloopProspect),
});
const prospect = await res.json();
// Enroll in sequence
await fetch(`https://api.overloop.com/public/v1/prospects/${prospect.data.id}/enroll`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.OVERLOOP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ sequence_id: process.env.OVERLOOP_SEQUENCE_ID }),
});
return new Response('ok', { status: 200 });
}Integration method 2: Zapier (no code)
- In GitLeads, go to Integrations → Zapier and copy your GitLeads Zapier webhook URL
- In Zapier, create a new Zap with "Webhooks by Zapier" as the trigger (Catch Hook)
- Paste the GitLeads webhook URL into Zapier and save
- Add an action: "Overloop — Create or Update Prospect"
- Map GitLeads fields: name → First/Last Name, email → Email, company → Organization, signal_context → Custom Attribute
- Add a second action: "Overloop — Add to Sequence" using the prospect ID from step 4
- Test with a live GitLeads lead and activate the Zap
Sequence personalization using signal_context
The most effective Overloop sequences for GitHub leads reference the specific signal that triggered enrichment. Use the `signal_context` field in your email first line:
- Stargazer signal: "Noticed you starred [repo] last week — are you evaluating [product category]?"
- Keyword signal: "Saw your comment in the [repo] issue about [keyword] — we solve exactly that."
- Code signal: "Found [keyword] in one of your repos — here's how [your product] handles that at scale."
Recommended GitLeads signals for Overloop routing
- Stargazers on competitor repos → highest-intent leads for direct competitor displacement sequences
- Keyword signals in GitHub Issues → problem-aware leads, ideal for solution-oriented sequences
- Keyword signals in README/code → active builders, ideal for developer tool sequences