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

Telegram + Google Sheets: snygga cv-bilder

Rickard Andersson Partner, Nodenordic.se

Ditt CV-innehåll kan vara stabilt, men presentationen blir en tidstjuv. Du finjusterar mellanrum, brottas med mallar, exporterar fel filtyp och sedan ber någon om ”bara en version till” med en annan look.

Den här automatiseringen för CV-bilder i Telegram slår hårdast mot karriärcoacher och CV-skribenter eftersom du levererar under deadline. Rekryteringsteam känner också av det när kandidater fortsätter skicka röriga PDF:er som behöver fixas innan de kan delas.

Det här flödet tar ett Telegram-meddelande eller en fil och returnerar en polerad CV-bild, med Google Sheets som stilminne. Du får se hur det fungerar, vad du behöver och var de största tidsbesparingarna dyker upp.

Så fungerar automatiseringen

Hela n8n-workflowet, från trigger till slutresultat:

n8n Workflow Template: Telegram + Google Sheets: snygga cv-bilder

Problemet: CV-formatering och revisioner äter upp din vecka

CV-arbete är märkligt repetitivt. Du samlar in detaljer från en chattråd, en PDF, ett Google Doc, kanske en skärmbild. Sedan gör du ”designbiten” igen: linjera avsnitt, välja mall, justera mellanrum, exportera, skicka och vänta. Det värsta är fram och tillbaka, för kunder ber inte om ”bättre”, de ber om ”mer professionellt”, ”mer modernt” eller ”gör så att det ser ut som det här exemplet”. Varje önskemål tvingar dig att bygga om layoutbeslut du redan tog förra gången.

Det summerar snabbt, särskilt när du hanterar flera personer samtidigt.

  • Du slutar med att återskapa samma stilar för varje nytt CV eftersom det inte finns något återanvändbart ”designminne”.
  • Att exportera och skicka filer blir ett eget miniprojekt, och fel format (eller en korrupt PDF) triggar en ny runda med ändringar.
  • Referensdesigner kommer som bilder eller udda filer, vilket gör att du antingen ignorerar dem eller lägger tid på att reverse-engineera utseendet.
  • Manuella flöden bjuder in små misstag, som gamla telefonnummer, saknade roller eller dubbla punktlistor efter copy/paste.

Lösningen: Telegram in, polerad CV-bild ut

Det här flödet gör Telegram till ytterdörren för CV-intag och leverans. En Telegram-bot tar emot antingen ren text (någon klistrar in sina CV-detaljer) eller en fil (PDF eller en bild som referens). Google Gemini klassificerar vad som kom in och hämtar sedan kontext och struktur så att detaljerna inte fastnar som en rörig klump. Om det finns en referensdesign standardiserar flödet den och låter Gemini Vision ”läsa” stilen, och fångar layouten som en återanvändbar mall. Google Sheets blir ditt enkla bibliotek för de mallarna, så nästa CV kan matcha en ”Corporate”- eller ”Creative”-stil med avsikt.

Därefter mappar en AI-agent kandidatens innehåll till vald layout, en annan AI-agent skriver prompten för bildgenerering, och Gemini renderar den slutliga CV-bilden. Flödet skickar tillbaka den i Telegram snabbt, så att request-and-deliver-loopen känns omedelbar i stället för att dra ut på tiden i dagar.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du hanterar 5 CV:n i veckan. Manuellt är det vanligt att lägga cirka 45 minuter på formatering och sedan ytterligare 30 minuter på exporter, småjusteringar och ”gör så att det matchar det här exemplet”-ändringar, så du hamnar på ungefär 6 timmar per vecka. Med det här flödet är intaget ett Telegram-meddelande (några minuter), stilval och rendering sker automatiskt, och du gör mest en granskning och ber om en justering om det behövs. Realistiskt kan du kapa processen till runt 1 timme per vecka för touch-ups och slutkontroller.

Det du behöver

  • 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 förfrågningar och leverera bilder
  • Google Sheets för mallagring och strukturerad data
  • Google Gemini API (hämta det via Google AI Studio / Google Cloud)

Kunskapsnivå: Medel. Du kopplar konton, mappar några fält och testar med riktiga Telegram-meddelanden och exempelfiler.

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

Så fungerar det

