Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

GitHub till Google Sheets: rankade kandidater

Rickard Andersson Partner, Nodenordic.se

Rekrytering på GitHub låter enkelt tills du gör det på riktigt. Du söker, klickar runt i profiler, gissar vem som är seriös, klistrar in länkar i ett kalkylark och tappar sedan tråden nästa dag.

Den här automationen för GitHub-rekrytering träffar tekniska rekryterare först, men rekryterande chefer och grundare märker det också. Du får ett korrekt formaterat Google Sheet med rankade leads (avduplicerade), plus Slack-meddelanden som bekräftar uppdateringar så att du slipper dubbelkolla hela tiden.

Nedan ser du arbetsflödet, vad det löser och vad du kan förvänta dig när det körs enligt schema och tyst bygger din pipeline i bakgrunden.

Så fungerar den här automationen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: GitHub till Google Sheets: rankade kandidater

Problemet: GitHub-sourcing blir rörigt, svårskalbart tidsödande pill

Att hitta duktiga utvecklare på GitHub är inte det svåra. Det svåra är att göra “intressanta profiler” till en organiserad, delbar pipeline som du faktiskt kan agera på. Du öppnar 30 flikar, skummar igenom repos, försöker dra slutsatser om senioritet utifrån följare och aktivitet, och copy-pastar sedan allt in i ett ark som snabbt blir inkonsekvent. Lägg till en person till som sourcar och ni börjar gå varandra på tårna. Samma kandidat, två rader. Eller ännu värre, ingen rad alls för att “jag trodde att du redan hade loggat dem”.

Det drar iväg snabbt. Här är var det brukar fallera.

  • Du lägger cirka 5–10 minuter per profil bara på att samla grunderna, och det är innan du ens bedömer matchning.
  • Poängsättning blir subjektiv, så de “bästa” leadsen beror på vem som råkade sourca den dagen.
  • Dubbletter smyger sig in när namn varierar, profiler ändras eller någon loggar ett GitHub-handle istället för ett fullständigt namn.
  • Det finns ingen pålitlig “klart”-signal, vilket innebär ständig kontroll och mycket tvekan i efterhand.

Lösningen: schemalagd GitHub-scraping + AI-poängsättning till ett avduplicerat Google Sheet

Det här arbetsflödet gör talangsourcing till något som fungerar mer som en pipeline. Det körs enligt schema (varje timme, dagligen, vad du vill), startar en BrowserAct-scrapinguppgift på GitHub utifrån dina kriterier (tänk “Python-utvecklare i Berlin”), och väntar sedan på att resultaten ska komma tillbaka. När rådata landar omvandlar n8n den till individuella kandidatposter och skickar varje profil genom en AI-agent. AI:n utvärderar det som är relevant som rekryteringssignaler (kvalitet på profilsammanfattning, repos, följare och mer) och producerar sedan strukturerad output inklusive en viktad FinalScore.

Slutligen skriver arbetsflödet varje kandidat till Google Sheets och använder kolumnen “Name” för att förhindra dubbletter. Du får också Slack-notiser: en vid fel (så att du inte missar driftstörningar) och en som bekräftar att arket uppdaterades korrekt.

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du granskar 25 GitHub-profiler per dag. Om det tar ungefär 8 minuter att öppna profilen, skanna repos, rimlighetskolla plats och logga leadet, är det runt 3 timmar sourcingtid. Med det här arbetsflödet blir den “manuella” delen mer att granska ett rankat ark och välja vilka du ska kontakta, kanske 20–30 minuter. Scraping och poängsättning körs i bakgrunden enligt schema, och Slack säger till när nya rader har landat.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • BrowserAct för att scrape:a GitHub utifrån kriterier
  • Google Sheets för att lagra rankade, avduplicerade leads
  • Slack för lyckade körningar och felnotiser
  • Gemini API-åtkomst (hämta från Google AI Studio)

Kompetensnivå: Medel. Du kopplar konton, sätter scrapingkriterier och mappar några fält till ditt ark.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett schema triggar körningen. Sätt det till varje timme om du rekryterar aggressivt, eller dagligen om du bara vill ha ett jämnt inflöde av nya leads.

BrowserAct scrape:ar GitHub utifrån dina filter. Du definierar sökintentionen (språk och plats), sedan startar arbetsflödet ett scrapingjobb och kontrollerar senare om det är klart. Om uppgiften misslyckas får Slack en felnotis så att du inte väntar på leads som aldrig kommer.

n8n strukturerar scrape-resultatet och förbereder kandidater. Ett transformationssteg delar upp rå JSON till en post per utvecklare så att poängsättning och uppdateringar i arket blir konsekventa.

