Perplexity to Google Drive, ATS-ready resumes fast
Your resume shouldn’t fall apart the moment you tailor it for a job. But that’s what happens: the formatting breaks, keywords get missed, and you end up exporting five “final_final” PDFs at midnight.
Job seekers feel it first. Recruiters and career coaches see the same chaos from the other side. This Perplexity resume automation turns your resume plus a job description into a clean, ATS-friendly PDF, then saves it straight to Google Drive.
You’ll see what the workflow does, why it works, and what you need to run it reliably without babysitting the process.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Perplexity to Google Drive, ATS-ready resumes fast
flowchart LR
subgraph sg0["Form Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "HTML to PDF", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Upload file", pos: "b", h: 48 }
n2["<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/>Form Trigger"]
n3@{ icon: "mdi:cog", form: "rounded", label: "Extracting resume1", pos: "b", h: 48 }
n4["<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/>Process one binary file1"]
n5["<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/>Merge Resume + JD1"]
n6["<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/perplexity.dark.svg' width='40' height='40' /></div><br/>Customize resume1"]
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/>HTML format1"]
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/html.dark.svg' width='40' height='40' /></div><br/>HTML Preview"]
n0 --> n1
n2 --> n4
n7 --> n8
n7 --> n0
n6 --> n7
n3 --> n5
n5 --> n6
n4 --> n3
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 n2 trigger
class n4,n5,n7 code
classDef customIcon fill:none,stroke:none
class n2,n4,n5,n6,n7,n8 customIcon
The Problem: Tailoring resumes eats time and introduces mistakes
Most “resume tailoring” is busywork disguised as strategy. You copy a job description into one window, your resume into another, then start rewriting bullets while trying not to lie or delete something important. Then the formatting spiral begins: spacing changes, headings shift, and suddenly your PDF looks different on every device. The worst part is mental load. You’re making high-stakes edits while also worrying about ATS scanners, keyword matching, and whether the file you submit is actually the right version.
The friction compounds. Here’s where it breaks down for most people.
- You reformat the same resume structure again and again, which can burn about 1–2 hours per application.
- Keyword alignment gets done inconsistently, so strong experience still gets filtered out early.
- PDF exports aren’t standardized, which means your “clean” document can become messy in an ATS.
- Files live across email drafts and downloads folders, so finding the right version is a weekly scavenger hunt.
The Solution: Generate an ATS-friendly PDF and store it automatically
This workflow automates the part that’s repetitive, error-prone, and frankly exhausting. It starts with a simple form where you upload your resume (text or PDF) and the job description (PDF). n8n splits and labels the incoming files, extracts the text, then merges the resume content with the JD into one clean prompt. Perplexity (using the workflow’s AI Agent node) rewrites your resume into ATS-friendly HTML that prioritizes JD keywords while keeping your information truthful. That HTML gets cleaned, converted into a polished PDF, and uploaded into a Google Drive folder so it’s ready to download, share, or attach to an application.
The workflow begins when you submit the form. AI tailors the resume content and outputs strict, simple HTML. Finally, the HTML is converted to PDF and saved to Google Drive automatically, so you stop chasing files.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you apply to 5 roles in a week. Manually, you might spend about 60–90 minutes tailoring each resume (editing, reformatting, exporting, renaming, and filing it), which is roughly 6–8 hours total. With this workflow, you submit the resume and JD in a form in about 5 minutes, wait a few minutes for AI + PDF rendering, then spend around 10 minutes reviewing and making small fixes. That’s about 15 minutes per application, and your PDFs are already saved in Google Drive.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Perplexity for AI resume tailoring from JD text
- Google Drive to store the finished PDF automatically
- CustomJS API key (get it from your CustomJS account dashboard)
Skill level: Intermediate. You’ll connect credentials, paste an API key, and adjust one or two text-handling steps if your PDFs vary a lot.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Form submission triggers the run. You upload your resume (text or PDF) and the job description PDF through the Incoming Form Trigger, which starts the workflow instantly.
The files are organized and read. A short Code step splits the binary inputs so the workflow can reliably extract the right text from the right file, then the PDF Text Extractor pulls content out of the PDFs.
Perplexity tailors the resume in a strict layout. The Combine Resume and JD step merges both texts into one AI-ready input, then the AI Resume Tailor produces ATS-friendly HTML (simple structure, readable headings, no fancy design).
PDF output is generated and stored. Another Code step cleans the HTML, the PDF converter turns it into a binary PDF, and Google Drive stores the final file in your chosen folder.
You can easily modify the AI prompt and the Drive folder destination 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 workflow entry point so candidates can submit a resume and job description through a hosted form.
- Add the Incoming Form Trigger node as the trigger for the workflow.
- Set the Path to
resume-builder. - Set the Form Title to
resume builder. - In Form Fields, include:
Paste Resume text(text),Upload Resume PDF(file, required,.pdf), andUpload JD PDF(file, required,.pdf). - Set Response Mode to
lastNodeto return the final PDF output.
Optional: Keep Flowpast Branding as a visual note for documentation; it does not affect execution.
Step 2: Split and Extract PDF Content
Split the uploaded files and extract text from each PDF so both the resume and job description can be merged.
- Configure Binary File Splitter with the provided jsCode to separate each uploaded binary file into its own item.
- In PDF Text Extractor, set Operation to
pdf. - Set Binary Property Name to
={{ Object.keys($binary)[0] }}so it dynamically targets the uploaded file. - Connect Binary File Splitter → PDF Text Extractor → Combine Resume and JD.
- In Combine Resume and JD, keep the jsCode that merges both PDF text values into a single
mergedfield.
Step 3: Set Up the AI Resume Tailoring
Send the merged resume and job description to the AI model to generate a tailored HTML resume.
- Configure AI Resume Tailor with Model set to
sonar-reasoningand Simplify enabled. - Keep the provided system and user prompts, including the dynamic input
{{ $json.merged }}. - Credential Required: Connect your perplexityApi credentials.
- Connect Combine Resume and JD → AI Resume Tailor → Clean HTML Output.
Step 4: Render, Convert, and Store the Output
Clean the HTML, preview it, convert it to PDF, and save the final file to Google Drive.
- In Clean HTML Output, keep the provided jsCode that extracts and cleans the HTML between
<html>tags. - Clean HTML Output outputs to both Render HTML Preview and Convert HTML to PDF in parallel.
- Set Render HTML Preview → HTML to
{{ $json.cleanedResponse }}to preview the layout. - Set Convert HTML to PDF → HTML Input to
={{ $json.cleanedResponse }}. - Credential Required: Connect your customJsApi credentials in Convert HTML to PDF.
- In Store PDF in Drive, set Name to
NEW_RESUNME, Drive toMy Drive, and Folder to your target folder (example:Resumewith ID[YOUR_ID]). - Credential Required: Connect your googleDriveOAuth2Api credentials.
Step 5: Test and Activate Your Workflow
Run a live test to confirm the form submission produces a stored PDF, then activate the workflow for production use.
- Click Execute Workflow and open the generated form URL from Incoming Form Trigger.
- Upload a resume PDF and a job description PDF, then submit the form.
- Verify that Render HTML Preview displays a clean HTML resume in the node output.
- Confirm Store PDF in Drive creates a file named
NEW_RESUNMEin the selected folder. - Toggle the workflow to Active to enable continuous production use.
Common Gotchas
- Google Drive credentials can expire or need specific permissions. If things break, check the n8n Credentials page and confirm the Drive account still has access to the target folder.
- 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 30–60 minutes if your accounts are ready.
No. You’ll mostly connect accounts and paste an API key. The only “code” is already included in the 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 Perplexity API usage plus the CustomJS HTML-to-PDF conversion cost from your provider.
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 keep it simple. You’ll update the instructions inside the AI Resume Tailor node so the HTML structure matches your preferred sections (for example, adding “Projects” or moving “Skills” above “Experience”). You can also adjust the Clean HTML Output code so it preserves the exact spacing you want. Common customizations include a stronger summary, role-specific keyword weighting, and saving files into job-specific subfolders in Google Drive.
Usually it’s an expired OAuth connection or the workflow is trying to upload into a folder your connected account can’t access. Reconnect Google Drive in n8n Credentials, then double-check the folder selection in the Store PDF in Drive node. If it still fails, look for rate limits when you run many resumes back-to-back.
A lot, as long as your AI and PDF conversion limits can keep up.
Often, yes, because this flow isn’t just “send file A to tool B.” You’re handling binary PDFs, extracting text, cleaning HTML, and then converting that HTML to a PDF through a dedicated node, which is the kind of multi-step logic that gets clunky (and expensive) in simpler builders. n8n also gives you a self-host option, which means you can run lots of executions without worrying about per-task billing. If you only need a lightweight two-step integration, Zapier or Make can be quicker to set up. Talk to an automation expert if you want help choosing.
Once this is set up, you stop fighting formatting and start submitting faster. The workflow handles the repeatable parts, and you keep control where it matters: the final review.
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.