Ett Telegram-meddelande triggar körningen. Flödet startar när någon skickar CV-text, en PDF eller en fillänk till din bot. Om det inte faktiskt är en CV-förfrågan kan den svara normalt i stället för att slösa beräkning.

Indatan klassificeras och städas upp. AI-validering kontrollerar att meddelandet innehåller tillräckligt med CV-detaljer att jobba med. Om en fil skickas hämtar flödet den, läser binär-/PDF-innehållet och konverterar format vid behov så att efterföljande steg inte skapar fel.

Stil väljs (eller lärs in) via Google Sheets. Om det finns en referensdesign som bild konverterar flödet den (till exempel SVG till JPG), sedan granskar Gemini Vision den och sparar layout-egenskaperna i Google Sheets. Om det inte finns någon referens väljer agenten ”Resume Blueprint Writer” en sparad mall baserat på bransch och mappar kandidatens innehåll till den layouten.

Gemini renderar CV:t och Telegram levererar. En agent, ”Visualizer”, skriver en detaljerad prompt från blueprinten, Gemini genererar den slutliga CV-bilden och boten skickar resultatet tillbaka till samma Telegram-chatt.

Du kan enkelt ändra vart den färdiga bilden ska gå (Telegram vs. Google Drive) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera Telegram-triggern

Det här arbetsflödet startar när en användare skickar ett Telegram-meddelande till er bot.

  1. Lägg till och öppna Telegram Message Trigger.
  2. Credential Required: Anslut era telegramApi-uppgifter.
  3. Låt Updates vara inställt på message.
  4. Spara noden så att n8n registrerar webhooken.

Tips: Skicka ett testmeddelande till er bot efter att ni har sparat triggern för att verifiera att webhooken går att nå.

Steg 2: Validera och routa användarinput

Klassificera den inkommande texten och routa till antingen cv-bearbetning eller chattsvar.

  1. Öppna Validate Incoming Text och sätt Text till {{ $json.message.text }}.
  2. Säkerställ att Has Output Parser är aktiverat i Validate Incoming Text.
  3. Öppna Structured Parse Base och låt Auto Fix vara aktiverat med det angivna JSON-schemat.
  4. Bekräfta att Gemini Chat Model är ansluten som språkmodell för Validate Incoming Text och att uppgifter är tillagda i Gemini Chat Model, inte i parser-noden.
  5. Konfigurera regler i Route Input Type så att de matchar Resume, Chat och NoData med {{ $json.output.Type }}.

Credential Required: Anslut era googlePalmApi-uppgifter till Gemini Chat Model.

⚠️ Vanlig fallgrop: Lägg inte till uppgifter i Structured Parse Base; API-nyckeln måste sättas på Gemini Chat Model.

Steg 3: Konfigurera parallella grenar och användarsvar

När input routas kör arbetsflödet antingen en gren för cv-generering eller skickar ett konversationellt svar.

  1. Notera den parallella exekveringen: Route Input Type skickar utdata till både Execute BrowserAct Flow och Alert Telegram User parallellt.
  2. Öppna Alert Telegram User och sätt Text till Ok, I will do it please give me a moment..
  3. Sätt Chat ID i Alert Telegram User till {{ $('Telegram Message Trigger').item.json.message.chat.id }}.
  4. Öppna Compose User Reply och sätt Text till Input type : {{ $json.output.Type }} | User Input : {{ $('Telegram Message Trigger').item.json.message.text }}.
  5. Anslut Compose User Reply till Send Text Response för både utgångarna Chat och NoData.

Credential Required: Anslut era telegramApi-uppgifter till Alert Telegram User och Send Text Response.

Credential Required: Anslut era googlePalmApi-uppgifter till Gemini Chat Model A, som driver Compose User Reply.

Steg 4: Kör BrowserAct och förbered mall-data

Generera mall-data för cv, rensa bladet och förbered batchbearbetning för designmallar.

  1. Öppna Execute BrowserAct Flow och sätt Type till WORKFLOW och Workflow ID till ert BrowserAct workflow-ID (ersätt [YOUR_ID]).
  2. Credential Required: Anslut era browserActApi-uppgifter till Execute BrowserAct Flow.
  3. Öppna Wipe Sheet Rows och låt Operation vara inställt på clear.
  4. Sätt Document ID till =parameter.SpreadSheetID == Or Select From List.
  5. Sätt Sheet Name till parameter.SheetID == Or Select From List.
  6. Öppna Split BrowserAct Items och behåll den angivna JS Code för att dela upp JSON-strängar.
  7. Anslut Split BrowserAct Items till Batch Iterator för att starta batchhanteringen.

Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter till Wipe Sheet Rows.

