Din process för CV-granskning havererar ofta på tråkiga sätt. Filer hamnar i Google Drive, anteckningar blir utspridda, och den där “snabba genomgången” blir till en rörig kedja av DMs, kalkylark och missade uppföljningar.
Rekryterare märker det först, men HR-chefer och rekryteringsansvariga gör det också. Den här Drive Slack-integrationen fixar överlämningen genom att poängsätta CV:n konsekvent, logga dem automatiskt och skicka en strukturerad Slack-sammanfattning till teamet så att besluten kan gå vidare snabbare.
Det här flödet visar hur du går från “nytt CV uppladdat” till “utvärderat, spårat och delat” utan att leva i inkorgen eller copy-pasta in i ännu en tracker.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Google Drive till Slack för snabbare cv-granskning
flowchart LR
subgraph sg0["Application form Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>Application form"]
n1@{ icon: "mdi:cog", form: "rounded", label: "Extract profile", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "json parser", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "gpt4-1 model", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Get position JD", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Download file", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Extract Job Description", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "HR Expert Agent", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Profile Analyzer Agent", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Update evaluation 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/>Map Columns"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Upload to Google Drive", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "gpt-4-1 model 2", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "json 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/sendGrid.svg' width='40' height='40' /></div><br/>Send email to candidate abou.."]
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/slack.svg' width='40' height='40' /></div><br/>Send message via Slack to th.."]
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Candidate qualified?", pos: "b", h: 48 }
n10 --> n9
n10 --> n16
n2 -.-> n8
n3 -.-> n8
n5 --> n6
n13 -.-> n7
n1 --> n8
n4 --> n5
n7 --> n10
n12 -.-> n7
n0 --> n11
n0 --> n1
n16 --> n15
n16 --> n14
n8 --> n4
n6 --> n7
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 n2,n7,n8,n13 ai
class n3,n12 aiModel
class n16 decision
class n4,n9 database
class n10 code
class n14 disabled
class n15 disabled
classDef customIcon fill:none,stroke:none
class n0,n10,n14,n15 customIcon
Utmaningen: CV-granskning som är långsam och inkonsekvent
Granskning låter enkelt tills du gör det i volym. En kandidat skickar in en PDF, en annan laddar upp ett märkligt format, rollerna matchar inte det som står i ditt “Positions”-ark, och plötsligt letar du efter rätt kravprofil samtidigt som du försöker minnas vad du gillade med de tre senaste sökande. Den mentala belastningen är påtaglig. Och när flera personer granskar så glider poängsättningen eftersom alla använder olika standarder (eller värre, inga standarder alls). Under tiden får bra kandidater vänta och teamet tappar tempo.
Det summeras snabbt. Här är var det brister i den dagliga rekryteringen.
- Granskare lägger cirka 10 minuter bara på att öppna filer, skumma och skriva en sammanfattning som ingen läser fullt ut.
- Kravprofiler blandas ihop, vilket gör att kandidater bedöms mot fel krav.
- Poäng och anteckningar hamnar på för många ställen (e-post, Slack, kalkylark), så rapportering och uppföljning blir ett slit.
- Även noggranna team missar starka kandidater eftersom överlämningen från “granskad” till “nästa steg” är inkonsekvent.
Lösningen: AI-poängsättning av CV loggad i Sheets, sammanfattad i Slack
Den här automatiseringen startar när en kandidat skickar in ett formulär med namn, e-post, CV-fil och vald roll. CV:t sparas direkt i rätt Google Drive-mapp för ordning och spårbarhet. Sedan läser flödet CV-innehållet och en AI-baserad “profile analyzer” extraherar konsekvent, strukturerad information (t.ex. kompetenser, erfarenhet, senioritetssignaler och nyckelhöjdpunkter) till ett standardiserat JSON-format. Därefter hämtar flödet rätt kravprofil-PDF genom att slå upp den valda rollen i en Google Sheets-mappningstabell och hämta kravprofilen från Drive. En andra AI-agent utvärderar sedan kandidatprofilen mot just den kravprofilen och tar fram en bedömning du faktiskt kan använda: styrkor, gap, en rekommendation och en poäng.
Därifrån formateras resultaten, läggs till i ett Google Sheet för spårning och routas baserat på kvalificering. Om kandidaten kvalificerar sig får rekryteringsteamet en Slack-sammanfattning. Om inte kan flödet skicka ett artigt svar via SendGrid, så att du inte lämnar folk utan återkoppling.
Vad som förändras: före vs. efter
| Detta elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du granskar 20 kandidater på en vecka för två roller. Manuellt tar en snabb första genomgång ofta runt 15 minuter per kandidat när du väl öppnat CV:t, hittat rätt kravprofil, skrivit en sammanfattning och loggat resultatet (totalt cirka 5 timmar). Med det här flödet blir “människotiden” snarare att läsa Slack-sammanfattningen och den loggade poängen, kanske 2 minuter per kandidat (cirka 40 minuter), plus AI-bearbetning i bakgrunden. Det är flera timmar tillbaka, utan att sänka ribban för granskning.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Drive för att lagra CV:n och kravprofil-PDF:er.
- Google Sheets för att mappa roller och logga utvärderingar.
- Slack för att notifiera rekryteringsteamet med sammanfattningar.
- OpenAI API-nyckel (hämtas i din OpenAI-dashboard).
- SendGrid för att mejla kandidater efter kvalificeringskontroller.
Svårighetsgrad: Medel. Du kopplar konton, sätter mapp- och ark-ID:n och justerar ett par prompts och fält.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
En kandidat skickar in formuläret. Formuläret innehåller namn, e-post, roll och CV-fil. Den enda inskickningen är triggern som startar allt annat.
CV:t lagras och konverteras till användbar text. CV:t laddas upp till en dedikerad Google Drive-mapp /cv, och sedan läser ett extraktionssteg filen så att AI kan utvärdera den (PDF:er fungerar).
AI gör ett rörigt CV till strukturerad data. “Profile Analyzer Agent” använder en OpenAI-chatmodell för att plocka ut konsekventa fält, och en parser för strukturerad output tvingar resultatet till förutsägbart JSON. Det är den här delen som stoppar granskning från att bli fritt formulerat kaos.
Rätt kravprofil hämtas automatiskt. Flödet slår upp vald roll i en Google Sheets-mappningstabell “Positions”, hämtar matchande kravprofil-PDF från Drive-mappen /jd och extraherar texten för utvärdering.
Utvärderingen poängsätts, loggas och routas. “Hiring Evaluation Agent” jämför kandidat mot kravprofil, ett kodsteg sammanställer slutliga output-fält, Google Sheets får en ny rad i utvärderingsloggen och en IF-kontroll routar utfallet till Slack (kvalificerad) eller SendGrid-e-post (inte kvalificerad).
Du kan enkelt ändra tröskelvärdet för kvalificering för att matcha rollens senioritet eller rekryteringsbrådska utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera formulärtriggern
Konfigurera intagsformuläret som samlar in kandidatens uppgifter och deras CV-fil.
- Lägg till och öppna Candidate Intake Form.
- Ställ in Form Title på
Candidate Form. - Ställ in Form Description på
Please ,fill the required fields , and we'll get in touch with you soon !. - Säkerställ att formulärfälten inkluderar Name, Email (typ e-post), CV (fil, obligatorisk, accepterar
.pdf), och Job Role (rullista med era rollalternativ). - Observera att Candidate Intake Form skickar output både till Store CV in Drive och Parse Resume File parallellt.
Steg 2: anslut Google Drive och Google Sheets
Konfigurera lagring för uppladdade CV:n och anslut rollmetadata och uppföljningsarket för utvärdering.
- Öppna Store CV in Drive och ställ in Name på
=cv-{{ $now.toFormat("yyyyLLdd-HHmmss") }}-{{ $json.CV[0].filename }}. - Ställ in Input Data Field Name på
CVoch välj rätt Folder ID för uppladdningar. - Inloggningsuppgifter krävs: anslut era googleDriveOAuth2Api-uppgifter i Store CV in Drive.
- Öppna Retrieve Role Details och konfigurera filteruppslagets värde till
{{ $('Candidate Intake Form').item.json['Job Role'] }}och uppslagskolumnen till Job Role. - Välj kalkylbladet med rollmetadata genom att ange Document ID och Sheet Name (t.ex.
Sheet1). - Inloggningsuppgifter krävs: anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Role Details och Append Evaluation Sheet.
Steg 3: konfigurera CV-tolkning och analys
Extrahera text från CV:t och strukturera den med hjälp av AI-agenten och parsern.
- Konfigurera Parse Resume File med Operation satt till
pdfoch Binary Property Name satt tillCV. - Öppna Resume Analysis Agent och ställ in Text på
=Please extract all relevant information from this candiadte: CV Content: === {{ $json["text"] }} ===. - Säkerställ att Resume Analysis Agent har Has Output Parser aktiverat och är ansluten till Structured JSON Parser.
- I Structured JSON Parser ska ni behålla JSON Schema Example som definierat för att säkerställa en konsekvent output-struktur.
- Inloggningsuppgifter krävs: anslut era openAiApi-uppgifter i OpenAI Chat Model, som är språkmodellen för Resume Analysis Agent.
Steg 4: konfigurera hämtning av kravprofil och AI-utvärdering
Hämta kravprofilfilen, parsa den och utvärdera kandidaten med hjälp av rekryteringsagenten.
- Öppna Fetch JD File, ställ in Operation på
downloadoch ställ in File ID på={{ $json['Job Description'] }}. - Inloggningsuppgifter krävs: anslut era googleDriveOAuth2Api-uppgifter i Fetch JD File.
- Konfigurera Parse JD Document med Operation satt till
pdf. - Öppna Hiring Evaluation Agent och ställ in Text på
=Evaluate the candidate for the following job: --- Job Description --- Position: {{ $('Fetch JD File').item.json['Job Role'] }} Job Description: {{ $('Parse JD Document').item.json.text }} ------------------------ Below is the extracted candidate profile: {{ $('Parse Resume File').item.json.text }}. - Säkerställ att Hiring Evaluation Agent har Has Output Parser aktiverat och är ansluten till Evaluation JSON Parser.
- Inloggningsuppgifter krävs: anslut era openAiApi-uppgifter i OpenAI Chat Model 2, som är språkmodellen för Hiring Evaluation Agent.
pdf-operationen.Steg 5: sammanställ output och konfigurera routning
Bygg det slutliga output-objektet, lagra utvärderingar och routa kvalificerade kandidater.
- Öppna Assemble Output Fields och behåll JavaScript-koden som bygger JSON-payloaden, inklusive
submitted_date: $now.toFormat("yyyyLLdd-HHmmss"). - Observera att Assemble Output Fields skickar output både till Append Evaluation Sheet och Qualification Check parallellt.
- Konfigurera Append Evaluation Sheet med Operation satt till
append, och bekräfta Document ID och Sheet Name (t.ex.Sheet1). - Öppna Qualification Check och verifiera villkoret:
{{ $('Hiring Evaluation Agent').item.json.output.overall_fit_score }}greater than or equal to8.
Steg 6: konfigurera Slack- och e-postnotifieringar
Notifiera rekryteringsteamet för kvalificerade kandidater och skicka ett uppföljningsmejl till dem som inte når tröskelvärdet.
- Öppna Notify Hiring Slack och ställ in Text på den tillhandahållna mallen med variabler som
{{ $json.position }}och{{ $json.overall_fit_score }}. - Inloggningsuppgifter krävs: anslut era slackApi-uppgifter i Notify Hiring Slack.
- Öppna Dispatch Candidate Email, ställ in Subject på
=Update on Your Application for {{ $json.position }}, och To Email på={{ $json.email }}. - Ställ in From Email på
[YOUR_EMAIL]och behåll Content Type somtext/htmlmed den tillhandahållna HTML-mallen. - Inloggningsuppgifter krävs: anslut era sendGridApi-uppgifter i Dispatch Candidate Email.
Steg 7: testa och aktivera ert workflow
Validera processen från start till slut och slå sedan på den för skarp drift.
- Klicka på Execute Workflow och skicka in ett test via Candidate Intake Form med ett PDF-CV och en giltig Job Role.
- Bekräfta att CV:t sparas genom att kontrollera målmappen som används i Store CV in Drive.
- Verifiera att Append Evaluation Sheet lägger till en ny rad med
overall_fit_score,recommendationoch andra fält. - Testa båda grenarna i Qualification Check genom att ändra poängtröskeln eller använda olika CV:n för att trigga Slack- och e-poståtgärder.
- När resultaten ser korrekta ut, växla workflowet till Active för produktionsanvändning.
Se upp med
- Google Drive- och Google Sheets-autentisering kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera sidan Credentials i n8n och bekräfta först att det kopplade Google-kontot har åtkomst till både /jd– och /cv-mapparna.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonalitet/brand voice tidigt, annars kommer du att sitta och redigera output i all evighet.
Vanliga frågor
Vanligtvis på ungefär en timme när dina mappar, ark och nycklar är klara.
Ja. Ingen kodning krävs, men du behöver följa installationsstegen noggrant för autentisering till Google Drive, Google Sheets, Slack och OpenAI.
Ja. n8n har ett gratis alternativ för egen hosting 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 OpenAI API-kostnader (ofta några cent per kandidat, beroende på CV-längd och modell).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Det går. De flesta ändringar görs i de två AI-utvärderingsstegen (Profile Analyzer Agent och Hiring Evaluation Agent) samt i logiken för kvalificeringskontrollen. Vanliga justeringar är att ändra poängsättningsrubrik per roll, justera tröskeln för “kvalificerad”, lägga till utslagsfrågor (som plats eller arbetstillstånd) och skriva om Slack-sammanfattningen så den matchar hur teamet fattar beslut.
Oftast handlar det om behörigheter. Anslut Slack igen i n8n, bekräfta att appen får posta i målkanalen och dubbelkolla att du inte ändrade kanal-ID efter att du kopplade. Om det fungerar i tester men fallerar i skarpa körningar kan rate limits eller workspace-begränsningar också vara orsaken.
Med en typisk n8n Cloud-plan kan du hantera hundratals till tusentals körningar per månad beroende på nivå, och egen hosting tar bort körningsbegränsningen (din server blir gränsen). I praktiken begränsas flödet mer av AI-utvärderingstid och filparsning än av n8n i sig. Om du granskar i stora batchar hjälper köning och throttling för att hålla Google- och Slack-API:erna nöjda.
Ofta, ja, särskilt när du behöver logik i flera steg och strukturerade AI-output. Det här flödet har två separata AI-steg (profile extraction och kravprofilbaserad utvärdering), plus parsning, branching och loggning, vilket blir dyrt eller klumpigt i enklare automationsverktyg. n8n ger också möjlighet till egen hosting, vilket är användbart när granskningsvolymen sticker iväg. Zapier eller Make kan fortfarande vara bra för lätt routing, som “ny formulärinsändning → Slack-meddelande”. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl rullar blir granskning ett repeterbart system i stället för panik. Teamet får strukturerade Slack-sammanfattningar, arket hålls uppdaterat och du slutar tappa starka kandidater på grund av långsam process.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.