🔓 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

LinkedIn to Google Docs, tailored resumes ready

Lisa Granqvist Partner Workflow Automation Expert

Applying for jobs shouldn’t feel like running a small factory. But it usually does: find a role, copy the description somewhere, tweak your resume, hunt down a contact, then write yet another “just checking in” email.

Job seekers feel it first. A career coach supporting multiple clients gets buried in it too. Even a busy founder quietly looking for the next move runs into the same wall. This LinkedIn resume automation turns one manual, error-prone process into a repeatable system that produces tailored resumes and ready-to-send drafts.

Below you’ll see how the workflow works, what it replaces, and what you can tweak so the output still sounds like you (not a robot).

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn to Google Docs, tailored resumes ready

The Problem: Tailoring Applications Takes Forever

Most people don’t lose opportunities because they’re unqualified. They lose them because the application process is a grind. You read a LinkedIn post, open three tabs, try to match your resume bullets to the job description, then second-guess every line because it all starts sounding the same. After that comes the hardest part: finding a real decision-maker email and writing outreach that doesn’t feel like spam. Do this a few times and you either burn your evenings, or you stop tailoring and start spraying.

It adds up fast. And the work is repetitive in the worst way.

  • You end up rewriting the same resume sections over and over, which steals time from actually preparing for interviews.
  • Manual copy-paste creates sloppy mistakes like the wrong company name or an outdated project line.
  • Finding a CEO or hiring manager email can take 15 minutes per role, then you still don’t know if it’s valid.
  • Your outreach emails drift in tone and structure, so your “personal brand” looks inconsistent across applications.

The Solution: LinkedIn → Tailored Docs → Gmail Drafts

This n8n workflow runs like a personal AI recruiter, but you stay in control. You launch it manually, it reads your “Master Resume” from Google Docs, then pulls live job listings from LinkedIn via an external scraping actor (Apify) based on the keywords you choose. Next, it uses an OpenAI model to screen the job description against your skills and discards roles that aren’t a fit, so you’re not wasting energy on long shots you’d never accept. For the roles that pass, the workflow rewrites your resume specifically for that job, generates a fresh Google Doc, and sets the right sharing permissions. Finally, it looks up a verified decision-maker email and creates a personalized Gmail draft with the resume link ready to send.

The workflow starts with your resume as the source of truth in Google Docs. Then it narrows LinkedIn roles down to a shortlist, tailors a version of your resume for each, and drops a draft email into Gmail so you can review and hit send. Nothing gets sent automatically, which honestly is the right call for job hunting.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you target 10 LinkedIn roles each week. Manually, you might spend about 20 minutes reading and deciding, 45 minutes tailoring your resume, and 15 minutes finding a contact and writing outreach. That’s roughly 80 minutes per role, or around 13 hours a week. With this workflow: you kick it off once, let it screen and shortlist, and you review the Google Docs and Gmail drafts at the end. Most people get that weekly batch down to about 1–2 hours of review time, depending on how picky you are.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Docs / Google Drive to read and create resume files
  • Gmail to generate drafts in your Drafts folder
  • Apify account to run the LinkedIn Job Scraper actor
  • OpenAI API key (get it from the OpenAI API dashboard)
  • Anymail Finder API key (get it from your Anymail Finder account)

Skill level: Intermediate. You’ll connect accounts, paste in your master resume, and adjust one LinkedIn search input without breaking the workflow.

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

How It Works

You launch the workflow manually. That trigger is intentional, because job applications are high-stakes and you’ll want control over when it runs.

Your master resume is pulled from Google Docs. The workflow grabs a single source document, so every tailored version starts from the same baseline instead of whatever file you edited last week.

LinkedIn roles are fetched, then screened by AI. An external job API call pulls listings (via Apify), a limit node keeps volume sane, then an OpenAI model checks fit and filters out roles that don’t match your skills and preferences.

It generates the outputs you actually need. A second OpenAI step rewrites the resume for the shortlisted role, converts it to clean HTML, creates a new Google Doc, shares it, and then prepares a Gmail draft after enriching a decision-maker email.

