🔓 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

Google Gemini + Gmail, tailored cover letters fast

Lisa Granqvist Partner Workflow Automation Expert

You find a job that looks perfect, then lose an hour stitching together a cover letter that still feels… generic. Tomorrow you do it again. And again.

This Gemini cover letters automation hits job seekers hardest, but recruiters running internal mobility and career coaches supporting clients feel the same drag. The outcome is simple. You get one strong match and a tailored cover letter emailed to you, without bouncing between tabs.

Below, you’ll see how the workflow turns your CV and preferences into a ready-to-send message, what you need to run it, and the places people usually get stuck.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Gemini + Gmail, tailored cover letters fast

The Problem: Tailoring applications takes forever

Most applications fail in the same boring way: the role is decent, your experience is relevant, but your message reads like it was sent to 50 other companies. Fixing that means reading the job post carefully, pulling the right achievements from your CV, and matching tone to the company. It’s a lot of context switching. Worse, you do all that work before you even know if the job is worth your time. After a week of applying, the fatigue is real, and quality drops.

The friction compounds. Here’s where it breaks down in real life.

  • Finding a “good fit” job can take about 30 minutes of scrolling and filtering per role.
  • You end up reusing the same paragraphs, so hiring managers spot the template instantly.
  • Copy-paste mistakes happen at the worst time, like the wrong company name in the first line.
  • Even when you write a solid letter, it lives in a doc somewhere and never becomes a clean, sendable email.

The Solution: One best match + a ready-to-send cover letter

This workflow starts with a simple n8n form where you submit your CV (PDF) and your job preferences like location, role type, salary target, and the email you want results delivered to. n8n extracts the text from your CV, organizes the details into structured fields, and hands that context to an AI “Job Hunter Agent.” That agent uses Google Gemini plus SerpAPI (Google Jobs search results) to hunt for a single strong match instead of dumping a long list on you. Then it drafts a bespoke cover letter based on your background and the actual job description. Finally, n8n builds a nicely formatted HTML email and sends it via Gmail to your inbox.

It begins when your form submission arrives. From there, the agent searches, selects the best match, and writes the letter using your CV as grounding. Gmail delivers one clean email per role, complete with a summary and tips so you can apply faster without sounding rushed.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you apply to 5 roles in a week. Manually, it’s often about 30 minutes to find a worthwhile posting, then another 45 minutes to tailor the letter and turn it into an email, so you’re spending roughly 6 hours weekly. With this workflow, you submit the form once per role (about 10 minutes including attaching your PDF) and wait for the agent to return the match and letter (often around 10–20 minutes). That’s about 4 hours back in a normal week, with better consistency.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Gemini to draft and reason about fit.
  • SerpAPI to pull Google Jobs search results.
  • Gmail account to send the formatted email.
  • Gemini API key (get it from Google AI Studio/Cloud console)

Skill level: Intermediate. You’ll connect credentials, paste keys, and adjust a prompt or two, but you won’t be writing an app.

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

How It Works

Form submission kicks things off. You upload your resume PDF and enter job preferences in the n8n form trigger, so the workflow has the context it needs.

Your CV gets parsed and organized. n8n extracts text from the PDF, then “Assemble Input Fields” turns it into neat fields the agent can actually use (think role history, skills, location, and what you want next).

The agent finds a match and writes the letter. The Job Match Agent uses SerpAPI to search Google Jobs, selects the strongest match, and asks Google Gemini to draft a tailored cover letter grounded in your CV and the job description.

Gmail sends the final package. n8n parses the agent response, builds a clean HTML email (job summary, cover letter, tips), and sends it straight to your inbox.

You can easily modify the job filters to widen or narrow matches based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the user intake form that collects the resume and preferences to start the workflow.

  1. Add and configure Form Intake Trigger as your workflow trigger.
  2. Set Form Title to 🎯 Smart Job Hunter + Cover Letter Generator.
  3. Set Form Description to Upload your CV and let AI find perfect jobs with custom cover letters!.
  4. Create the form fields exactly as defined, including file upload CV/Resume (PDF), dropdowns for Job Type and Work Setting, and the required Email field.

⚠️ Common Pitfall: Ensure the upload field only accepts .pdf to match the parsing configuration in the next step.

Step 2: Parse the Resume and Assemble Inputs

Extract text from the uploaded PDF and normalize all form data into structured fields for the AI agent.

  1. Add Parse Resume PDF and set Operation to pdf.
  2. Set Binary Property Name to CV_Resume__PDF_ to match the uploaded file field.
  3. Add Assemble Input Fields and map assignments using expressions: cvData to {{ $json.text }}, location to {{ $('Form Intake Trigger').item.json['Preferred Location'] }}, workSetting to {{ $('Form Intake Trigger').item.json['Work Setting'] }}, jobType to {{ $('Form Intake Trigger').item.json['Job Type'] }}, salaryExpectation to {{ $('Form Intake Trigger').item.json['Minimum Salary Expectation (Optional)'] || 'Not specified' }}, additionalPreferences to {{ $('Form Intake Trigger').item.json['Additional Preferences (Optional)'] || 'None' }}, and userEmail to {{ $('Form Intake Trigger').item.json['Email'] }}.

Connect Form Intake TriggerParse Resume PDFAssemble Input Fields to match the execution flow.

Step 3: Set Up the AI Job Matching Agent

Configure the AI agent to analyze the resume, search for a job, and produce structured JSON output for the email.

  1. Add Job Match Agent and set Prompt Type to define.
  2. Set Text to the full expression provided: {{ `ANALYZE CV AND FIND JOBS:\n\nCV Content:\n${$json.cvData}\n\nUser Preferences:\n- Location: ${$json.location}\n- Work Setting: ${$json.workSetting}\n- Job Type: ${$json.jobType}\n- Salary: ${$json.salaryExpectation}\n- Additional: ${$json.additionalPreferences}\n\nTASKS:\n1. Extract key info from CV (name, skills, experience, achievements)\n2. Search for 3 best matching jobs using tools\n3. Generate personalized cover letter for each job\n4. Format everything as structured JSON for email template` }}.
  3. Configure the System Message in Job Match Agent with the provided JSON schema and job-search constraints from the workflow.
  4. Connect Gemini Pro Model to Job Match Agent as the language model. Credential Required: Connect your googlePalmApi credentials.
  5. Connect SerpAPI Search Tool to Job Match Agent as an AI tool. Credential Required: Connect your serpApi credentials.

AI tool credentials are added on Gemini Pro Model and SerpAPI Search Tool, not on Job Match Agent.

Step 4: Format the Output and Send the Email

Parse the agent’s JSON, build the HTML email, and send it via Gmail.

  1. Add Parse Agent Response and keep the provided JavaScript Code that cleans markdown fences and parses JSON.
  2. Add Build HTML Message and keep the provided JavaScript Code that generates the styled HTML email and pulls the user email from Assemble Input Fields.
  3. Configure Dispatch Gmail Email with Send To set to {{ $('Form Intake Trigger').item.json.Email }}, Message set to {{ $json.htmlEmail }}, and Subject set to Your Job MATCH!.
  4. Credential Required: Connect your gmailOAuth2 credentials in Dispatch Gmail Email.

⚠️ Common Pitfall: Ensure Dispatch Gmail Email uses the HTML message field ({{ $json.htmlEmail }}) so recipients see the formatted email.

Step 5: Test and Activate Your Workflow

Run a live test to confirm the form intake, AI output parsing, and email delivery are working end-to-end.

  1. Click Execute Workflow and submit the form in Form Intake Trigger with a real PDF resume.
  2. Verify that Parse Resume PDF extracts text and Assemble Input Fields populates all fields.
  3. Confirm Job Match Agent produces valid JSON and Parse Agent Response outputs parsed fields without errors.
  4. Check that Dispatch Gmail Email sends a formatted email and the recipient receives the job match and cover letter.
  5. When successful, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Gmail OAuth2 credentials can expire or need specific permissions. If things break, check the connected account in n8n Credentials and re-auth first.
  • SerpAPI can return different fields depending on the query and location. If the email looks “empty,” inspect the SerpAPI node output and tighten your search terms in the agent prompt.
  • Gemini output quality depends heavily on your system prompt. Honestly, if you don’t add your tone (direct, formal, punchy), you will keep rewriting the same letter over and over.

Frequently Asked Questions

How long does it take to set up this Gemini cover letters automation?

About 30 minutes once you have your API keys ready.

Do I need coding skills to automate Gemini cover letters?

No. You’ll mainly connect accounts and paste a couple of API keys. The only “technical” part is tweaking the agent prompt if you want a different tone.

Is n8n free to use for this Gemini cover letters 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 Gemini and SerpAPI usage costs.

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 Gemini cover letters workflow for multiple job matches instead of one?

Yes, but you’ll adjust the Job Match Agent prompt and the Parse Agent Response code so it returns a list of roles. Common customizations include expanding filters (remote-only, salary floor), generating 2–3 cover letter variants, and adding a short “why this fits” bullet list for each match.

Why is my Gmail connection failing in this workflow?

Usually it’s expired OAuth credentials in n8n. Reconnect the Gmail credential, then re-run the workflow. If it still fails, check that the Gmail account can send mail (some Google Workspace policies restrict this) and confirm the “From” address matches the authorized account.

How many applications can this Gemini cover letters automation handle?

A lot. On n8n Cloud, your limit is mostly your monthly executions and the API rate limits from Gemini and SerpAPI. If you self-host, you’re only constrained by your server capacity and the external APIs; for most solo searches, it will feel unlimited.

Is this Gemini cover letters automation better than using Zapier or Make?

Often, yes. This workflow leans on an AI agent plus custom parsing and HTML email building, which is much easier to control in n8n without paying extra for every branch. Self-hosting also matters if you’re running lots of experiments with prompts. Zapier or Make can be quicker for simple two-step flows, but they get awkward when you need memory, tools (SerpAPI), and richer formatting. If you want help choosing, Talk to an automation expert.

This is the kind of automation that makes job searching feel manageable again. Set it up once, then spend your time on the parts that actually move the needle.

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