⚠️ Vanlig fallgrop: Koden i Split BrowserAct Items förväntar sig $input.first().json.output.string. Säkerställ att ert BrowserAct-flöde ger utdata på den sökvägen.

Steg 5: Analysera cv-designer och fyll i Google Sheets

Hämta och analysera mall-cv:n och lagra de visuella beskrivningarna i Google Sheets.

  1. Öppna Fetch Resume File och sätt URL till {{ $json.Resume }}.
  2. Öppna Convert SVG to JPG och sätt Output Format till jpg.
  3. Öppna Inspect Resume Image och låt Resource vara image, Input Type vara binary och Operation vara analyze.
  4. Öppna Append Sheet Data och mappa Resume Details till {{ $json.content.parts[0].text }}.
  5. Säkerställ att Append Sheet Data använder Operation append med samma värden för Document ID och Sheet Name som Wipe Sheet Rows.
  6. Bekräfta batchloopen: Append Sheet DataBatch IteratorRetrieve Sheet RowsAggregate Sheet Records.

Credential Required: Anslut era cloudConvertOAuth2Api-uppgifter till Convert SVG to JPG.

Credential Required: Anslut era googlePalmApi-uppgifter till Inspect Resume Image.

Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter till Append Sheet Data och Retrieve Sheet Rows.

Steg 6: Generera cv-blueprint med AI

Använd Gemini för att välja den bästa designen och generera en strukturerad blueprint baserad på användardata.

  1. Öppna Aggregate Sheet Records och låt Aggregate vara inställt på aggregateAllItemData.
  2. Öppna Resume Blueprint Writer och sätt Text till Template Examples : {{ $json.data[0]["Resume Details"] }}, User Resume : {{ $('Validate Incoming Text').first().json.output.Resume }}, Category : {{ $('Validate Incoming Text').first().json.output.Category }} you need to use user resume data for final ouput..
  3. Säkerställ att Resume Blueprint Writer har Has Output Parser aktiverat.
  4. Öppna Structured Parse A och låt Auto Fix vara aktiverat med blueprintens JSON-schema.
  5. Bekräfta att Gemini Chat Model B är ansluten som språkmodell för Resume Blueprint Writer och att uppgifter är tillagda i Gemini Chat Model B, inte i parser-noden.

Credential Required: Anslut era googlePalmApi-uppgifter till Gemini Chat Model B.

Tips: Blueprinten är beroende av innehållet i arket. Om inga rader hittas, kontrollera att Append Sheet Data skriver korrekt innan ni kör det här steget.

Steg 7: Skapa och rendera den slutliga cv-bilden

Gör om blueprinten till en bildprompt och rendera det slutliga cv:t.

  1. Öppna Create Image Prompt och sätt Text till {{ $json.output.Resume }}.
  2. Säkerställ att Create Image Prompt har Has Output Parser aktiverat och använder Structured Parse B med bildprompt-schemat.
  3. Bekräfta att Gemini Chat Model C är ansluten som språkmodell för Create Image Prompt.
  4. Öppna Render Resume Image och sätt Prompt till {{ $json.output.Image_Prompt }}.
  5. Säkerställ att Render Resume Image ger binärdata med standardvärdet för Binary Property Outputdata.

Credential Required: Anslut era googlePalmApi-uppgifter till Gemini Chat Model C och Render Resume Image.

⚠️ Vanlig fallgrop: Koppla inte uppgifter till Structured Parse B; AI-uppgifterna hör till Gemini Chat Model C.

Steg 8: Konfigurera leverans av utdata till Telegram

Skicka den renderade cv-bilden eller ett textsvar tillbaka till användaren.

  1. Öppna Send Resume Result och sätt Operation till sendPhoto.
  2. Sätt Binary Data till true så att bilden skickas från Render Resume Image.
  3. Sätt Chat ID till {{ $('Telegram Message Trigger').first().json.message.chat.id }}.
  4. Öppna Send Text Response och sätt Text till {{ $json.output }}.
  5. Sätt Chat ID i Send Text Response till {{ $('Telegram Message Trigger').item.json.message.chat.id }}.

Credential Required: Anslut era telegramApi-uppgifter till Send Resume Result och Send Text Response.

Steg 9: Testa och aktivera

Validera flödet end-to-end och aktivera sedan arbetsflödet för produktionsanvändning.

  1. Klicka på Execute Workflow och skicka ett Telegram-meddelande med en cv-förfrågan.
  2. Bekräfta att Alert Telegram User svarar direkt medan Execute BrowserAct Flow körs parallellt.
  3. Verifiera att Send Resume Result levererar en bild när input-typen är Resume och att Send Text Response levererar ett meddelande för Chat eller NoData.
  4. Kontrollera Google Sheet så att Append Sheet Data har lagt till rader och att Retrieve Sheet Rows kan läsa dem.
  5. När testet är godkänt, slå på arbetsflödet Active för att aktivera produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Inloggningsuppgifter för Google Sheets kan gå ut eller behöva specifika behörigheter. Om saker slutar fungera, kontrollera först credential-statusen i n8n och delningsinställningarna för kalkylarket.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Leverans via Telegram-bot kan misslyckas om den genererade bilden är för stor eller om chatt-ID:t ändras. Om meddelanden slutar komma fram, bekräfta att boten fortfarande har åtkomst till chatten och granska felutdata från Telegram-noden.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för CV-bilder i Telegram?

Cirka en timme om dina konton redan är skapade.

Behöver jag kodningskunskaper för att automatisera CV-bilder i Telegram?

Nej. Du kommer främst att koppla inloggningsuppgifter och klistra in prompts/inställningar för AI-agenterna.

Är n8n gratis att använda för det här workflowet för CV-bilder i Telegram?

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 med kostnader för användning av Google Gemini API, som varierar beroende på modell och volym för bildgenerering.

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ärt och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här workflowet för CV-bilder i Telegram så att resultat sparas i Google Drive i stället?

Ja, och det är en vanlig justering. Ersätt Telegram-steget ”Send Resume Result” med en uppladdning till Google Drive så att bilden lagras automatiskt, och skicka sedan eventuellt Drive-länken tillbaka i Telegram. Du kan också exportera till PDF/PNG genom att lägga till ett konverteringssteg efter rendering. Om du vill att stilbiblioteket ska delas mellan teammedlemmar, behåll Google Sheets som mallager och ändra bara slutdestinationen.

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

Oftast är det bot-token eller chattbehörigheter. Bekräfta att Telegram Bot Token i n8n är korrekt, och verifiera sedan att boten faktiskt är i chatten (eller att du meddelar den direkt) och inte har blivit blockerad. Om du nyligen skapade om boten kommer den gamla token fortfarande att ”se giltig ut” men fungerar inte. Kontrollera också felutdata från Telegram-noden i körningsloggen, eftersom den ofta visar ett tydligt meddelande som ”chat not found” eller ”forbidden”.

Hur många CV:n kan den här automatiseringen för CV-bilder i Telegram hantera?

Om du hostar n8n själv finns ingen fast körningsgräns, så kapaciteten beror främst på din server och hur snabbt Gemini renderar bilder. På n8n Cloud är den praktiska gränsen din månatliga körningskvot i din plan, plus API-rate limits från Gemini och eventuell filkonverteringstjänst. För många mindre team är det realistiskt att hantera några dussin CV:n per dag så länge du köar batcher och inte försöker rendera allt samtidigt.

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

Ofta, ja, eftersom den här typen av flöde kräver branching, filhantering och AI-promptning i flera steg som blir klumpigt (och dyrt) i enklare automationsverktyg. n8n är också enklare att hosta själv, vilket spelar roll om du kör många CV-förfrågningar. Zapier eller Make kan fortfarande fungera om du bara vill ha en enkel ”Telegram in, bild ut”-pipeline med minimal logik. Om du är osäker, prata med en automationsexpert så tar vi fram den billigaste setupen som ändå känns pålitlig.

När det här väl är igång tar flödet hand om den repetitiva formateringsloopen och din ”CV-leverans” blir en enkel Telegram-konversation. Sätt upp det, spara dina stilar i Sheets och sluta bygga om samma layouter från grunden.

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