Att hitta utvecklarleads låter enkelt tills du faktiskt gör det. Du söker på GitHub, öppnar profiler, kopierar detaljer till ett kalkylark och inser sedan att halva listan saknar e-post eller är full av dubbletter.
GitHub lead automation träffar rekryterare först, ärligt talat. Men SaaS-grundare som kör outbound och byråer som bygger prospektlistor känner samma tröghet: timmar som bränns på “research” som mest är copy-paste och städning.
Det här arbetsflödet hämtar utvecklare från GitHub, kompletterar saknade e-postadresser med Hunter.io, tar bort dubbletter och lägger till felfria poster i Google Sheets. Du får se vad det gör, vad du behöver och hur du anpassar det efter dina leadkriterier.
Så fungerar den här automatiseringen
Här är hela arbetsflödet som du kommer att sätta upp:
n8n Workflow Template: GitHub + Google Sheets: rensade leads utan dubbletter
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Define Developer Searches"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Search GitHub Users"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Parse Users"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get User Details"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Extract Developer Data"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Need Email Enrichment?", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Hunter.io Email Lookup"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Update With Email"]
n9@{ icon: "mdi:database", form: "rounded", label: "Check For Duplicates", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Filter Duplicates"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Format For Database"]
n12@{ icon: "mdi:database", form: "rounded", label: "Add to Lead Database", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n13 --> n10
n3 --> n4
n4 --> n5
n0 --> n1
n10 --> n11
n8 --> n9
n8 --> n13
n11 --> n12
n2 --> n3
n9 --> n13
n5 --> n6
n7 --> n8
n6 --> n7
n6 --> n10
n1 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n6 decision
class n9,n12 database
class n2,n4,n7 api
class n1,n3,n5,n8,n10,n11 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n5,n7,n8,n10,n11,n13 customIcon
Varför det här spelar roll: felfria dev-leads utan tidsödande admin
Manuell sourcing på GitHub följer ofta ett jobbigt mönster: det börjar med “bara några leads” och äter sedan tyst upp din vecka. Du samlar profiler, klistrar in dem i ett ark och när outreach väl ska börja tvivlar du redan på listan. E-post saknas, namn matchar inte användarnamn och dubbletter dyker upp eftersom två olika sökningar fångade samma person. Värst av allt? Du upptäcker problemen först efter att du har skickat meddelanden eller importerat listan i ditt CRM. Det är då det blir dyrt.
Friktionen byggs på. Här är var det faller isär i praktiken.
- Varje ny GitHub-sökning skapar en ny “version” av samma leadlista, så dubbletter är nästan garanterade.
- E-postberikning sker sent (eller inte alls), vilket gör att outreach försenas eller blir baserad på gissningar.
- Folk kopierar inkonsekventa fält till Sheets, så filtrering på plats, företag eller tech stack blir opålitlig.
- När en kollega frågar “Var kom det här leadet ifrån?”, slutar det med att du öppnar GitHub-profiler igen för att återskapa kontext.
Vad du bygger: lead sourcing från GitHub till Sheets med berikning
Den här automatiseringen körs enligt schema, söker på GitHub efter utvecklare utifrån din frågelista och hämtar profildetaljer för varje träff. När den har utvecklardatan kontrollerar den om en e-postadress redan finns. Om inte, anropar den Hunter.io för att slå upp en professionell e-post baserat på utvecklarens domänkontext och lägger tillbaka berikningen på leadposten. Därefter jämför den leadet mot din befintliga Google Sheets-databas för att fånga dubbletter innan något läggs till. Till sist lägger den bara in den rensade, strukturerade posten i ditt Google Sheets-“CRM” så att din outreach-lista förblir pålitlig i stället för uppblåst.
Arbetsflödet startar från en schemalagd trigger, sedan frågas GitHub och profiler sammanställs i ett konsekvent schema. Hunter.io-berikning körs bara när det behövs, och en separat uppslagning i Google Sheets hjälper arbetsflödet att avgöra vad som faktiskt är nytt. Resultatet är ett enda ark som håller sig felfritt över tid.
Vad du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du vill ha 30 nya utvecklarleads per dag. Manuellt kanske du lägger cirka 3 minuter per lead på att öppna profiler, kopiera fält och kontrollera om de redan finns i ditt ark, vilket är runt 90 minuter innan du ens tänker på e-post. Lägg till ytterligare en minut per lead för att jaga kontaktuppgifter och det närmar sig 2 timmar. Med det här arbetsflödet lägger du cirka 10 minuter på att förfina dina GitHub-sökfrågor och granska arket, medan berikning, dubblettkontroller och tillägg körs i bakgrunden.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- GitHub API för att söka användare och profiler
- Google Sheets för att lagra din leaddatabas
- Hunter.io API-nyckel (hämta den i din Hunter-dashboard)
Svårighetsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och justerar en frågelista (lätt redigering, ingen tung kodning).
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En schemalagd körning drar igång allt. Arbetsflödet startar med en Schedule Trigger, så du kan köra det varje timme, dagligen eller i den takt som passar din outbound-rytm.
Dina GitHub-sökfrågor sätts och körs. En frågelista förbereds (till exempel: språkfilter, platsnyckelord eller rollindikationer) och en HTTP-förfrågan söker efter GitHub-användare. Resultaten parsas så att arbetsflödet kan loopa igenom dem på ett säkert sätt.
Profiler hämtas och sammanställs till en felfri post. För varje användare hämtar arbetsflödet profildetaljer och sammanställer fälten du faktiskt bryr dig om till ett konsekvent leadformat som fungerar bra i Google Sheets.
E-postberikning och deduplicering sker innan arket uppdateras. En kontroll “finns e-post?” skickar leads antingen vidare direkt eller genom Hunter.io-berikning, och därefter förhindrar en Google Sheets-uppslagning plus ett dedupe-steg att samma person läggs till två gånger.
Du kan enkelt ändra GitHub-frågelistan för att rikta in dig på olika stackar, regioner eller senioritetsnivåer. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera schema-triggern
Ställ in arbetsflödets körfrekvens så att lead capture körs automatiskt varje vecka.
- Välj Scheduled Automation Start och öppna inställningarna för schemaläggningsregeln.
- Ställ in Interval på
weeksför att matcha den befintliga veckotrigger-konfigurationen. - Bekräfta att noden är ansluten till Set Developer Query List som nästa steg i kedjan.
Steg 2: koppla in GitHub-sökindata
Definiera utvecklarprofilerna för sökning och konfigurera GitHub-sökförfrågan som använder dessa parametrar.
- I Set Developer Query List, granska jsCode-arrayen med sökningar och uppdatera
location,languageochminFollowersvid behov. - Öppna GitHub User Search och ställ in URL till
https://api.github.com/search/users. - Under Query Parameters, ställ in q till
=location:{{ $json.location }} followers:>{{ $json.minFollowers }} language:{{ $json.language }}och per_page till30. - Under Header Parameters, ställ in Accept till
application/vnd.github.v3+jsonoch ersätt[CONFIGURE_YOUR_TOKEN]i Authorization med er GitHub-token. - Credential Required: Anslut era httpHeaderAuth-uppgifter i GitHub User Search.
[CONFIGURE_YOUR_TOKEN] kommer GitHub API-anrop att misslyckas eller hastighetsbegränsas.
Steg 3: sätt upp bearbetning av utvecklarprofiler
Tolka svaret från GitHub-sökningen, hämta individuella profiler och beräkna lead scoring och metadata.
- I Parse User Results, behåll nuvarande jsCode som mappar sökresultaten till individuella utvecklarobjekt.
- I Fetch User Profiles, ställ in URL till
={{ $json.userApiUrl }}och behåll Send Headers aktiverat. - I Fetch User Profiles, uppdatera Authorization-headern till er GitHub-token (samma värde som används i GitHub User Search).
- Verifiera att Compile Developer Details använder den befintliga poänglogiken i jsCode för att sätta
leadScore,leadQualityochdomain.
Steg 4: konfigurera e-postberikning och leadroutning
Kontrollera om e-post saknas, berika med Hunter och routa sedan vidare till kontroll av dubbletter och merge-logik.
- I Email Enrichment Check, bekräfta att villkoren inkluderar
={{ $json.domain }}not equalsoch={{ $json.email }}equalsCheck website. - I Hunter Domain Email Lookup, ställ in URL till
https://api.hunter.io/v2/domain-searchoch ställ in domain till={{ $json.domain }}, api_key till er Hunter-nyckel och limit till3. - Granska Apply Enriched Email för att säkerställa att den hämtar från Compile Developer Details och skriver över
emailbaserat på bästa confidence. - Apply Enriched Email skickar output parallellt till både Lookup Existing Leads och Combine Lead Paths.
- Bekräfta att Combine Lead Paths är inställd på Mode
chooseBranchmed Use Data Of Input2för att skicka berikade resultat genom merge-steget.
Steg 5: konfigurera Google Sheets-output och avdubblettering
Kontrollera befintliga leads, ta bort dubbletter, formatera posten och lägg till den i ert kalkylark.
- I Lookup Existing Leads, välj ert Document
Lead Databaseoch SheetSheet1. - Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter i Lookup Existing Leads.
- Verifiera att Remove Duplicate Leads använder data från Lookup Existing Leads för att jämföra
Business Name,EmailochNotes. - I Prepare Database Record, behåll lead-ID-formatet
GITHUB-${timestamp}-${randomNum}och fältmappningen så att den matchar era kolumner i arket. - I Append Lead to Sheet, ställ in Operation till
appendoch bekräfta att kolumnerna i arket inkluderarLead ID,Business Name,Email,Lead ScoreochStatus. - Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter i Append Lead to Sheet.
Steg 6: testa och aktivera ert arbetsflöde
Kör arbetsflödet manuellt för att bekräfta datafångst end-to-end och aktivera sedan för veckovis lead scraping.
- Klicka på Execute Workflow för att köra ett manuellt test från Scheduled Automation Start.
- Verifiera att GitHub User Search returnerar användare och att Parse User Results ger utvecklarobjekt som output.
- Kontrollera att Apply Enriched Email skapar en uppdaterad
emailnär berikning tillämpas. - Bekräfta att Remove Duplicate Leads bara släpper igenom nya leads och att Append Lead to Sheet lägger till rader i
Lead Database. - När ni har verifierat, växla arbetsflödet till Active för att köra enligt veckoschemat.
Tips för felsökning
- GitHub-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först dina token-scopes i GitHub Developer Settings.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Snabba svar
Cirka 30 minuter om dina API-nycklar är klara.
Nej. Du kopplar mest konton och redigerar en frågelista. Arbetsflödet hanterar redan parsning, berikning och deduplicering.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Hunter.io API-användning, som beror på hur många uppslagningar du kör.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade exekveringar men kräver grundläggande serverhantering.
Ja, och det bör du. De flesta team justerar logiken i “Set Developer Query List” för att matcha mål-stack och platser, och finjusterar sedan Google Sheets-nycklarna som används i “Lookup Existing Leads” och “Remove Duplicate Leads.” Du kan också byta Hunter.io-berikning till “berika endast när företagsdomän finns”, vilket håller kostnaderna på en rimlig nivå. Om du vill att leads ska hamna någon annanstans ersätter du steget “Append Lead to Sheet” med HubSpot, Airtable eller ditt CRM.
Oftast är det en GitHub-token som har gått ut eller återkallats. Skapa en ny token och uppdatera sedan inloggningen som används av GitHub HTTP Request-noderna. Om det fortfarande misslyckas, kontrollera rate limits i svarshuvudena från GitHub API och minska hur många profiler du hämtar per körning. Behörigheter spelar också roll; vissa org-inställningar kan blockera åtkomst beroende på hur token skapades.
På n8n Cloud beror din månatliga exekveringsgräns på planen, och vid egen drift finns ingen hård gräns utöver din server. I praktiken blir GitHubs rate limits och Hunter-krediter flaskhalsen, så de flesta team kör mindre batchar några gånger per dag i stället för en enda massiv hämtning.
Ofta, ja, eftersom GitHub-sourcing vanligtvis kräver loopar, branching och dedupe-logik som blir klumpig (och dyr) i enklare byggare. n8n hanterar “sökresultat → loopa profiler → berika villkorligt → slå ihop vägar” snyggt, och du kan köra egen drift om du gör detta i volym. Zapier eller Make kan fortfarande fungera om du bara berikar en handfull leads och inte bryr dig om en strikt dedupe-kontroll. Den stora skillnaden är kontroll: med n8n kan du finjustera sökfrågor, batchning och postformat utan att fastna i plattformsbegränsningar. Om du vill ha hjälp att välja, prata med en automationsexpert.
Du får ett lead-ark som teamet inte behöver be om ursäkt för. Sätt det en gång, låt det rulla och använd tiden du får tillbaka till att faktiskt skriva meddelanden och boka möten.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.