🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Telegram + Google Sheets: polished resume images

Lisa Granqvist Partner Workflow Automation Expert

Your resume “content” might be solid, but the presentation turns into a time sink. You tweak spacing, fight templates, export the wrong file type, then someone asks for “just one more version” with a different look.

This Telegram resume images automation hits career coaches and resume writers hardest because you’re producing under deadline. Recruiting teams feel it too when candidates keep sending messy PDFs that need fixing before sharing.

This workflow takes a Telegram message or file and returns a polished resume image, using Google Sheets as the style memory. You’ll see how it works, what you need, and where the biggest time savings show up.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Telegram + Google Sheets: polished resume images

The Problem: Resume formatting and revisions eat your week

Resume work is weirdly repetitive. You collect details from a chat thread, a PDF, a Google Doc, maybe a screenshot. Then you do the “design part” again: align sections, pick a template, adjust spacing, export, send, and wait. The worst part is the back-and-forth because clients don’t ask for “better,” they ask for “more professional,” “more modern,” or “make it look like this example.” Each request forces you to rebuild layout decisions you already made last time.

It adds up fast, especially when you’re juggling multiple people at once.

  • You end up recreating the same styles for every new resume because there’s no reusable “design memory.”
  • Exporting and sending files becomes its own mini-project, and the wrong format (or a broken PDF) triggers another round of edits.
  • Reference designs arrive as images or odd files, which means you either ignore them or spend time reverse-engineering the look.
  • Manual workflows invite small mistakes, like outdated phone numbers, missing roles, or duplicated bullet points after a copy/paste pass.

The Solution: Telegram in, polished resume image out

This workflow turns Telegram into the front door for resume intake and delivery. A Telegram bot receives either plain text (someone pastes their resume details) or a file (PDF or an image reference). Google Gemini classifies what came in, then pulls context and structure so the details aren’t stuck as a messy blob. If there’s a reference design, the workflow standardizes it and has Gemini Vision “read” the style, capturing the layout as a reusable template. Google Sheets becomes your simple library for those templates, so the next resume can match a “Corporate” or “Creative” style on purpose.

From there, an AI agent maps the candidate’s content to the selected layout, another AI agent writes the image-generation prompt, and Gemini renders the final resume image. The workflow sends it back in Telegram quickly, so the request-and-deliver loop feels instant instead of days long.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you handle 5 resumes a week. Manually, it’s common to spend about 45 minutes formatting, then another 30 minutes on exports, tweaks, and “make it match this example” edits, so you’re at roughly 6 hours weekly. With this workflow, intake is a Telegram message (a couple minutes), style selection and rendering happen automatically, and you mostly review and request one adjustment if needed. Realistically, you can cut the process down to about 1 hour per week for touch-ups and final checks.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram to receive requests and deliver images
  • Google Sheets for template storage and structured data
  • Google Gemini API (get it from Google AI Studio / Google Cloud)

Skill level: Intermediate. You’ll connect accounts, map a few fields, and test with real Telegram messages and sample files.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A Telegram message triggers the run. The workflow starts when someone sends your bot resume text, a PDF, or a file link. If it’s not actually a resume request, it can reply normally instead of wasting compute.

The input gets classified and cleaned up. AI validation checks that the message contains enough resume detail to work with. If a file is provided, the workflow fetches it, reads the binary/PDF content, and converts formats when needed so downstream steps don’t choke.

Style is selected (or learned) via Google Sheets. If there’s a reference design image, the workflow converts it (for example SVG to JPG), then Gemini Vision inspects it and saves the layout traits into Google Sheets. If there’s no reference, the “Resume Blueprint Writer” agent picks a stored template based on industry and maps the candidate’s content into that layout.

Gemini renders the resume and Telegram delivers it. A “Visualizer” agent writes a detailed prompt from the blueprint, Gemini generates the final resume image, and the bot sends the result back to the same Telegram chat.

You can easily modify where the finished image goes (Telegram vs. Google Drive) based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Telegram Trigger

This workflow starts when a user sends a Telegram message to your bot.

  1. Add and open Telegram Message Trigger.
  2. Credential Required: Connect your telegramApi credentials.
  3. Keep Updates set to message.
  4. Save the node so n8n registers the webhook.

Tip: Send a test message to your bot after saving the trigger to verify the webhook is reachable.

Step 2: Validate and Route User Input

