Push GitHub Developer Leads to Expandi for LinkedIn Outreach

How to push GitHub developer leads into Expandi LinkedIn automation campaigns using GitLeads — capture stargazer and keyword signals, enrich with profile data, and launch LinkedIn sequences automatically.

Published: May 12, 2026Updated: May 12, 20267 min read

Why Combine GitHub Signals with Expandi LinkedIn Automation

Expandi is a LinkedIn automation platform that runs safe, personalized outreach sequences — connection requests, follow-ups, InMails, and profile visits. Most teams using Expandi import leads from a CSV or CRM without intent context. When you combine Expandi with GitLeads, every prospect entering your LinkedIn sequence has already demonstrated buying intent on GitHub: they starred your competitor's repo, mentioned your target keyword in a GitHub Issue, or forked a tool adjacent to your product. Intent-first LinkedIn outreach converts at significantly higher rates than cold list imports.

Architecture: GitLeads → Webhook → Expandi

GitLeads supports real-time webhooks and native integrations. The simplest pipeline to Expandi uses a webhook → middleware → Expandi API flow:

// GitLeads webhook payload (sent on each new lead)
interface GitLeadsWebhookPayload {
  leadId: string;
  signalType: 'stargazer' | 'keyword';
  repo?: string;
  keyword?: string;
  developer: {
    githubUsername: string;
    name: string | null;
    email: string | null;
    bio: string | null;
    company: string | null;
    location: string | null;
    followers: number;
    topLanguages: string[];
    profileUrl: string;
  };
}

// Middleware: enrich with LinkedIn URL + add to Expandi campaign
async function handleGitLeadsWebhook(payload: GitLeadsWebhookPayload) {
  const { developer } = payload;

  // Resolve LinkedIn URL from GitHub username (e.g. via Clay or Hunter.io)
  const linkedinUrl = await resolveLinkedIn(developer.githubUsername, developer.name);

  if (!linkedinUrl) return; // skip if no LinkedIn found

  // Add prospect to Expandi campaign via API
  await fetch('https://api.expandi.io/api/campaigns/{campaignId}/add-prospect', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.EXPANDI_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      linkedin_url: linkedinUrl,
      first_name: developer.name?.split(' ')[0] ?? developer.githubUsername,
      company: developer.company ?? '',
      custom_field_1: payload.signalType === 'stargazer'
        ? `Starred ${payload.repo}`
        : `Mentioned "${payload.keyword}" on GitHub`,
      tags: [payload.signalType, ...developer.topLanguages.slice(0, 3)],
    }),
  });
}

Setting Up the GitLeads → Expandi Pipeline

  1. **Configure GitLeads signals** — In GitLeads, add the GitHub repositories to monitor for stargazers, or add keywords to scan in Issues/PRs/Discussions. These are your intent triggers.
  2. **Enable the GitLeads webhook** — In GitLeads Settings → Integrations → Webhook, add your middleware endpoint URL. GitLeads will POST each new lead to this URL as a JSON payload.
  3. **Build or deploy the middleware** — Use the TypeScript example above (deploy as a Vercel Edge Function, AWS Lambda, or any Node.js server) to parse the payload, resolve LinkedIn URLs, and call the Expandi API.
  4. **Create a campaign in Expandi** — Build a LinkedIn sequence in Expandi: connection request with a personalized note referencing their GitHub activity, followed by a value-add message. Use the `custom_field_1` populated by GitLeads (e.g., "Starred grafana/grafana") in your message templates.
  5. **Set Expandi safety limits** — Configure Expandi's daily connection limit (max 20–30/day), working hours, and blacklist to stay within LinkedIn's terms. GitLeads signals are high-quality, so prioritize quality over volume.
  6. **Monitor conversion metrics** — Track acceptance rate and reply rate per campaign. Segment by signal type: stargazer signals typically have higher LinkedIn acceptance rates than cold keyword signals.

Personalization Using GitHub Signal Context

The signal context from GitLeads enables hyper-personalized LinkedIn messages that reference the developer's actual GitHub behavior:

  • Stargazer signals: "I noticed you starred [repo] on GitHub — we help companies like yours that are evaluating [use case]..."
  • Keyword signals: "I saw your comment in a GitHub Issue about [keyword] — thought you'd find our approach to [problem] relevant..."
  • Language signals: "I noticed you primarily work in [language] — we're built specifically for [language] teams..."
  • Company signals: "I see you're at [company] — we work with several [industry] teams on [problem]..."

Alternative: Use Clay as the Middleware

If you use Clay for enrichment, you can route GitLeads webhook data into a Clay table, enrich with LinkedIn URL and company data using Clay's built-in data providers, then push to Expandi via the Clay → Expandi native integration or via Zapier. This avoids writing custom middleware and gives you a no-code pipeline with richer enrichment.

GitLeads captures GitHub developer intent signals — stargazers, keyword mentions, fork activity — and pushes enriched profiles into Expandi, HubSpot, Clay, Slack, Salesforce, and 15+ tools. Connect GitHub buying signals to your LinkedIn outreach sequences without sending a single email. Start free at [gitleads.app](https://gitleads.app). Related: [push GitHub leads to Clay](/blog/push-github-leads-to-clay), [push GitHub leads to HubSpot](/blog/push-github-leads-to-hubspot), [find developer leads on GitHub](/blog/find-developer-leads-github).

Want more like this? Get the weekly developer lead playbook.

No spam. 5 emails over 2 weeks. Unsubscribe anytime.

Related Articles

How to Find Leads on GitHub: The Complete Guide (2026)
10 min read
GitHub Leads vs LinkedIn Leads: When to Use Which (2026)
9 min read
GDPR Compliance for GitHub Lead Scraping: What You Must Know
8 min read