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

Google Sheets + Slack: snabbare urval av CV

Rickard Andersson Partner, Nodenordic.se

Din rekryteringspipeline ska inte falla samman bara för att CV:n kommer i batchar. Men när du kopierar detaljer till en tracker, jagar rätt arbetsbeskrivning och försöker hålla intervjuare uppdaterade blir det snabbt rörigt.

Det är här Sheets Slack-automatisering gör skillnad. Rekryterare märker det först, sedan HR-chefer som behöver hålla sig compliant, och ops-ansvarig som fortsätter be om “en enkel statusuppdatering”. Det här flödet förvandlar en hög CV:n till en rankad shortlist plus tydliga Slack-uppdateringar.

Nedan ser du hur flödet körs, vilka resultat du kan förvänta dig och vad du behöver för att sätta upp det utan att bo i kalkylark.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutligt resultat:

n8n Workflow Template: Google Sheets + Slack: snabbare urval av CV

Problemet: CV-granskning blir kalkylarkskaos

Bulk med CV:n låter som ett bra problem att ha, tills du inser vad det gör med din dag. Någon laddar upp 20 filer, hälften heter “resume.pdf”, och den “snabba granskningen” blir ett långsamt maraton av nedladdning, översiktsläsning och försök att jämföra äpplen med päron. Sedan behöver du fortfarande logga beslut någonstans, förklara varför någon går vidare och meddela rekryteringsteamet utan att starta en Slack-tråd som dör direkt. Det värsta är kontextbytena. Läs, kopiera, klistra in, omformatera, upprepa.

Det blir mycket snabbt. Och det handlar inte bara om tid.

  • Att screena 25 CV:n manuellt kan äta upp större delen av en förmiddag, särskilt när du samtidigt spårar kravprofilen för rollen.
  • Rekryteringsteam får inkonsekventa uppdateringar, så de fortsätter fråga efter “senaste shortlisten” i Slack.
  • Anteckningar hamnar på för många ställen, vilket gör spårbarhet och bias-kontroller svåra när någon ifrågasätter ett beslut.
  • När arbetsbeskrivningen ändras mitt i processen hamnar dina utvärderingar tyst ur synk.

Lösningen: Screena CV:n i bulk, poängsätt dem och avisera i Slack

Det här n8n-flödet är byggt för en sak: att göra en hög CV:n till en strukturerad shortlist du kan lita på. Det startar när du laddar upp flera kandidatfiler via ett intake-formulär (senare kan du byta detta mot en webhook eller en ATS-trigger). Varje fil sparas i Google Drive, texten extraheras och skickas genom GPT-4 för att skapa en felfri, strukturerad kandidatprofil. Parallellt hämtar flödet rätt arbetsbeskrivning för vald roll från Google Sheets, laddar ner JD:n från Drive och extraherar även den texten. Därefter jämför en AI-utvärderingsagent profil mot JD och tar fram en matchningspoäng, styrkor, gap och en rekommendation. Slutligen loggas allt i ett spårningsark, och kvalificerade kandidater kan trigga Slack-uppdateringar och valfria mejl.

Flödet börjar med CV-intag och rollval. Sedan bygger det strukturerade profiler och hämtar matchande JD från din Sheets-till-Drive-setup. Efter det sker poängsättning, resultaten läggs till i Google Sheets och Slack får en tydlig notis när någon går igenom din tröskel.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du screenar 30 CV:n för en roll. Manuellt kanske du lägger cirka 8 minuter per CV för att skumma, jämföra mot JD:n och logga anteckningar, vilket blir runt 4 timmar. Med det här flödet laddar du upp batchen en gång (cirka 10 minuter) och låter sedan n8n processa och poängsätta i bakgrunden i ungefär 20 minuter medan du gör något annat. Din shortlist och dina anteckningar hamnar i Google Sheets, och Slack får bara kandidaterna som når din kvalificeringsnivå.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Drive för att lagra CV:n och JD-filer.
  • Google Sheets för att mappa roller och logga utvärderingar.
  • OpenAI API-nyckel (hämta den från OpenAI API-dashboarden).
  • Slack för att avisera rekryteringsteamet automatiskt.
  • SendGrid (valfritt) för att mejla kandidater om utfall.