You can easily modify the search keywords and screening criteria to match your niche, so you’re not stuck chasing generic roles. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually so you can validate the end-to-end job outreach process before automating further.

  1. Add the Manual Launch Trigger node as the starting trigger.
  2. Click Execute Workflow to run a test once configuration is complete.
  3. Keep Flowpast Branding as an optional sticky note for documentation and team context.

Step 2: Connect Google Docs and Pull Source Resume

Fetch the base resume content that will be tailored for each shortlisted job.

  1. Open Fetch Source Document and set Operation to get.
  2. Set Document URL to [PASTE_YOUR_GOOGLE_DOC_ID_HERE].
  3. Credential Required: Connect your Google Docs OAuth2 API credentials in Fetch Source Document.

⚠️ Common Pitfall: Ensure the document ID is valid and accessible to the connected Google account, otherwise downstream resume tailoring will fail.

Step 3: Set Up Job Intake, Filtering, and Shortlisting

Pull job listings, limit the batch size, and filter to only roles that match your criteria.

  1. Configure External Job API Call with Method set to POST and URL set to https://api.apify.com/v2/acts/hKByXkMQaC5Qt9UMN/run-sync-get-dataset-items.
  2. Set JSON Body in External Job API Call to the provided payload, including "count": 100 and the LinkedIn URL.
  3. Set Header Parameters in External Job API Call to include Authorization: Bearer [CONFIGURE_YOUR_TOKEN] and Accept: application/json.
  4. Open Restrict Items and set Max Items to 10.
  5. In AI Fit Screening, keep JSON Output enabled and verify the prompt includes {{ $json.toJsonString() }}.
  6. Credential Required: Connect your OpenAI credentials in AI Fit Screening.
  7. Configure Filter Suitable Roles with conditions: {{ $json.message.content.verdict }} equals true and {{ $('Restrict Items').item.json.companyWebsite }} is not empty.
  8. Set Cap Shortlist to Max Items 4.

⚠️ Common Pitfall: The filter uses {{ $json.message.content.verdict }}. If your AI response format changes, the filter will stop passing items.

Step 4: Set Up AI Resume Tailoring and Document Generation

Generate a tailored resume in Markdown, convert it to HTML, then create and share the Google Doc.

  1. In AI Resume Tailoring, confirm the prompt references {{ $('Restrict Items').item.json.toJsonString() }} and {{ $('Fetch Source Document').item.json.content }}.
  2. Credential Required: Connect your OpenAI credentials in AI Resume Tailoring.
  3. Set Convert to HTML to Mode markdownToHtml with Markdown set to {{ $json.message.content }}.
  4. Configure Generate Resume Doc with Title Tailored Resume - [Candidate Name] and Folder ID default.
  5. Credential Required: Connect your Google Docs OAuth2 API credentials in Generate Resume Doc.
  6. In Share Drive File, set Operation to share and confirm File ID is {{ $json.id }}.
  7. Credential Required: Connect your Google Drive OAuth2 credentials in Share Drive File.
  8. Configure Upload HTML Content with Method PATCH, URL {{ 'https://www.googleapis.com/upload/drive/v3/files/' + $('Generate Resume Doc').item.json.id + '?uploadType=media' }}, and Body {{ $('Convert to HTML').item.json.data }}.
  9. Credential Required: Connect your Google Docs OAuth2 API credentials in Upload HTML Content.

Tip: The execution flow is linear—AI Resume TailoringConvert to HTMLGenerate Resume DocShare Drive FileUpload HTML Content—so a failure in one node will block the rest.

Step 5: Configure Email Lookup and Draft Creation

