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

Thordata + Google Sheets: CV loggas strukturerat

Rickard Andersson Partner, Nodenordic.se

Det ser enkelt ut att ta emot CV:n tills du sitter med en PDF, en DOCX och en länk till en LinkedIn-liknande profilsida, alla formaterade olika, alla ”brådskande”. Sedan kopierar du och klistrar in namn, mejladresser, titlar, datum, kompetenser. Och ändå frågar någon: ”Kan du skicka igen, fast i ett kalkylark?”

Det är här rekryterare tappar timmar. talent ops-team känner av det när pipelinen blir rörig. Och HR-tech-personer som bygger interna verktyg hamnar i samma städjobb, bara med snyggare etiketter. En bra automatisering för CV-tolkning gör kaoset till felfria rader som du kan filtrera, sortera och lämna över.

Det här flödet tar valfri CV-URL, extraherar innehållet med Thordata, låter OpenAI konvertera det till en JSON Resume-struktur och loggar det prydligt i Google Sheets (och sparar dessutom en JSON-kopia på disk). Du får se vad det löser, vad du behöver och hur du anpassar det till din egen intake-process.

Så fungerar automatiseringen

Se hur det här löser problemet:

n8n Workflow Template: Thordata + Google Sheets: CV loggas strukturerat

Utmaningen: CV-data ser aldrig likadan ut två gånger

CV:n kommer in som ”det kandidaten hade till hands”. PDF:er med spalter. DOCX-filer med konstiga mellanrum. Publika profil-URL:er där extra navigations- och sidtext blandas in i innehållet. Det jobbiga är inte att läsa dem; det är att plocka ut samma fält varje gång och lägga dem någonstans på ett konsekvent sätt. Ett stavfel i en mejladress skapar fel i uppföljningar. Ett missat anställningsdatum gör att din kortlista ser slarvig ut. Och när du gör detta för dussintals sökande blir den mentala belastningen påtaglig, eftersom du hela tiden växlar mellan ”tolka det här CV:t” och ”formatera det för systemet”.

Det eskalerar snabbt. Här är var det brukar fallera.

  • Att kopiera och klistra in grunderna (namn, mejl, telefon, plats) är repetitivt och ändå lätt att göra fel i.
  • Arbetslivserfarenhet är tidstjuven eftersom jobbtitlar och datum sällan linjerar snyggt mellan kandidater.
  • Kompetenser och projekt får inkonsekventa benämningar, så sökningar senare blir gissningslek.
  • Alla bygger sitt eget ”uppföljningsark”, vilket gör att överlämningar blir till förklaringsmöten.

Lösningen: konvertera valfri CV-URL till strukturerade rader

Det här flödet gör ostrukturerat CV-innehåll till ett konsekvent JSON Resume-objekt och loggar sedan fälten där teamet redan jobbar: Google Sheets. Du börjar med en CV-URL (en hostad PDF-länk, en webbsida, en profilsida). Thordatas Universal API hämtar innehållet och tar bort röran (extra HTML och layoutbrus), vilket gör texten enklare för AI att tolka. Därefter konverterar flödet den rensade HTML:en till Markdown, så AI:n ser ett enklare och mer förutsägbart dokument. OpenAI extraherar sedan kandidatdetaljer till ett strukturerat JSON Resume-format (basics, work, education, skills, projects, certifications, languages med mera). Till sist sparar n8n en JSON-kopia på disk och gör en upsert av en rad i Google Sheets för spårning och filtrering.

Flödet startar när du kör det och skickar in CV-URL:en. Därifrån hanterar Thordata extrahering och städning, och sedan omvandlar OpenAI innehållet till en schema-anpassad JSON Resume. Google Sheets blir din sökbara pipeline-logg, medan den sparade JSON:en ger dig en felfri payload för ATS/CRM-integrationer.

Vad som förändras: före vs. efter

Effekt i verkligheten

Säg att du granskar 25 sökande på en dag. Manuellt tar det ofta runt 15 minuter per person att plocka ut grunderna, skriva om arbetslivserfarenheten till ditt föredragna format och mata in kompetenser i ett ark, så du bränner ungefär 6 timmar. Med det här flödet klistrar du in CV-URL:en och låter det köra: kanske 2 minuter av din tid per kandidat, plus några minuters bearbetning i bakgrunden. Det ger cirka 5 timmar tillbaka en intensiv intake-dag, och ditt ark blir faktiskt konsekvent.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Thordata Universal API för att extrahera innehåll från CV-URL:er
  • Google Sheets för att logga kandidater i en tabell
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden)