Kompetensnivå: Medel. Du kopplar konton, verifierar att dina Sheets-kolumner matchar och justerar en kvalificeringströskel.

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

Så fungerar det

CV:n kommer in via ett intake-formulär. Flödet börjar när du skickar in flera filer och väljer vilken roll du rekryterar till. Rollvalet är viktigt, eftersom det avgör vilken arbetsbeskrivning som används för matchningen.

Varje CV lagras och omvandlas till strukturerad data. n8n sparar varje fil i Google Drive, extraherar texten och använder en OpenAI Chat Model plus en strukturerad parser för att plocka ut konsekventa fält (t.ex. erfarenhet, kompetenser, utbildning och rollrelevanta signaler). Skräpinput filtreras bort så att den inte förorenar din shortlist.

Arbetsbeskrivningen hämtas från ditt rekryteringsark. Google Sheets lagrar en mapping av Job Role → JD-fil-länk. n8n laddar ner JD:n från Drive, extraherar texten och slår sedan ihop den med varje kandidatprofil så att alla poängsätts mot samma kriterier.

Poängsättning, loggning och notifieringar sker automatiskt. En utvärderingsagent genererar en matchningspoäng och en skriftlig motivering, därefter mappar kodnoder utdata till ditt utvärderingsark. Om poängen går igenom din tröskel får Slack ett meddelande. Mejl kan också skicka en uppföljning, beroende på din setup.

Du kan enkelt justera kvalificeringströskeln för att vara striktare eller mer generös utifrån dina behov. Se hela implementationsguiden nedan för alternativ för anpassning.

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

Steg 1: konfigurera formulärtriggern

Skapa intake-formuläret som samlar in CV:n och jobbroller för att initiera arbetsflödet.

  1. Lägg till triggern Resume Intake Form och ställ in Form Title till Resume Review Form.
  2. Ställ in Form Description till Upload all applicant resumes below and select the corresponding job positions. Our SmartHR Agent will review each submission and provide a detailed evaluation for your consideration..
  3. Under Form Fields, lägg till ett fält av typen file med etiketten CV och begränsa Accept File Types till .pdf.
  4. Lägg till ett fält av typen dropdown med etiketten Job Role och fyll i de fyra alternativen som visas i noden.

Resume Intake Form skickar output parallellt till både Split Resume Files och Retrieve Job Description.

Steg 2: anslut Google Drive och Google Sheets

Konfigurera lagring för inkommande CV:n och hämta jobbbeskrivningar för utvärdering.

  1. Öppna Store Resume in Drive och ställ in Name till =cv-{{ $now.toFormat("yyyyLLdd-HHmmss") }}-{{$binary.data.fileName}}.
  2. Ställ in Folder ID i Store Resume in Drive till er målmapp i Drive (ersätt [YOUR_ID]).
  3. Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter i Store Resume in Drive och Download JD File.
  4. Konfigurera Retrieve Job Description för att filtrera på Job Role med ={{ $('Resume Intake Form').item.json['Job Role'] }} och ställ in Document ID till ert Positions-ark.
  5. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve Job Description och Append Evaluation Sheet.
  6. I Download JD File, ställ in File ID till ={{ $json['Job Description'] }} och behåll Operation som download.

Split Resume Files skickar output parallellt till både Store Resume in Drive och Extract Resume Text.

Steg 3: förbered CV-text och kandidatprofiler

Extrahera och strukturera CV-data innan utvärdering.

  1. I Split Resume Files, behåll den medföljande JavaScript som delar upp binära inputs baserat på CV_-prefix.
  2. Ställ in Extract Resume Text Operation till pdf för att tolka CV:n till text.
  3. I Candidate Profile Agent, ställ in Text till =Please extract all relevant information from this candiadte: CV Content: === {{ $json["text"] }} ===.
  4. Koppla Structured Profile Parser som output-parser för Candidate Profile Agent och behåll JSON-schemaexemplet som det är.
  5. Öppna OpenAI Chat Model och välj modellen gpt-4.1-mini.
  6. Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Model. Structured Profile Parser är en subnod—lägg i stället till inloggningsuppgifter på den överordnade OpenAI Chat Model.