AI-agenten poängsätter och strukturerar varje profil. Med en Gemini-chattmodell utvärderar den profilen och tar fram ett normaliserat resultat (inklusive en FinalScore) som är enkelt att sortera och granska.

Google Sheets lagrar pipelinen, Slack bekräftar uppdateringen. Nya kandidater läggs till som korrekt formaterade rader, och dubbletter undviks med hjälp av kolumnen Name. Du kan enkelt justera dina sökkriterier och vikter i poängsättningen utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera den schemalagda triggern

Det här arbetsflödet startar enligt ett schema, vilket sätter igång BrowserAct-automationen.

  1. Lägg till eller öppna Scheduled Automation Trigger.
  2. Ställ in regelintervallet så att det körs varje timme genom att konfigurera Rule till {"interval":[{"field":"hours"}]}.
  3. Anslut Scheduled Automation Trigger till Launch Workflow Task för att initiera uppgiftskedjan.

Om ni behöver ett annat schema (t.ex. dagligen), uppdatera regelintervallet innan ni testar.

Steg 2: Anslut BrowserAct-körning av uppgift

BrowserAct-arbetsflödet kör GitHub-sökningen efter bidragsgivare och returnerar rått utdata från uppgiften.

  1. Öppna Launch Workflow Task och ställ in Workflow ID till [YOUR_ID].
  2. Konfigurera Input Parameters såsom Language = Python, Location = Berlin, Total_Page = 2 och Public_Repositories = 5.
  3. Inloggningsuppgifter krävs: Anslut era browserActApi-inloggningsuppgifter i Launch Workflow Task.
  4. Öppna Retrieve Task Details och ställ in Task ID till {{ $json.id }}, Operation till getTask, Wait For Finish till true, Max Wait Time till 600 och Polling Interval till 20.
  5. Inloggningsuppgifter krävs: Anslut era browserActApi-inloggningsuppgifter i Retrieve Task Details.

⚠️ Vanlig fallgrop: Om Workflow ID lämnas som [YOUR_ID] kommer BrowserAct inte att starta och arbetsflödet kommer inte att returnera några resultat.

Steg 3: Sätt upp datatransformering och AI-poängsättning

Utdata från uppgiften parsas till items, poängsätts sedan med AI-agenten och struktureras för efterföljande uppdateringar.

  1. I Transform JSON Script, behåll JavaScript-koden som parsar $input.first().json.output.string till flera items.
  2. Öppna Candidate Scoring Agent och ställ in Text till den angivna prompten som innehåller uttryck som {{ $json.Summary }}, {{ $json.Followers }} och {{ $json.TotalRepo }}.
  3. Säkerställ att Candidate Scoring Agent har Has Output Parser aktiverat och att Structured Result Parser är kopplad som output parser.
  4. Öppna Structured Result Parser och ställ in JSON Schema Example till den angivna schema-mallen.
  5. Öppna Gemini Conversation Model och koppla den som språkmodell för Candidate Scoring Agent.
  6. Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Conversation Model. Structured Result Parser använder den överordnade agenten och tar inte emot inloggningsuppgifter direkt.

Transform JSON Script ger ett fel om $input.first().json.output.string saknas—verifiera att BrowserAct-utdatavägen matchar den här förväntade strukturen.

Steg 4: Konfigurera utdatauuppdateringar och notifieringar

Poängsatta kandidater skrivs till Google Sheets och en Slack-notifiering skickas efter uppdateringar.

  1. Öppna Update Spreadsheet Row och ställ in Operation till appendOrUpdate.
  2. Ställ in Document ID till [YOUR_ID] och Sheet Name till [YOUR_ID].
  3. Mappa kolumner till uttryck: URL = {{ $json.output.URL }}, Name = {{ $json.output.Name }}, Score = {{ $json.output.Score }}, Folowers = {{ $json.output.Folowers }}, Location = {{ $json.output.Location }}, TotalRepo = {{ $json.output.TotalRepo }}.
  4. Ställ in Matching Columns till Name så att uppdateringar matchar befintliga rader.
  5. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Update Spreadsheet Row.
  6. Öppna Notify Slack Channel och ställ in Text till GitHub Contributors Updated, och välj sedan er Slack-kanal.
  7. Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter i Notify Slack Channel.

⚠️ Vanlig fallgrop: Om kolumnnamnen i arket inte exakt matchar Name, Location, TotalRepo, Folowers, URL och Score kan uppdateringen misslyckas eller skriva tomma värden.

Steg 5: Lägg till varningar för felhantering