Svårighetsnivå: medel. Du kopplar in autentisering och mappar några fält, men du behöver inte skriva kod.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödet i arbetsflödet

En CV-URL kickar igång allt. I standardupplägget kör du flödet manuellt och det läser en enda resume_url som du anger. Vill du ha löpande intake senare kan den här triggern bytas mot en webhook eller ett formulärinskick.

Thordata hämtar och städar dokumentet. Flödet skickar URL:en till Thordatas Universal API via en HTTP-request och får tillbaka rensat innehåll (mindre layoutskräp, mer faktisk CV-text), vilket innebär att du inte matar AI:n med irrelevant navigation och styling.

Innehållet förbereds för extrahering. n8n konverterar HTML till Markdown så att CV:t läses som ett rakt dokument. Det gör nästa steg mer tillförlitligt, särskilt när källan är en webbprofilsida.

OpenAI skapar en JSON Resume-payload. Med ett AI-extraheringssteg ihop med en OpenAI-chatmodell mappar flödet CV:t till strukturerade fält som basics, work history, education, skills, projects och certifications. Det är byggt för att linjera med JSON Resume-schemat så att outputen förblir förutsägbar.

Google Sheets blir pipeline-loggen. Flödet gör en upsert av en rad i ditt kalkylark och skriver dessutom JSON-filen till disk för säker lagring och vidare integrationer.

Du kan enkelt byta inputkälla (manuell URL) till en webhook eller en Jotform-inlämning utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera den manuella triggern

Konfigurera den manuella triggern för att starta arbetsflödet vid behov och skicka med CV-URL:en in i flödet.

  1. Lägg till noden Manual Launch Trigger som arbetsflödets trigger.
  2. Öppna Map Input Fields och ställ in värdet för resume_url till https://registry.jsonresume.org/thomasdavis?theme=elegant.
  3. Koppla Manual Launch TriggerMap Input Fields.

Steg 2: Koppla Thordata API-anrop

Hämta CV:ts HTML från den angivna URL:en med Thordata API.

  1. Lägg till Thordata API Call och koppla den efter Map Input Fields.
  2. Ställ in URL till https://universalapi.thordata.com/request och Method till POST.
  3. Aktivera Send Body och ställ in Content Type till form-urlencoded.
  4. Ställ in body-parametrar: url till {{ $json.resume_url }}, type till html, js_render till False, country till in och clean_content till css,js.
  5. Credential Required: Anslut era httpBearerAuth-uppgifter.
Om API:t returnerar tom HTML, bekräfta att URL:en går att nå och att er Thordata-plan tillåter måldomänen.

Steg 3: Sätt upp CV-tolkning och AI

Konvertera HTML till markdown och extrahera strukturerad JSON med AI-extraktorn.

  1. Lägg till HTML to Markdown Convert och koppla den efter Thordata API Call.
  2. Ställ in HTML till {{ $json.html }} och Destination Key till markdown.
  3. Lägg till Resume JSON Extractor och koppla den efter HTML to Markdown Convert.
  4. Ställ in Text till Analyze and Parse the provided resume in JSON Resume format. {{ $json.markdown }} och behåll Schema Type som manual med det angivna JSON-schemat.
  5. Öppna OpenAI Chat Engine och ställ in Model till gpt-4.1-mini.
  6. Credential Required: Anslut era openAiApi-uppgifter i OpenAI Chat Engine. Den här noden levererar språkmodellen till Resume JSON Extractor.
⚠️ Vanlig fallgrop: Lägg inte till OpenAI-uppgifter i Resume JSON Extractor; de måste konfigureras i OpenAI Chat Engine.

Steg 4: Konfigurera utdata-destinationer