Steg 4: filtrera profiler och slå ihop med jobbbeskrivningar

Säkerställ att endast giltiga kandidatprofiler går vidare och slå ihop dem med texten från jobbbeskrivningen.

  1. I Filter Invalid Profiles, behåll villkoret som kontrollerar att full_name inte är tomt: ={{ $json.output.full_name }}.
  2. Ställ in Extract JD Text Operation till pdf så att jobbbeskrivningar tolkas till text.
  3. Använd Combine Profile and JD för att slå ihop strömmen med validerade kandidatprofiler med strömmen av extraherad jobbbeskrivning.

Download JD File skickar output till Extract JD Text, och Extract JD Text skickar output till Combine Profile and JD.

Steg 5: bygg AI-pipeline för utvärdering

Förbered ett sammansatt utvärderingsunderlag och kör det genom AI-kedjan för poängsättning.

  1. I Assemble Evaluation Input, behåll den medföljande JavaScript-koden som bygger candidate_profile, job_description och applied_position med $('Resume Intake Form').first().json['Job Role'].
  2. I Hiring Evaluation Agent, ställ in Text till =Evaluate the candidate for the following position ({{ $json.position }}) with job description: {{ $json.job_description }} ------------------------ Below is the extracted candidate profile: {{ $json.candidate_profile.toJsonString() }}.
  3. Säkerställ att Evaluation Output Parser är kopplad till Hiring Evaluation Agent och behåll JSON-schemaexemplet som det är.
  4. Anslut OpenAI Model for Scoring som språkmodell för Hiring Evaluation Agent och välj modellen gpt-4.1-mini.
  5. Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Model for Scoring. Evaluation Output Parser är en subnod—lägg i stället till inloggningsuppgifter på den överordnade OpenAI Model for Scoring.

Steg 6: mappa utvärderingsfält och spara resultat

Normalisera AI-output och lägg till resultaten i ert spårningsark.

  1. I Map Evaluation Fields, behåll Mode som runOnceForEachItem och JavaScript-mappningen för strengths, concerns_or_gaps och submitted_date.
  2. I Append Evaluation Sheet, behåll Operation inställd på append och säkerställ att Sheet Name är Sheet1.
  3. Bekräfta att mappningen för Columns inkluderar overall_fit_score, recommendation, strengths, concerns_or_gaps och final_notes.

Map Evaluation Fields skickar output parallellt till både Append Evaluation Sheet och Qualification Check.

Steg 7: konfigurera kvalificeringsstyrning och aviseringar

Skicka kandidater med hög poäng till Slack och mejla valfritt kandidater baserat på poäng.

  1. I Qualification Check, behåll det numeriska villkoret ={{ $('Hiring Evaluation Agent').item.json.output.overall_fit_score }} gte 8.
  2. I Notify Hiring Slack, ställ in Text till det medföljande meddelandet och välj rätt Channel.
  3. Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter i Notify Hiring Slack.
  4. I Email Candidate Result, ställ in Subject till =Update on Your Application for {{ $json.position }} och To Email till ={{ $json.email }}.
  5. Inloggningsuppgifter krävs: Anslut era sendGridApi-inloggningsuppgifter i Email Candidate Result.

Qualification Check skickar kvalificerade kandidater till Notify Hiring Slack och övriga kandidater till Email Candidate Result.

⚠️ Vanlig fallgrop: Email Candidate Result är inaktiverad i arbetsflödet. Aktivera den om ni vill att automatiserade kandidatmejl ska skickas.

Steg 8: testa och aktivera ert arbetsflöde

