Första gallringen låter enkel – tills den inte är det. LinkedIn-länkar dyker upp i chattar, sammanhanget försvinner, olika granskare fokuserar på olika saker och plötsligt blir din “snabba koll” en rörig tråd som ingen litar på.
Det här är den typen av kaos som saktar ner rekryterare, men rekryterande chefer känner av det också. Även en småföretagare som sköter sin egen rekrytering fastnar. En automation för LinkedIn-gallring ger dig konsekventa sammanfattningar, en gemensam historik i Google Sheets och tydligare nästa steg – utan att jaga meddelanden.
Du skickar en LinkedIn-URL i Telegram. Flödet granskar den mot dina jobbannonser, poängsätter matchningen och postar en strukturerad sammanfattning till teamet. Här är hur det ser ut i praktiken, och vad du behöver för att köra det.
Så fungerar den här automationen
Se hur den löser problemet:
n8n Workflow Template: Telegram + Google Sheets, LinkedIn-sammanfattningar
flowchart LR
subgraph sg0["Receive Telegram Msg to Recruiter Bot Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Download Selected JD", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "JD Matching Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Detailed JD Matching Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Download Selected JD1", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Extract from File1", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Access JD Files", pos: "b", h: 48 }
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/>Transform for Multiple JDs"]
n9["<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/>Match Selected JD Name with .."]
n10@{ icon: "mdi:robot", form: "rounded", label: "Recruiter Scoring Agent", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser-1", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser-3", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser-2", pos: "b", h: 48 }
n14["<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/telegram.svg' width='40' height='40' /></div><br/>Receive Telegram Msg to Recr.."]
n15["<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/>Extract LinkedIn Profile Inf.."]
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "LinkedIn Profile Ready?", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Wait for LinkedIn Profile", pos: "b", h: 48 }
n18["<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/telegram.svg' width='40' height='40' /></div><br/>Reply with Confirmation Msg"]
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Increment Loop Counter", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Initialize Loop Counter to P..", pos: "b", h: 48 }
n21["<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/>Restore Loop Counter"]
n22@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Checked 10x for LinkedIn Pro..", pos: "b", h: 48 }
n23["<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/>Check LinkedIn Profile Extra.."]
n24["<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 Fully Extracted LinkedIn.."]
n25["<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/telegram.svg' width='40' height='40' /></div><br/>Reply with Error/Try Again Msg"]
n26@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Key LinkedIn Profile Data", pos: "b", h: 48 }
n27@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set JD Data", pos: "b", h: 48 }
n28@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Selected JD Format", pos: "b", h: 48 }
n29["<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/telegram.svg' width='40' height='40' /></div><br/>Send Msg to Internal Talent .."]
n30["<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/telegram.svg' width='40' height='40' /></div><br/>Send Review Completed Msg to.."]
n31@{ icon: "mdi:brain", form: "rounded", label: "Gemini 2.5 Pro-3", pos: "b", h: 48 }
n32@{ icon: "mdi:brain", form: "rounded", label: "Gemini 2.5 Pro-2", pos: "b", h: 48 }
n33@{ icon: "mdi:brain", form: "rounded", label: "Gemini 2.5 Pro-1", pos: "b", h: 48 }
n34@{ icon: "mdi:swap-vertical", form: "rounded", label: "Gather and Set Final Data", pos: "b", h: 48 }
n35["<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"]
n36@{ icon: "mdi:database", form: "rounded", label: "Add Candidate Analysis in GS..", pos: "b", h: 48 }
n37@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Start Msg Sent + Valid Linke..", pos: "b", h: 48 }
n38@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Spam Check: Sent 4 LinkedIn..", pos: "b", h: 48 }
n39["<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/telegram.svg' width='40' height='40' /></div><br/>Reply - Too Many LinkedIn UR.."]
n40@{ icon: "mdi:database", form: "rounded", label: "Get All Rows Matching Telegr..", pos: "b", h: 48 }
n41@{ icon: "mdi:cog", form: "rounded", label: "Count Rows Matching Telegram..", pos: "b", h: 48 }
n42["<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/>Grab Clean LinkedIn URL"]
n43@{ icon: "mdi:swap-horizontal", form: "rounded", label: "JD Match w/Telegram Msg?", pos: "b", h: 48 }
n35 --> n34
n27 --> n4
n7 -.-> n2
n4 --> n3
n4 --> n5
n33 -.-> n2
n32 -.-> n3
n31 -.-> n10
n0 --> n28
n2 --> n43
n6 --> n27
n1 --> n0
n21 --> n16
n5 --> n6
n19 --> n22
n28 --> n10
n42 --> n15
n16 --> n24
n16 --> n17
n10 --> n35
n43 --> n1
n43 --> n8
n34 --> n36
n17 --> n19
n3 --> n9
n11 -.-> n2
n13 -.-> n3
n12 -.-> n10
n8 --> n4
n18 --> n29
n26 --> n2
n26 --> n35
n36 --> n30
n15 --> n20
n41 --> n38
n9 --> n10
n14 --> n37
n22 --> n23
n40 --> n41
n38 --> n42
n38 --> n18
n38 --> n39
n23 --> n21
n24 --> n26
n37 --> n40
n37 --> n25
n20 --> n23
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 n14 trigger
class n2,n3,n10,n11,n12,n13 ai
class n31,n32,n33 aiModel
class n16,n22,n37,n38,n43 decision
class n36,n40 database
class n15,n23,n24 api
class n8,n9,n21,n42 code
classDef customIcon fill:none,stroke:none
class n8,n9,n14,n15,n18,n21,n23,n24,n25,n29,n30,n35,n39,n42 customIcon
Utmaningen: konsekvent LinkedIn-gallring utan kaos
De flesta team misslyckas inte med rekrytering för att de saknar kandidater. De misslyckas för att den tidiga gallringen är inkonsekvent och utspridd. Någon släpper en LinkedIn-URL i Telegram, en person skummar den på mobilen, en annan öppnar den senare på datorn – och båda går därifrån med olika slutsatser. Sedan börjar rundorna: “Hade de verkligen X?”, “Vilken roll söker de?”, “Var lade vi den profilen nu igen?” Under tiden får bra kandidater vänta och teamet lägger verklig tid på att göra om samma granskning.
Det eskalerar snabbt. Här är var det faller isär.
- Granskare använder olika mentala checklistor, så “gallring” blir tyckande i stället för en repeterbar process.
- Matchning mot jobbannons gissas ofta utifrån en snabb blick på rubriken, vilket leder till fel pipeline och bortkastade intervjuer.
- Telegram-trådar begraver viktig kontext, så du öppnar profiler igen och ställer samma frågor senare.
- Manuell loggning i Google Sheets hoppas över när det blir stressigt, så du tappar spårbarheten och kan inte förklara beslut tydligt.
Lösningen: Telegram till AI-gallringssammanfattning + logg i Google Sheets
Det här flödet gör ett enkelt Telegram-meddelande till en strukturerad, repeterbar gallringsprocess. En kandidat (eller sourcer) skickar en LinkedIn-profil-URL till din Telegram-bot. Automation validerar länken, stoppar uppenbar spam genom att begränsa antal inskick per användare och bekräftar direkt mottagandet så ingen undrar om det “gick igenom”. Sedan hämtar den fullständig LinkedIn-profildata via Apify, väntar tills extraktionen är klar (med automatisk polling) och skickar den rensade profilen till AI-agenter som matchar kandidaten mot den bäst passande jobbannonsen från din Google Drive-mapp. Till sist skapas en rekryterarstilad screeningrapport: styrkor, svagheter, risk-/reward-faktorer samt en 0–10 matchningspoäng med motivering. Allt loggas i Google Sheets med ett unikt inskick-ID, och er interna Telegram-grupp får en formaterad sammanfattning att granska tillsammans.
Flödet startar i Telegram med en LinkedIn-URL. I mitten extraherar Apify profildata och AI-agenterna hanterar JD-matchning och screeninganalys. Resultatet hamnar på två ställen: en korrekt formaterad Google Sheets-tracker för spårbarhet, och en Telegram-sammanfattning för snabba teambeslut.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du kommer se |
|---|---|
|
|
Effekt i verkligheten
Säg att teamet granskar 20 LinkedIn-profiler i veckan från Telegram. Manuellt är det lätt att lägga cirka 10 minuter på att gå igenom profilen, och ytterligare 5 minuter på att skriva en sammanfattning och logga den i Google Sheets – ungefär 5 timmar i veckan. Med det här flödet blir “människotiden” att skicka en URL (cirka en minut) och läsa sammanfattningen i er interna Telegram-grupp. Skrapning och AI-analys kör i bakgrunden, så du får oftast tillbaka de timmarna utan att behöva stressa fram beslut.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Telegram för att ta emot LinkedIn-URL:er och notifiera team.
- Google Sheets för att lagra gallringsloggar och ID:n.
- Apify API-token (hämtas i Apify-kontoinställningar).
- Google Gemini API-nyckel (hämtas i Google AI Studio).
Svårighetsnivå: Medel. Du kopplar konton, klistrar in några API-tokens och uppdaterar mapp-/chatt-ID:n.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
Telegram-meddelandet triggar körningen. En användare skickar en LinkedIn-profil-URL (och ofta ett rollnamn) till din Telegram-bot, som validerar URL:en och kontrollerar spamregeln (max 3 inskick per Telegram-användarnamn).
Profildata extraheras och rensas. Flödet anropar Apify för att skrapa LinkedIn-profilen och pollar sedan upp till 10 gånger (med cirka 15 sekunder mellan) tills den berikade profildatan är klar. Om skrapningen tar längre tid väntar det i stället för att tyst misslyckas.
AI matchar kandidaten mot rätt JD. Den kontrollerar först rollen som nämns i Telegram. Om den saknas eller är vag faller den tillbaka på LinkedIn-innehållet och väljer upp till tre möjliga matchningar mot jobbannonserna i din Google Drive-mapp, och snävar sedan ner till en.
Screeningresultaten går till Sheets och er teamchatt. En rapport i rekryterarformat genereras (styrkor, svagheter, risk/reward, matchningspoäng med motivering), loggas i Google Sheets med ett unikt inskick-ID och sammanfattas i er interna Telegram-grupp för snabb granskning.
Du kan enkelt ändra spamgränsen för att tillåta fler inskick, eller skärpa urvalskriterierna för att fokusera på kulturmatchning eller tekniskt djup utifrån era behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Se upp för
- Telegram-botens behörigheter kan ställa till det i gruppchattar. Om notifieringar inte syns, bekräfta att chatt-ID:t är korrekt och att boten får posta meddelanden.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompterna i AI-noder är generiska. Lägg in ert tonalitet/varumärkesröst tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka en timme om du redan har dina tokens och din Google Drive-mapp redo.
Ja, men någon behöver vara bekväm med att klistra in API-nycklar och uppdatera några ID:n. Ingen kodning – bara noggrann konfiguration.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna in Apify-kostnader för skrapning (ofta några dollar i månaden vid modest volym) och eventuell Gemini-användning om du överskrider gratisnivån.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Du kan höja eller sänka inskick-gränsen genom att redigera noden för spamkontroll (den som begränsar användare till 3 inskick). För matchning uppdaterar du systemmeddelandet i “JD Matching Agent” och “Detailed JD Matching Agent” så att den viktar det du bryr dig om (nuvarande titel, bransch, ledarskap, tekniskt djup). För bättre screeningkvalitet justerar du prompten i “Recruiter Scoring Agent” för att lägga till era must-haves och deal-breakers, och behåller sedan samma output-struktur så att loggen i Google Sheets förblir korrekt formaterad.
Oftast är det en felaktig bot-token eller att användaren aldrig skickade /start till boten. I gruppchattar kan det också vara fel chatt-ID (grupp-ID:n är ofta negativa tal) eller att boten saknar behörighet att posta. Om boten svarar i privat chatt men inte i den interna talanggruppen, kontrollera gruppnotifieringsnoderna och bekräfta att boten faktiskt är med i den gruppen.
På n8n Cloud Starter brukar det fungera bra för ett litet team som granskar ett jämnt flöde varje vecka. Om du kör egen hosting finns ingen körningsgräns (det beror mest på din server) och den största flaskhalsen i det här flödet blir Apify-extraktionstid plus AI:ns rate limits. I praktiken fungerar det bäst som en pipeline med “en profil in, en sammanfattning ut”, och du kan köa många inskick så länge du inte slår i API-gränser.
Ofta, ja. Det här flödet har polling, grenlogik och AI-beslut i flera steg, och n8n hanterar den typen av flöde utan att tvinga fram klumpiga workarounds. Egen hosting spelar också roll om din gallringsvolym spikar, eftersom du inte betalar per litet delsteg på samma sätt som många verktyg prissätter. Zapier eller Make kan däremot vara helt rätt för lätta automationer som “logga en länk i ett sheet”. Om du vill göra en snabb rimlighetskoll innan du bygger, prata med en automationsexpert.
När det här väl rullar slutar teamet diskutera vad de tror att de såg på LinkedIn och börjar utgå från samma strukturerade sammanfattning. Sätt upp det en gång, och låt sedan flödet göra den repetitiva delen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.