Lagra den extraherade JSON:en i ett kalkylark och spara en lokal JSON-fil.

  1. Observera att Resume JSON Extractor skickar utdata till både Binary Payload Maker och Spreadsheet Upsert parallellt.
  2. I Binary Payload Maker, behåll Function Code enligt angivet för att skapa en binär JSON-payload.
  3. Koppla Binary Payload MakerSave JSON to Disk och ställ in File Name till C:\\{{ $json.output.basics.name }}.json med Operation som write.
  4. I Spreadsheet Upsert, ställ in Operation till appendOrUpdate.
  5. Ställ in Document ID till [YOUR_ID] och Sheet Name till gid=0.
  6. Mappa kolumnen json_resume till {{ $json.output.toJsonString() }} och ställ in den som matchande kolumn.
  7. Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter.
⚠️ Vanlig fallgrop: Filsökvägen i Save JSON to Disk är i Windows-format. Uppdatera C:\\{{ $json.output.basics.name }}.json om er n8n-host kör Linux eller Docker.

Steg 5: Testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta tolkning, lagring och filutskrift, och aktivera sedan arbetsflödet för löpande användning.

  1. Klicka på Execute Workflow i Manual Launch Trigger för att köra hela pipelinen.
  2. Verifiera att Thordata API Call returnerar HTML och att HTML to Markdown Convert skapar ett fält markdown.
  3. Bekräfta att Resume JSON Extractor producerar strukturerad JSON-utdata under output.
  4. Kontrollera att Spreadsheet Upsert skriver en ny rad med värdet för json_resume och att Save JSON to Disk skapar JSON-filen.
  5. Växla arbetsflödet till Active för att aktivera användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Saker att se upp med

  • Thordata-autentisering kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s Credentials-panel och status för din Thordata-token.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er ton och era krav tidigt, annars kommer du att redigera output i all oändlighet.

Vanliga frågor

Hur snabbt kan jag implementera den här automatiseringen för CV-tolkning?

Cirka 30 minuter om du redan har dina API-nycklar.

Kan team utan teknisk bakgrund implementera den här automatiseringen för CV-tolkning?

Ja, men någon behöver hantera den initiala konfigurationen av autentisering. Efter det är det mest ”klistra in URL, kör, kontrollera arket”.

Är n8n gratis att använda för det här arbetsflödet för CV-tolkning?

Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med OpenAI API-användning plus vad din Thordata-plan kostar.

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

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 klarar n8n bra. Egen hosting ger obegränsat antal körningar men kräver grundläggande serveradministration.

Hur anpassar jag den här lösningen för CV-tolkning till mina specifika utmaningar?

Du kan byta den manuella triggern mot en Webhook Trigger för att ta emot CV-URL:er från din webbplats, eller koppla in en Jotform Trigger om du redan samlar in kandidatinformation via ett formulär. Steget ”Map Input Fields” är där du lägger till extra indata (jobb-ID, rekryterarnamn, källa). På outputsidan kan du ersätta Google Sheets-upsert med Notion, Airtable eller Supabase via API-noder om Sheets inte är ert system of record.

Varför misslyckas min Thordata-anslutning i det här flödet?

Oftast är det en ogiltig eller utgången bearer token i n8n Credentials. Det kan också fallera om CV-URL:en är blockerad, kräver inloggning eller omdirigerar på ett sätt som API-anropet inte följer, så testa URL:en i en webbläsare och prova en publikt åtkomlig länk.

Vilken kapacitet har den här lösningen för CV-tolkning?

På en typisk n8n Cloud-plan kan du hantera tusentals körningar per månad, vilket räcker för de flesta rekryteringsteam. Om du kör egen hosting finns inget tak för antal körningar, men din server och externa API:er blir de begränsande faktorerna. I praktiken är det här flödet bäst att behandla som ”en kandidat per körning”, och du kan köa batchar om du behöver beta av backlogs.

Är den här automatiseringen för CV-tolkning bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet drar nytta av n8n:s flexibilitet: det är enklare att styra dokumentförberedelser, hantera förgreningar när inputen är märklig och lagra både en kalkylarksrad och en JSON-fil utan nödlösningar. Zapier och Make kan göra delar av det, men så fort du vill ha schema-anpassad extrahering och robustare felhantering blir uppläggen sköra. Dessutom är egen hosting av n8n en stor grej om du hanterar många CV:n och inte vill betala per task för alltid. Om du är osäker, prata med en automationsexpert så verklighetscheckar vi ditt use case.

Felfri CV-data förändrar allt nedströms. När den ligger i Sheets (och är sparad som JSON) slutar rutinjobbet vara din flaskhals, så att du kan fokusera på att faktiskt utvärdera kandidater.

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