Find a decision maker’s email, validate it, and draft a Gmail outreach message.

  1. In Lookup Decision Maker Email, set URL to https://api.anymailfinder.com/v5.1/find-email/decision-maker and Method to POST.
  2. Set body parameters: domain to {{ $('Restrict Items').item.json.companyWebsite }} and decision_maker_category to ceo.
  3. Set header parameter Authorization to [CONFIGURE_YOUR_API_KEY].
  4. Configure Validate Email Result to pass when {{ $json.email }} is not empty.
  5. In Compose Gmail Draft, set Resource to draft and confirm the Subject uses {{ $('Restrict Items').item.json.title }}.
  6. Verify the Message body uses {{ $json.person_full_name.split(" ").first() }}, {{ $('Restrict Items').item.json.companyName }}, and {{ $('Fetch Source Document').item.json.documentId }}.
  7. Credential Required: Connect your Gmail OAuth2 credentials in Compose Gmail Draft.

⚠️ Common Pitfall: If the email lookup returns no result, Validate Email Result will block the draft creation. Test with a domain that is known to resolve.

Step 6: Test and Activate Your Workflow

Validate each node and then enable the workflow for production use.

  1. Click Execute Workflow on Manual Launch Trigger to run a full test.
  2. Confirm the flow progresses in order: Fetch Source DocumentExternal Job API CallRestrict ItemsAI Fit ScreeningFilter Suitable RolesCap ShortlistAI Resume TailoringConvert to HTMLGenerate Resume DocShare Drive FileUpload HTML ContentLookup Decision Maker EmailValidate Email ResultCompose Gmail Draft.
  3. Verify that a new Google Doc is created, shared, and updated with the tailored resume content.
  4. Check Gmail drafts for the personalized outreach message and subject.
  5. Toggle the workflow Active when you’re ready to use it in production.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Drive/Docs credentials can expire or need the right scopes. If docs aren’t being created or shared, check the n8n credential connection and Google account permissions 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.
  • OpenAI prompts default to “polite generic resume voice.” Add a few lines that describe your tone and target role seniority early, or you will keep editing every version.

Frequently Asked Questions

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

About 45 minutes if you already have the accounts and API keys.

Do I need coding skills to automate LinkedIn resume tailoring?

No. You’ll connect services in n8n and paste in your LinkedIn search input. The only “technical” part is checking that your credentials are set correctly.

Is n8n free to use for this LinkedIn resume automation 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 OpenAI usage plus Apify and Anymail Finder fees, depending on how many roles you process.

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 LinkedIn resume automation workflow for different job keywords and a different resume format?

Yes, and you should. Update the job search input in the “External Job API Call” request (your LinkedIn search URL/criteria), then adjust the “AI Fit Screening” and “AI Resume Tailoring” prompts to reflect your target titles and preferred structure. Common tweaks include stricter filters (remote only, salary floor), a shorter one-page output, and a punchier email tone in “Compose Gmail Draft.”

Why is my Google Drive connection failing in this workflow?

Usually it’s an expired OAuth connection or missing permissions for Docs/Drive. Reconnect the Google credential in n8n, then confirm the same Google account can create and share files in Drive. If it still fails, check that the workflow is pointing at the right document ID for your master resume.

How many job listings can this LinkedIn resume automation handle?

A lot, but you’ll want to keep it practical. The workflow already uses limit steps (“Restrict Items” and “Cap Shortlist”), which is a good sign because it avoids burning credits on junk roles. On n8n Cloud your limit is mostly executions per month based on plan, while self-hosting has no execution cap (it depends on your server). In real life, most people aim for a shortlist of 5–20 solid matches per run so review stays quick.

Is this LinkedIn resume automation better than using Zapier or Make?

For this use case, n8n tends to fit better because you’re doing multi-step filtering, document generation, and enrichment in one flow. You also get a self-hosting option, which matters when you run lots of iterations and don’t want every step billed separately. Zapier and Make can work, but the logic usually ends up split across scenarios with more limitations around branching and data shaping. Another factor is AI control: n8n makes it easier to keep prompts, memory, and formatting in one place. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation.

Set it up once and your applications stop feeling like a second job. You review the shortlist, make quick edits if needed, then send drafts that actually match the role.

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