Verifiera hela pipelinen end-to-end innan ni aktiverar den för skarp drift.

  1. Klicka på Execute Workflow och skicka in ett testsvar till Resume Intake Form med ett CV i PDF och en giltig Job Role.
  2. Bekräfta att filer sparas av Store Resume in Drive och att textextraheringen lyckas i Extract Resume Text och Extract JD Text.
  3. Kontrollera att Append Evaluation Sheet lägger till en ny rad med overall_fit_score, recommendation och submitted_date.
  4. Verifiera att Slack-aviseringen i Notify Hiring Slack triggas för poäng ≥ 8, och att Email Candidate Result (om aktiverad) skickas för lägre poäng.
  5. När allt är validerat, slå om arbetsflödet till Active för produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Behörigheter i Google Drive kan vara förvånansvärt sköra. Om CV:n laddas upp men JD-nedladdningar misslyckas, kontrollera först delningsinställningarna för Drive-mappen och det anslutna Google-kontot i n8n-credentials.
  • Om du använder Wait-noder eller extern bearbetning kan timingen driva. Om Slack-steget triggar med tomma fält, öka väntetiden något så att AI-utdataparsningen hinner bli klar innan mappningen kör.
  • OpenAI-prompter blir aldrig “klara”. Lägg in din rekryteringsrubrik och dina must-have-kriterier tidigt, annars kommer du fortsätta tvivla på poängen och skriva om anteckningar i efterhand.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Sheets Slack-automatiseringen?

Cirka 45 minuter om dina Google- och Slack-konton är redo.

Behöver jag kunna koda för att automatisera CV-shortlists?

Nej. Du kopplar främst konton och klistrar in dina Sheet-ID:n och mapplatser.

Är n8n gratis att använda för det här Sheets Slack-automatiseringsflödet?

Ja. n8n har ett gratis self-hosted-alternativ 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-kostnader (ofta några cent per CV, beroende på längd).

Var kan jag hosta n8n för att köra den här Sheets Slack-automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Sheets Slack-automatiseringsflödet för olika roller och poängtrösklar?

Ja, och det bör du. De flesta team börjar med att justera poänggränsen i Qualification Check (If-noden “Candidate qualified?”) så att Slack bara får verkligt relevanta kandidater. Du kan också ändra vad som skrivs till Google Sheets i kodsteget för fältmappning och skriva om Slack-meddelandemallen så att den matchar er interna rekryteringsrubrik. Om du vill byta GPT-4 mot en annan modell senare uppdaterar du noderna för OpenAI Chat Model / scoring model och behåller resten av flödet intakt.

Varför misslyckas min Slack-anslutning i den här Sheets Slack-automatiseringen?

Oftast beror det på en utgången Slack-token eller saknade behörighetsscope för att posta till målkanalen. Anslut Slack-credentialn igen i n8n, bekräfta att boten är inbjuden till kanalen och kontrollera körningsloggen i Slack-noden för exakt API-felmeddelande. Om det bara misslyckas på intensiva dagar kan du också slå i Slacks rate limits eftersom för många meddelanden skickas samtidigt.

Hur många CV:n kan den här Sheets Slack-automatiseringen hantera?

På n8n Cloud Starter är du i praktiken begränsad av månatliga körningar, så de flesta team kör batchar utan problem men behöver hålla koll på volymen när rekryteringen ökar. Om du self-hostar finns ingen körningsgräns och din begränsning blir serverkapacitet plus OpenAI-genomströmning. I praktiken hanterar det här flödet ungefär ett CV per minut i en typisk setup, och du kan snabba upp genom att köra mer parallellt om dina API-gränser tillåter.

Är den här Sheets Slack-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver logik i flera steg, filhantering, strukturerad AI-parsning och förgrening baserat på en poäng. n8n klarar det utan att din automatisering blir en skör kedja av premium-tasks. Zapier eller Make kan fortfarande fungera om du bara behöver ett enkelt flöde “ny fil → skicka meddelande”, och du inte bryr dig så mycket om audit-klar loggning. Om din rekryteringsprocess behöver ett försvarbart spår (poäng, motivering och vilken JD som användes) är n8n oftast det lugnare valet, helt ärligt. Prata med en automationsexpert om du vill ha hjälp att välja.

När det här väl rullar slutar CV-screening vara flaskhalsen. Flödet tar hand om det repetitiva granskningsarbetet så att teamet kan lägga tid på faktiska rekryteringsbeslut.

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

Launch login modal Launch register modal