Arbetsflödet skickar fel vid hämtning av uppgift till en Slack-varning för bättre insyn.

  1. Bekräfta att Retrieve Task Details använder felutgången för att ansluta till Post Error Alert.
  2. Öppna Post Error Alert och ställ in Text till BrowserAct Workflow Faces Problem.
  3. Välj lämplig Channel där felvarningar ska visas.
  4. Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter i Post Error Alert.

Fel i Retrieve Task Details routas utan att stoppa arbetsflödet tack vare konfigurationen för felutgången.

Steg 6: Testa och aktivera ert arbetsflöde

Verifiera varje del av automatiseringen innan ni aktiverar den med ett skarpt schema.

  1. Klicka på Execute Workflow för att köra Scheduled Automation Trigger manuellt.
  2. Bekräfta att Launch Workflow Task och Retrieve Task Details returnerar en uppgift med en output.string-payload.
  3. Verifiera att Transform JSON Script ger flera items och att Candidate Scoring Agent returnerar strukturerade resultat via Structured Result Parser.
  4. Kontrollera att Update Spreadsheet Row skriver eller uppdaterar rader och att Notify Slack Channel postar GitHub Contributors Updated.
  5. Om det behövs, tvinga fram ett fel i Retrieve Task Details för att validera notifieringar i Post Error Alert.
  6. När allt är verifierat, växla arbetsflödet till Active för att köra enligt schema.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • BrowserAct-uppgifter kan löpa ut eller kräva rätt behörigheter i workspace. Om det skapar fel, kontrollera först din BrowserAct API-nyckel och BrowserActs uppgiftshistorik.
  • Om du använder polling med Wait-stil (t.ex. “get details” efter att du startat en scrape) varierar handläggningstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din rekryteringsrubrik och “hur bra ser ut” tidigt, annars kommer du justera output för evigt.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för GitHub-rekrytering?

Cirka en timme om du redan har BrowserAct, Sheets och Slack på plats.

Behöver jag kodkunskaper för att automatisera GitHub-rekrytering?

Nej. Du kopplar främst konton och justerar sökkriterierna och kolumnerna i arket. Det hjälper att känna sig bekväm med att granska ett steg för att “transformera JSON”, men du bygger ingen app.

Är n8n gratis att använda för det här arbetsflödet för GitHub-rekryteringsautomation?

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 Gemini-användning, vilket oftast är några cent per batch beroende på hur många profiler du poängsätter.

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (managed, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för GitHub-rekryteringsautomation för att poängsätta olika roller (som frontend vs. data)?

Ja, och det är ärligt talat den delen du bör anpassa först. Du kan justera AI-agentens poängsättningsrubrik för att vikta olika signaler (till exempel lägga mer vikt på TypeScript-repos för frontend, eller data-verktyg och notebooks för dataroller). Om du ändrar vilka fält du vill spara, uppdatera Structured Result Parser så att den matchar. Mappa sedan de nya fälten i Google Sheets-noden “Update Spreadsheet Row” så att arket fortsätter vara sorteringsbart.

Varför misslyckas min Google Sheets-anslutning i det här arbetsflödet?

Oftast handlar det om utgångna Google-inloggningar eller fel behörigheter till kalkylarket. Anslut Google Sheets igen i n8n, bekräfta att kontot kan redigera målfilen och dubbelkolla att sheet-/fliknamnet matchar vad noden förväntar sig. Om det bara misslyckas ibland kan du också slå i rate limits när många kandidater hanteras samtidigt.

Hur många kandidater kan den här automationen för GitHub-rekrytering hantera?

Om du kör egen drift beror det mest på serverstorlek och hur snabbt BrowserAct och AI-modellen returnerar resultat.

Är den här automationen för GitHub-rekrytering bättre än att använda Zapier eller Make?

För det här användningsfallet: oftast ja, eftersom du gör mer än att flytta data mellan två appar. Du behöver schemalagda körningar, polling av uppgifter (“starta scrape” och sedan “hämta detaljer”), transformationslogik och strukturerad AI-output som håller sig konsekvent när du skalar. n8n hanterar förgrening och parsning utan att varje extra steg blir en prischock, och egen drift gör körvolymen flexibel. Zapier eller Make kan fortfarande fungera om du förenklar flödet och accepterar mindre kontroll över poängsättningen. Vill du ha hjälp att välja, prata med en automationsexpert.

När det här väl rullar blir din “sourcing” granskning och action, inte flikhamstring och copy-paste. Arbetsflödet tar hand om repetitiva moment. Du tar hand om rekryteringssamtalen.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal