Google Drive to Gmail, polished resumes delivered
You start with one “final” resume PDF. Then comes the real work: copying text out, fixing weird formatting, rewriting for a job description, exporting again, naming files, and emailing clients (or yourself) the right version.
This hits career coaches hardest, honestly. But recruiters doing quick rewrites and small agency teams delivering application packs feel it too. Drive Gmail resumes automation turns that messy, manual loop into a predictable delivery process.
Below you’ll see how the workflow takes a PDF from Google Drive, extracts the content, generates an ATS-friendly resume plus a tailored cover letter, converts it to clean PDF, and sends it out through Gmail.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Drive to Gmail, polished resumes delivered
flowchart LR
subgraph sg0["On form submission 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/>On form submission"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get PDF Data Only", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Get PDF Files/File", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Download Retrieval Files/File", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Extract Files/File's Data", pos: "b", h: 48 }
n7["<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/>Data Parser & Cleaner"]
n8["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTML to PDF"]
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Cover Letter Agent", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
n12["<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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n14 --> n10
n14 --> n12
n12 --> n9
n13 --> n14
n1 --> n8
n8 --> n12
n3 --> n7
n10 --> n12
n4 --> n5
n0 --> n4
n0 --> n13
n7 --> n1
n2 -.-> n1
n6 --> n3
n11 -.-> n10
n5 --> n6
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 n1,n10 ai
class n2,n11 aiModel
class n13,n14 decision
class n8 api
class n7 code
classDef customIcon fill:none,stroke:none
class n0,n7,n8,n12 customIcon
The Problem: Resume Customization Is a Version-Control Nightmare
Turning a “general” resume into an ATS-friendly, job-specific resume is deceptively time-consuming. You extract text from a PDF, lose spacing, reformat headings, then realize the job description needs different keywords. Now you’re editing again, exporting again, and trying to remember which file you sent. Even when you do everything right, small errors slip in: mismatched dates, missing bullet points, or a cover letter that sounds like it was written for a different role. That extra back-and-forth costs focus, and it delays delivery when someone is waiting on you.
It adds up fast. Here’s where it usually breaks down.
- A single “quick rewrite” often turns into about 60 minutes of copy, paste, and cleanup.
- PDF formatting is fragile, so ATS-friendly structure gets messed up during edits.
- Cover letters get written last, which means they’re rushed and generic.
- File naming and emailing are manual, so the wrong version gets sent more often than you’d like to admit.
The Solution: Generate ATS-Ready Resume + Cover Letter Automatically
This workflow starts with a simple form submission, then pulls the uploaded resume PDF from Google Drive. It downloads the file, extracts the contents, and cleans the text so the AI has something usable (not broken lines and weird symbols). Next, an AI decision agent uses Google Gemini to produce a more ATS-friendly resume draft aligned to the job you’re targeting, then prepares a polished output version. In parallel, a second AI agent generates a tailored cover letter using the same source details. Finally, the workflow merges the resume and cover letter outputs, converts the formatted HTML into a clean PDF through an HTTP request step (using a document conversion service), and sends an email via Gmail with the finished files.
The workflow begins when a form submission comes in and the PDF is located in Drive. From there it extracts and cleans the resume text, then Gemini generates the new resume and cover letter. At the end, Gmail delivers the finished documents so you don’t have to package anything manually.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you deliver 10 tailored resumes a week for clients. Manually, you might spend about 60 minutes per resume (extract text, rewrite, reformat, export, and email), which is roughly 10 hours weekly. With this workflow, the “work” is submitting the form and letting it pull the PDF from Drive, then waiting for generation and PDF conversion, which is usually about 10 minutes per request. That’s around 8 hours back each week, with fewer version mistakes.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Drive to store and fetch resume PDFs
- Gmail to deliver final documents automatically
- Google Gemini API key (get it from Google AI Studio)
- PDF.co API key (get it from your PDF.co dashboard)
Skill level: Beginner. You’ll connect accounts, paste API keys, and adjust a prompt or two.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A form submission kicks things off. The workflow uses a form trigger so you can standardize what comes in (resume file, job description, role title, company, and any notes you want the AI to follow).
The resume PDF is pulled from Google Drive and converted into usable text. n8n retrieves the file, downloads it, and extracts the contents. Then a small code step parses and cleans the data, which helps the AI avoid garbage-in problems.
Gemini generates the ATS-focused resume and the personalized cover letter. An AI decision agent creates the resume output, and a dedicated cover letter agent produces the letter in a separate pass, so the two documents don’t compete for attention in one prompt.
Everything is packaged and delivered via Gmail. The workflow merges the outputs, converts the formatted content into a polished PDF using an HTTP request to a conversion service, and emails the finished application pack to the right recipient.
You can easily modify Gmail delivery to send to Notion, Slack, or back into Drive based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
This workflow starts when a form is submitted, then immediately splits into two parallel branches for routing and file retrieval.
- Add and open Form Submission Trigger to define the form that will start the workflow.
- Ensure the form fields capture the data needed for downstream routing and file lookup (e.g., file ID, request type).
- Confirm the trigger connection: Form Submission Trigger outputs to both Retrieve PDF Files and Route by Condition in parallel.
Step 2: Connect Google Drive for PDF Retrieval
This branch fetches and downloads PDF assets from Google Drive for extraction and processing.
- Open Retrieve PDF Files and set the drive query or file search criteria required for your form inputs.
- In Retrieve PDF Files, set up Google Drive access. Credential Required: Connect your Google Drive credentials.
- Open Download PDF Assets to download the matching file(s). Credential Required: Connect your Google Drive credentials.
- Confirm the flow continues from Retrieve PDF Files → Download PDF Assets → Extract File Contents.
Step 3: Set Up PDF Extraction and Data Preparation
Extract text from the PDF and normalize it before sending it to the AI decision logic.
- Open Extract File Contents and ensure it is configured to read the downloaded binary file data.
- Use Isolate PDF Details to map only the required fields from the extracted content into clean JSON properties.
- Use Parse and Clean Data to handle any string cleanup, formatting, or field normalization before AI processing.
- Verify the flow: Extract File Contents → Isolate PDF Details → Parse and Clean Data → AI Decision Agent.
Step 4: Configure AI Routing and Cover Letter Generation
This workflow uses AI to decide how to process the data, and conditionally generate a cover letter.
- Open AI Decision Agent and configure its prompt or instructions to decide how the PDF should be handled.
- Ensure Gemini Chat Engine is connected as the language model for AI Decision Agent. Credential Required: Connect your Google Gemini credentials in Gemini Chat Engine (credentials are added to the model node, not the agent).
- Configure Route by Condition to split behavior based on form inputs or AI output logic.
- Set Conditional Check rules for the branch that triggers cover-letter creation.
- Open Cover Letter Assistant to draft cover letter content and ensure Gemini Chat Engine B is attached as its language model. Credential Required: Connect your Google Gemini credentials in Gemini Chat Engine B.
- Confirm the branch flow: Route by Condition → Conditional Check → Cover Letter Assistant → Combine Outputs.
Step 5: Generate the Final PDF and Merge Outputs
This step converts AI output into a PDF and merges it with the optional cover letter results.
- Open Convert HTML to PDF and configure the HTTP request to your PDF conversion service.
- Validate that AI Decision Agent routes into Convert HTML to PDF, and then into Combine Outputs.
- Confirm Combine Outputs merges inputs from both Convert HTML to PDF and Cover Letter Assistant.
Step 6: Configure Email Delivery
Send the final output via Gmail once all processing is completed.
- Open Dispatch Email Notice and define the recipient, subject, and body content for the email.
- Add attachments or output references from Combine Outputs as needed.
- Credential Required: Connect your Gmail credentials in Dispatch Email Notice.
- Confirm the flow: Combine Outputs → Dispatch Email Notice.
Step 7: Test and Activate Your Workflow
Run a full test to validate both branches and ensure the final email is sent correctly.
- Click Test Workflow in n8n and submit a sample form to Form Submission Trigger.
- Verify that Form Submission Trigger executes both Retrieve PDF Files and Route by Condition in parallel.
- Confirm successful outputs at Combine Outputs and that Dispatch Email Notice sends the email with the expected content.
- When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- Google Drive credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and the Drive folder 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.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 10 minutes if your credentials are ready.
No. You’ll mostly connect accounts and paste API keys. The only “technical” part is editing prompts if you want a specific style.
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 PDF conversion usage costs from your providers.
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.
Yes, but you’ll swap the delivery step. Replace the Gmail “Dispatch Email Notice” node with a Notion create-page (or file upload) action, then pass the merged resume + cover letter output into that node. Common customizations include sending the PDF back into a specific Google Drive folder, posting a Telegram notification to your team, and changing the prompts to match a client’s brand voice.
Usually it’s an expired OAuth token or the Drive folder permissions changed. Reconnect Google Drive in n8n credentials, then confirm the workflow has access to the exact folder where files land. If it fails only sometimes, it can be a file timing issue (the form submits before the PDF is fully available), so adding a short wait or retry often fixes it.
On a typical n8n Cloud plan you can run hundreds to thousands of executions per month, and self-hosting has no execution cap (your server becomes the limit). In practice, AI generation and PDF conversion are the bottlenecks, so expect a few documents to process in parallel comfortably, then scale up by queueing or adding capacity.
Often, yes. n8n handles multi-step logic, branching, and merging in a way that stays readable as the workflow grows, and self-hosting can keep per-run costs under control when volume increases. Zapier and Make can still be great for very simple two-step flows, but this one benefits from the extra control (cleaning text, running two AI agents, combining outputs, then converting to PDF). Another practical point: you can keep prompts and transformations in one place instead of spreading them across multiple “formatter” steps. If you’re on the fence, Talk to an automation expert and you’ll get a straight recommendation.
Set it up once and the workflow handles the repetitive packaging and delivery. You get cleaner documents, fewer versions, and a lot more breathing room each week.
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.