Classify the incoming text and route to resume processing or chat response.

  1. Open Validate Incoming Text and set Text to {{ $json.message.text }}.
  2. Ensure Has Output Parser is enabled in Validate Incoming Text.
  3. Open Structured Parse Base and keep Auto Fix enabled with the provided JSON schema.
  4. Confirm Gemini Chat Model is connected as the language model for Validate Incoming Text and that credentials are added to Gemini Chat Model, not the parser node.
  5. Configure Route Input Type rules to match Resume, Chat, and NoData using {{ $json.output.Type }}.

Credential Required: Connect your googlePalmApi credentials to Gemini Chat Model.

⚠️ Common Pitfall: Do not add credentials to Structured Parse Base; the API key must be set on Gemini Chat Model.

Step 3: Configure Parallel Branching and User Responses

When input is routed, the workflow either runs a resume-generation branch or sends a conversational response.

  1. Note the parallel execution: Route Input Type outputs to both Execute BrowserAct Flow and Alert Telegram User in parallel.
  2. Open Alert Telegram User and set Text to Ok, I will do it please give me a moment..
  3. Set Chat ID in Alert Telegram User to {{ $('Telegram Message Trigger').item.json.message.chat.id }}.
  4. Open Compose User Reply and set Text to Input type : {{ $json.output.Type }} | User Input : {{ $('Telegram Message Trigger').item.json.message.text }}.
  5. Connect Compose User Reply to Send Text Response for both Chat and NoData outputs.

Credential Required: Connect your telegramApi credentials to Alert Telegram User and Send Text Response.

Credential Required: Connect your googlePalmApi credentials to Gemini Chat Model A, which powers Compose User Reply.

Step 4: Run BrowserAct and Prepare Template Data

Generate resume template data, wipe the sheet, and prepare batch processing for design templates.

  1. Open Execute BrowserAct Flow and set Type to WORKFLOW and Workflow ID to your BrowserAct workflow ID (replace [YOUR_ID]).
  2. Credential Required: Connect your browserActApi credentials to Execute BrowserAct Flow.
  3. Open Wipe Sheet Rows and keep Operation set to clear.
  4. Set Document ID to =parameter.SpreadSheetID == <SpreadSheetID> Or Select From List.
  5. Set Sheet Name to parameter.SheetID == <SheetID> Or Select From List.
  6. Open Split BrowserAct Items and keep the provided JS Code for splitting JSON strings.
  7. Connect Split BrowserAct Items to Batch Iterator to start batch handling.

Credential Required: Connect your googleSheetsOAuth2Api credentials to Wipe Sheet Rows.

⚠️ Common Pitfall: The code in Split BrowserAct Items expects $input.first().json.output.string. Ensure your BrowserAct flow outputs that path.

Step 5: Analyze Resume Designs and Populate Google Sheets

Fetch and analyze template resumes, then store the visual descriptions in Google Sheets.

  1. Open Fetch Resume File and set URL to {{ $json.Resume }}.
  2. Open Convert SVG to JPG and set Output Format to jpg.
  3. Open Inspect Resume Image and keep Resource as image, Input Type as binary, and Operation as analyze.
  4. Open Append Sheet Data and map Resume Details to {{ $json.content.parts[0].text }}.
  5. Ensure Append Sheet Data uses Operation append with the same Document ID and Sheet Name values as Wipe Sheet Rows.
  6. Confirm the batch loop: Append Sheet DataBatch IteratorRetrieve Sheet RowsAggregate Sheet Records.

Credential Required: Connect your cloudConvertOAuth2Api credentials to Convert SVG to JPG.

Credential Required: Connect your googlePalmApi credentials to Inspect Resume Image.

Credential Required: Connect your googleSheetsOAuth2Api credentials to Append Sheet Data and Retrieve Sheet Rows.

Step 6: Generate the Resume Blueprint with AI

Use Gemini to select the best design and generate a structured blueprint based on user data.

  1. Open Aggregate Sheet Records and keep Aggregate set to aggregateAllItemData.
  2. Open Resume Blueprint Writer and set Text to 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. Ensure Resume Blueprint Writer has Has Output Parser enabled.
  4. Open Structured Parse A and keep Auto Fix enabled with the blueprint JSON schema.
  5. Confirm Gemini Chat Model B is connected as the language model for Resume Blueprint Writer, and credentials are added to Gemini Chat Model B, not the parser node.

Credential Required: Connect your googlePalmApi credentials to Gemini Chat Model B.

Tip: The blueprint depends on sheet content. If no rows are found, check that Append Sheet Data is writing properly before running this step.

Step 7: Create and Render the Final Resume Image

Turn the blueprint into an image prompt and render the final resume.

  1. Open Create Image Prompt and set Text to {{ $json.output.Resume }}.
  2. Ensure Create Image Prompt has Has Output Parser enabled and uses Structured Parse B with the image prompt schema.
  3. Confirm Gemini Chat Model C is connected as the language model for Create Image Prompt.
  4. Open Render Resume Image and set Prompt to {{ $json.output.Image_Prompt }}.
  5. Ensure Render Resume Image outputs binary data using the default Binary Property Output of data.

Credential Required: Connect your googlePalmApi credentials to Gemini Chat Model C and Render Resume Image.

⚠️ Common Pitfall: Do not attach credentials to Structured Parse B; the AI credentials belong to Gemini Chat Model C.

Step 8: Configure Output Delivery to Telegram

Send the rendered resume image or a text response back to the user.

  1. Open Send Resume Result and set Operation to sendPhoto.
  2. Set Binary Data to true so the image is sent from Render Resume Image.
  3. Set Chat ID to {{ $('Telegram Message Trigger').first().json.message.chat.id }}.
  4. Open Send Text Response and set Text to {{ $json.output }}.
  5. Set Chat ID in Send Text Response to {{ $('Telegram Message Trigger').item.json.message.chat.id }}.

Credential Required: Connect your telegramApi credentials to Send Resume Result and Send Text Response.

Step 9: Test & Activate

Validate the end-to-end flow, then activate the workflow for production use.

  1. Click Execute Workflow and send a Telegram message with a resume request.
  2. Confirm that Alert Telegram User responds immediately while Execute BrowserAct Flow runs in parallel.
  3. Verify that Send Resume Result delivers an image when input type is Resume and Send Text Response delivers a message for Chat or NoData.
  4. Check the Google Sheet to ensure Append Sheet Data has added rows and Retrieve Sheet Rows can read them.
  5. Once the test passes, toggle the workflow Active to enable production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n credential status and the spreadsheet sharing settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Telegram bot delivery can fail if the generated image is too large or the chat ID changes. If messages stop arriving, confirm the bot still has access to the chat and review the Telegram node error output.

Frequently Asked Questions

How long does it take to set up this Telegram resume images automation?

About an hour if your accounts are already created.

Do I need coding skills to automate Telegram resume images?

No. You’ll mainly connect credentials and paste in prompts/settings for the AI agents.

Is n8n free to use for this Telegram resume images workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Gemini API usage costs, which vary by model and image generation volume.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Telegram resume images workflow for saving outputs to Google Drive instead?

Yes, and it’s a common tweak. Replace the “Send Resume Result” Telegram step with a Google Drive upload so the image is stored automatically, then optionally send the Drive link back in Telegram. You can also export to PDF/PNG by adding a conversion step after rendering. If you want the style library shared across teammates, keep Google Sheets as the template store and just change the final destination.

Why is my Telegram connection failing in this workflow?

Usually it’s the bot token or chat permissions. Confirm the Telegram Bot Token in n8n is correct, then verify the bot is actually in the chat (or that you’re messaging it directly) and hasn’t been blocked. If you recently recreated the bot, the old token will still “look valid” but won’t work. Also check the Telegram node error output in the execution log because it will often show a clear “chat not found” or “forbidden” message.

How many resumes can this Telegram resume images automation handle?

If you self-host n8n, there’s no fixed execution limit, so capacity mainly depends on your server and how fast Gemini renders images. On n8n Cloud, the practical limit is your monthly execution allowance on your plan, plus API rate limits from Gemini and any file conversion service. For many small teams, processing a few dozen resumes a day is realistic as long as you queue batches and don’t try to render everything at once.

Is this Telegram resume images automation better than using Zapier or Make?

Often, yes, because this kind of flow needs branching, file handling, and multi-step AI prompting that gets clumsy (and expensive) in simpler automation tools. n8n is also easier to self-host, which matters if you’re running lots of resume requests. Zapier or Make can still work if you only want a basic “Telegram in, image out” pipeline with minimal logic. If you’re unsure, Talk to an automation expert and we’ll map the cheapest setup that still feels reliable.

Once this is running, the workflow handles the repetitive formatting loop and your “resume delivery” becomes a simple Telegram conversation. Set it up, save your styles in Sheets, and stop rebuilding the same layouts from scratch.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal