Talentsourcing ser enkelt ut tills du sitter med 40 öppna flikar, kopierar profillänkar för hand och fortfarande undrar vad du missade. Ett enda litet misstag i en Boolean-sträng, och du tappar en hel grupp kandidater utan att ens märka det.
Det är här rekryterare känner smärtan först. byråägare som jonglerar flera roller drabbas också, och det gör även HR-chefer som behöver en strukturerad lista snabbt. Den här LinkedIn-sourcing-automationen gör om en kravprofil till en repeterbar sökning och ett Google Sheet som är redo att granskas, oftast på under en timme från start till mål.
Du får se vad workflowet gör, vad du behöver för att köra det och hur du justerar det så att dina sourcinglistor håller jämn kvalitet mellan roller och rekvisitioner.
Så fungerar den här automatiseringen
Se hur det här löser problemet:
n8n Workflow Template: LinkedIn till Google Sheets, sourcinglistor åt dig
flowchart LR
subgraph sg0["Chat Message Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Pause Interval", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Chat Message Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Generate New Worksheet", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Append Sheet Columns", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Initialize Search Page"]
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/>Parse LinkedIn Links"]
n6["<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/>Google Boolean Query"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Compose Boolean Query", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Result Threshold", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Write Results to Sheet", 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/>Advance Page Offset"]
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/>Prepare Column Fields"]
n0 --> n6
n11 --> n3
n2 --> n11
n6 --> n5
n3 --> n4
n1 --> n7
n8 --> n0
n9 --> n10
n7 --> n2
n4 --> n8
n10 --> n8
n5 --> n9
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 n1 trigger
class n7 ai
class n8 decision
class n2,n3,n9 database
class n6 api
class n4,n5,n10,n11 code
classDef customIcon fill:none,stroke:none
class n4,n5,n6,n10,n11 customIcon
Utmaningen: manuell sourcing blir snabbt flikkaos
Du börjar med goda intentioner: en jobbannons, några “måste-ha”-kompetenser och en plan för att bygga en felfri shortlist. Sedan kommer verkligheten. LinkedIn-sök är pilligt, resultaten varierar beroende på filter och plats, och du bygger om samma Boolean-logik om och om igen. Efter det kommer den värsta delen: öppna resultat, kopiera URL:er, klistra in i ett ark och försöka komma ihåg vilka du redan kollat. Det handlar inte bara om tid. Det är mental belastning, kontextbyten och osäkerheten “har jag redan granskat den här personen?”.
Det skenar snabbt. Här är var sourcing oftast fallerar.
- Du lägger cirka 2 timmar per roll bara på att få ihop en vettig första lista med profiler.
- Boolean-strängar glider mellan teammedlemmar, så resultaten går inte att jämföra vecka för vecka.
- Att copy-paste:a profillänkar skapar dubletter och missade kandidater, särskilt när du jobbar snabbt.
- Det finns ingen tydlig spårbarhet för hur du sökte, vilket gör att rekryterande chefer tappar förtroendet för pipelinen.
Lösningen: gör om en kravprofil till ett sourcingsheet automatiskt
Det här workflowet börjar med en enkel input: du klistrar in en jobbannons eller anteckningar om “idealkandidaten” i en chatt-liknande trigger. Därifrån genererar OpenAI en exakt Google X-ray-sträng som träffar LinkedIn-profiler (klassiska site:linkedin.com/in-upplägget), baserat på dina titlar, kompetenser och krav. Automationen skapar sedan ett helt nytt Google Sheet för sökningen, lägger till rätt kolumner och börjar hämta Google-resultat i batchar. Varje batch tolkas för att extrahera URL:er till LinkedIn-profiler, som sedan skrivs till arket. Om du inte har nått ditt måltal ännu (standard är 50), ökar den automatiskt sid-offset och fortsätter, med en kort paus mellan anropen för att hålla det stabilt.
Workflowet startar när du skickar rollkraven via chatt-triggern. OpenAI sätter ihop Boolean-frågan, HTTP-anropet kör Google-sökningen och kodenoder extraherar profillänkar innan de sparas i Google Sheets. När tröskeln är uppnådd är du klar, och din sourcinglista är redan organiserad.
Vad som förändras: före vs. efter
| Det här tar du bort | Effekten du märker |
|---|---|
|
|
Praktisk effekt
Säg att du sourcar för två roller i veckan och vill ha en startlista med 50 profiler per roll. Manuellt lägger de flesta cirka 3 minuter per kandidat på att hitta, öppna, kopiera URL:en och logga den, vilket blir ungefär 2,5 timmar per roll (plus Boolean-pillandet). Med det här workflowet klistrar du in kravprofilen en gång och låter sedan flödet hämta resultat i batchar om 10 tills det når 50; du väntar mest medan arket fylls. Netto: du får vanligtvis tillbaka cirka 4–5 timmar per vecka, och outputen blir mer konsekvent.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra de sourcade profillänkarna.
- OpenAI för att generera Boolean-/X-ray-söksträngen.
- OpenAI API-nyckel (hämta den i inställningarna i ditt OpenAI-konto).
Kompetensnivå: Mellan. Du kommer att klistra in inloggningsuppgifter, ändra en tröskel och lägga till en autentiserad Google header-sträng.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i workflowet
Ett chattmeddelande startar. Du klistrar in jobbannonsen eller profilen för idealkandidaten, på samma sätt som du skulle skicka anteckningar till en kollega.
Söklogiken tas fram åt dig. OpenAI omvandlar inputen till en Google X-ray-fråga som är byggd för att hitta LinkedIn-profiler som matchar dina titlar och kompetenser.
Google-resultat hämtas och tolkas. Ett HTTP-anrop kör sökningen, sedan extraherar workflowet URL:er till LinkedIn-profiler ur svaret och förbereder rader för lagring.
Allt landar i ett nytt Google Sheet. Ett nytt kalkylark skapas automatiskt, kolumner läggs till och workflowet fortsätter paginera genom resultaten tills villkoret “tillräckligt många profiler” är uppfyllt.
Du kan enkelt ändra målantalen (50 som standard) till 30 för nischroller eller 100 för volymrekryteringar, beroende på behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera chatt-triggern
Det här arbetsflödet startar när en användare skickar ett chattmeddelande för att generera en boolesk söksträng för att hitta LinkedIn-profiler.
- Lägg till noden Chat Message Trigger och behåll standardinställningarna.
- Säkerställ att noden Chat Message Trigger är ansluten till Compose Boolean Query enligt körflödet.
Steg 2: anslut Google Sheets och förbered kalkylbladet
Den här delen skapar ett nytt kalkylblad, förbereder kolumnrubriker och lägger till kolumnerna innan sökningar körs.
- Öppna Generate New Worksheet och ställ in Title till
={{ $('Compose Boolean Query').item.json.choices[0].message.content.sheet_name + ' ' + $now }}. - I Generate New Worksheet ställer ni in Operation till
createoch Document till ert måldokument (ersätt[YOUR_ID]). - Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Generate New Worksheet.
- Öppna Prepare Column Fields och behåll JavaScript-koden som
return [{ json: { "linkedin_url": "" }}];. - Öppna Append Sheet Columns, ställ in Operation till
appendoch ställ in Sheet Name till={{ $('Generate New Worksheet').item.json.sheetId }}. - Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Append Sheet Columns.
linkedin_url från Prepare Column Fields.Steg 3: konfigurera AI-generatorn för booleska sökfrågor
AI-noden genererar den booleska Google-sökfrågan och ett kalkylbladsnamn baserat på användarens chattinmatning.
- Öppna Compose Boolean Query och bekräfta att Model är inställd på
gpt-4o-mini. - Ställ in innehållet i användarprompten till
={{ $json.chatInput }}. - Aktivera JSON Output och behåll Simplify inställt på
false. - Inloggning krävs: Anslut era openAiApi-uppgifter i Compose Boolean Query.
choices[0].message.content.search_string och sheet_name att sluta fungera.Steg 4: konfigurera sökloopen och tolkningslogiken
Dessa noder itererar genom Google-resultat, hämtar HTML-sidor, tolkar länkar till LinkedIn-profiler och styr paginering.
- Öppna Initialize Search Page och behåll JavaScript-koden som
return [{ json: { start: 0 } }];för att börja på sida 0. - Öppna Check Result Threshold och säkerställ att villkoret kontrollerar att
={{ $json.start }}är mindre än50. - Öppna Pause Interval och lämna inställningarna som standard för att skapa en fördröjning mellan förfrågningar.
- Öppna Google Boolean Query och ställ in URL till
https://www.google.com/search. - I Google Boolean Query ställer ni in frågeparametern q till
={{ $('Compose Boolean Query').first().json.choices[0].message.content.search_string }}och start till={{ $json.start }}. - I Google Boolean Query ställer ni in headern User-Agent till
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/0.0.0.0 Safari/537.36. - Inloggning krävs: Anslut era httpHeaderAuth-uppgifter i Google Boolean Query.
- Öppna Parse LinkedIn Links och behåll den angivna JavaScript-extraktionen för att tolka URL:er till LinkedIn-profiler från HTML-svaret.
- Öppna Advance Page Offset och behåll JavaScript-koden som ökar
startmed10med hjälp av$('Check Result Threshold').first().json.start.
Steg 4: konfigurera utdata till Google Sheets
Tolkade LinkedIn-URL:er läggs till i kalkylbladet som skapades i början av arbetsflödet.
- Öppna Write Results to Sheet och ställ in Operation till
append. - Mappa kolumnen linkedin_url till
={{ $json.linkedin_url }}. - Ställ in Sheet Name till
={{ $('Generate New Worksheet').first().json.sheetId }}. - Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Write Results to Sheet.
Steg 5: testa och aktivera ert arbetsflöde
Validera hela körningen från chattinmatning till utdata i kalkylbladet, och aktivera därefter arbetsflödet för produktionsanvändning.
- Klicka på Execute Workflow och skicka en exempelbeskrivning av en tjänst in i Chat Message Trigger.
- Bekräfta att Compose Boolean Query returnerar ett JSON-objekt med
search_stringochsheet_name. - Verifiera att ett nytt kalkylblad skapas av Generate New Worksheet och att rader läggs till av Write Results to Sheet.
- Kontrollera att loopen fortskrider via Advance Page Offset tills Check Result Threshold stoppar vid
start < 50. - Växla arbetsflödet till Active för att aktivera automatiserad körning.
Se upp för
- Google Sheets-behörigheter kan blockera skapande av ark. Om det skapar fel, kontrollera först vilket Google-konto som är anslutet och n8n:s credential-scopes för Google Sheets.
- Om du använder Wait-noder eller extern rendering varierar processingtiderna. Öka väntetiden om noder längre ned i kedjan fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera outputar i all evighet.
Vanliga frågor
Vanligtvis cirka 30 minuter när dina konton är anslutna.
Ja. Du kommer inte att skriva kod, men du kommer att klistra in en API-nyckel och uppdatera en tröskelinställning.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-användning (ofta bara några cent per körning).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.
Börja med att ändra profil-målet i villkoret Check Result Threshold (50 är bara en standard). Justera sedan prompten i Compose Boolean Query så att den matchar hur ni rekryterar, till exempel genom att tvinga in “måste-ha”-kompetenser, exkludera konkurrenter eller kräva specifika platser. Om du vill ha ett annat outputformat, redigera fälten som skrivs i Write Results to Sheet (till exempel lägg till en kolumn “Anteckningar” eller en enkel “Granskad?”-flagga). Du kan också byta sökbeteende genom att ändra offset-logiken i Advance Page Offset när du behöver paginera djupare.
Oftast är det en behörighetsfråga i det anslutna Google-kontot, eller en utgången credential i n8n. Återanslut Google Sheets i n8n och bekräfta att kontot kan skapa nya ark i den aktuella Drive-platsen. Om det bara fallerar vid skrivning, kontrollera arknamn och fliknamn som genereras, eftersom ovanliga tecken kan orsaka tysta fel. Bekräfta till sist att du inte har nått en tillfällig Google API-kvot om du kör många roller efter varandra.
Den är byggd för att hämta resultat i batchar om 10 tills den når din tröskel (50 som standard), och du kan höja den om du vill. På n8n Cloud beror kapaciteten främst på planens månatliga körningar, medan egen drift inte har någon fast körningsgräns (servern är begränsningen). I praktiken kör de flesta team detta några gånger i veckan per rekryterare utan problem, så länge Google-anropet inte blir strypt.
För just det här jobbet: oftast ja. Du behöver loopar/paginering, anpassad parsing och ett stoppvillkor (tröskelkontrollen), vilket är klumpigt och dyrt i många “enkla” automationsverktyg. n8n hanterar förgreningar och kodbaserad extraktion snyggt, och egen drift kan göra sourcing i hög volym prisvärd. Zapier eller Make kan fortfarande fungera om du bara vill ha en minimal tvåstegsversion av detta. Om du är osäker, prata med en automationsexpert och få en snabb rekommendation.
När det här väl rullar slutar sourcing vara en “upptagen eftermiddag” och blir ett repeterbart input–output-system. Workflowet tar hand om det repetitiva, och du får tillbaka tiden till samtalen som faktiskt driver rollen framåt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.