When I was applying for roles, I learned the hard way that a one-size-fits-all resume never wins. I obsessively tailored my resume for each posting, reflecting the exact scope, impact, and stack the team cared about. That’s when the callbacks really started landing from places like Google, Apple, Amazon, and other big tech teams. Personalization worked because recruiters saw immediate alignment: my bullets mirrored their needs.
So I built a small automation that flips the script. Instead of you chasing listings, it collects them for you, scores the fit against your resume, drafts a tailored cover letter, and files everything neatly into a Google Sheet then pings you for the best ones. One daily run. No more “I’ll get to it later.” Just a short list of high-signal roles and a ready-to-edit draft.
But tailoring takes time and the hardest part was upstream: finding roles that truly matched my skills and narrowing to the best-fit few worth customizing for. That’s why I built a lightweight n8n workflow that does the heavy lifting for me: it pulls fresh roles, scores each one against my resume, drafts a role-specific cover letter, and drops everything into a clean Google Sheet. Below is a quick guide to set it up end-to-end so you can spend less time hunting and more time sending targeted, high-quality applications.
Tutorial -
N8N Workflow file -
Google Sheet Base
IMPORTANT:
Do not change any field titles in the sheet
The current version of the workflow will only support ONE filter, create copies of sheet and workflow if you need more
Make sure you `make a copy` of the sheet to your account and give it access of anyone with link can edit.
Sheets Link
1) Create your n8n account
Use n8n Cloud (fastest), or self-host (Docker/VM).
You can import/export workflows as JSON from the Editor UI (three-dots menu → Import from File/URL), or just paste JSON onto the canvas. (n8n Docs)
2) Add the workflow to n8n
In the Editor, open the three-dots menu → Import → choose File (your JSON) or URL, or simply Ctrl/Cmd+V the JSON on the canvas. (n8n Docs)
3) Google Cloud: enable the right APIs
Create or select a Google Cloud project, then enable:
Google Drive API
Google Sheets API
Steps: Google Cloud Console → APIs & Services → Library → search each API → Enable. (Google Help)
4) Google OAuth: let n8n access your Drive/Sheets
You have two clean options:
A. Easiest (n8n Cloud built-ins): In Drive/Sheets nodes, click “Sign in with Google” and finish consent. No custom OAuth client needed. (n8n Docs)
B. Custom OAuth client (self-host or if you prefer your own credentials):
In Google Cloud Console: Google Auth Platform → Branding: set up the OAuth consent screen.
If you keep Testing, only up to 100 test users can authorize and tokens typically need re-auth after short periods.
To allow any email, switch Publishing status to In production (may require verification if you request sensitive scopes like Drive/Gmail).
Create OAuth Client ID (Application type: Web application). (Google for Developers)
Add the Authorized redirect URI that matches your n8n:
n8n Cloud:
https://oauth.n8n.cloud/oauth2/callback
Self-host:
https://<your-domain>/rest/oauth2-credential/callback
(orhttp://localhost:5678/rest/oauth2-credential/callback
for local dev).
These must exactly match what n8n sends to Google or you’ll getredirect_uri_mismatch
. (n8n Community)
Back in n8n Credentials, choose your Google Drive OAuth2 / Google Sheets OAuth2 credential and complete the OAuth flow. (n8n Docs)
5) Prepare your Resume on Google Drive
Upload your PDF resume to Drive.
If you used “Sign in with Google” (Option A), you can keep the file private—just make sure the same Google account has access.
If you prefer a link-only setup, set Share → Anyone with the link → Viewer and copy the file link/ID. (n8n Docs)
6) Set up the Google Sheet (Filters + Results)
Open the provided sheet link and File → Make a copy to your Drive (keep two tabs:
Filter
andResult
).In
Filter
, add your search criteria (e.g., Keyword, Location, Experience Level, Remote/Hybrid/On-Site, Job Type, Easy Apply).In n8n, set the Google Sheets node to your spreadsheet and select
Filter
(read) andResult
(append/update). (General Sheets usage in Google Cloud requires the API you enabled in Step 3.) (Google for Developers)
7) Get your Gemini API key (for AI scoring/cover letters)
Go to Google AI Studio → Get API key → Create API key (new or existing project).
Copy the key and add it to your Gemini node credential in n8n. (Free tier is available; check availability/limits in AI Studio.) (Google Help)
8) Wire up credentials inside nodes
Google Drive (Download file): select your Drive OAuth2 credential and paste the file URL/ID.
Extract from File: operation PDF to read resume text.
Google Sheets nodes: select your Sheets OAuth2 credential, pick the copied spreadsheet,
Filter
for inputs andResult
for outputs.Gemini / AI Agent nodes: select your Gemini credential and use the provided prompt schema (your template already includes JSON-safety guards).
9) Schedule & run
Add a Schedule Trigger to run daily (e.g., 17:00 America/Phoenix) and activate the workflow. You can run it manually first to populate the sheet and verify outputs. (n8n Docs)
Quick tips & guardrails
If Google auth keeps expiring weekly, your app is likely still in Testing; change the OAuth consent Publishing status to In production to allow any email and avoid frequent re-auth (verification may be required for sensitive scopes).
Be mindful of LinkedIn’s Terms of Service when fetching job pages. Automating access or scraping can be restricted; use the workflow responsibly. (n8n Community)
Hey folks, if you are facing issues setting it up, please start from scratch and set it up again, follow the video step by step.
Hi Jugal, Thanks for this workflow. I am seeing a small issue in the output that I am getting for "Improvements" section. It is somehow not giving real improvements needed based on JD and resume comparison. Looks like its not picking the JD and my resume tags. Most of the improvements are around core technical expertise although the Job and resume are both for Project Manager. e.g improvement I am getting are like 1. [REWRITE] Customize summary for AI/ML and MLOps focus.
2. [ADD] Feature relevant AI/ML projects or coursework.
3. [QUANTIFY] Add metrics to all development achievements.
4. [FOCUS] Emphasize scalable ML systems and optimization.
5. [ADD] Detail Docker, Kubernetes, CI/CD pipeline experience.
6. [ADD] Highlight data structures, algorithms, distributed systems.
7. [REMOVE] De-emphasize non-AI/ML specific web development.
8. Missing keywords: AI/ML, MLOps, LLMs, TensorFlow, PyTorch, Kubernetes, CI/CD, algorithms, data structures, distributed systems.