🔓 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 Sheets, scored jobs plus drafts

Lisa Granqvist Partner Workflow Automation Expert

Job hunting falls apart in the same place every time. You find promising roles, then you lose them in tabs, half-finished notes, and a “I’ll tailor this later” pile that quietly grows.

Recruiters feel it from the other side (generic applications blend together). Job seekers feel it at midnight, rewriting bullets again. And career coaches end up managing chaos instead of momentum. This LinkedIn job scoring automation turns messy browsing into a ranked shortlist and a ready-to-edit cover letter draft.

Below, you’ll see how the workflow pulls fresh roles, scores them against your resume, logs everything into Google Sheets, and sends you the best fits so you can apply faster with more confidence.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn to Google Sheets, scored jobs plus drafts

The Problem: Job listings are easy to find, hard to finish

Finding roles is not the hard part. Finishing the loop is. You open LinkedIn, save a few postings, maybe copy a link into a doc, then “come back later” to tailor your resume and write a cover letter. Later turns into days. By the time you return, the job is gone, your energy is gone, or you can’t remember why the role looked good in the first place. Meanwhile, you still haven’t built a repeatable way to focus on the best-fit roles worth real effort.

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

  • You spend about 2 hours a day switching between LinkedIn, docs, and spreadsheets just to stay organized.
  • “Quick apply” becomes the default because tailoring every role feels like a second job.
  • Your best-fit roles get the same attention as mediocre ones, so you dilute your time and motivation.
  • Manual copy-paste introduces errors, which means broken links, missing titles, and duplicate entries you have to clean up later.

The Solution: Daily LinkedIn pulls, resume-based scoring, and cover drafts

This n8n workflow runs on a schedule (once a day is perfect) and does the “upstream” work that normally drains you. First, it pulls your current resume from Google Drive and parses the content so the automation knows what you actually do and what you’ve shipped. Next, it reads your existing Google Sheet filters (things like role keywords, locations, or seniority) and builds a LinkedIn search query automatically. Then it requests fresh LinkedIn listings, expands each job link, and fetches the detail pages with a short delay between requests to keep things stable. Finally, AI scores each role against your resume, generates structured output, drafts a tailored cover letter, and logs everything into Google Sheets. You get an email with the best roles, not a random pile of links.

The workflow starts with a scheduled run that refreshes your resume and your search filters. From there, it pulls listings and extracts job details in batches. AI does the matching and drafting, then Google Sheets becomes your single source of truth and Gmail delivers the shortlist to your inbox.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you review 20 LinkedIn roles a day. Manually, it’s easy to spend about 5 minutes per role to open the page, copy the link, capture the title/company, and jot down notes, which is roughly 1.5 to 2 hours. Then cover letters add another hour if you draft from scratch. With this workflow, you spend a couple minutes maintaining your Sheet filters, let the daily run collect and score roles, and then skim the top matches plus cover drafts in about 10 minutes. That’s real time back, and you’ll usually apply to better roles because you’re not guessing.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Drive to store your resume file.
  • Google Sheets to store filters and results.
  • Gmail to send your daily shortlist email.
  • Google Gemini API access (enable it in Google AI Studio / Google Cloud).

Skill level: Intermediate. You’ll connect Google accounts, paste a few credentials, and tweak prompts/fields to match your resume and role preferences.

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

How It Works

A daily schedule kicks it off. The workflow runs automatically (typically once per day) so you don’t rely on willpower or a calendar reminder you’ll ignore.

Your resume becomes the scoring baseline. n8n pulls your resume from Google Drive and extracts the text so the matching isn’t vague. It’s comparing roles to your actual experience, not a generic profile summary.

LinkedIn listings get collected and cleaned. Based on the filters stored in Google Sheets, the workflow builds a query, requests listings, extracts the job links, then fetches each job detail page with a small wait between requests. It also normalizes fields into a consistent structure so your Sheet doesn’t turn into an unreadable blob.

AI scores and drafts, then everything is logged. The AI Agent produces structured matching output (fit score, highlights, gaps) and generates a tailored cover letter draft. Results are upserted into Google Sheets, and Gmail sends you a digest so you can act quickly.

You can easily modify the Sheet filters to target different titles, locations, or companies based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Trigger

Set the workflow’s run schedule so the job search analysis executes automatically.

  1. Open Scheduled Run Trigger.
  2. In Rule, confirm the schedule interval includes Trigger At Hour set to 5.
  3. Keep Flowpast Branding as a visual reference note (no configuration required).

Step 2: Connect Google Drive and Google Sheets

Pull your resume from Google Drive and load search filters from Google Sheets.

  1. Open Retrieve Drive File and set Operation to download.
  2. Credential Required: Connect your googleDriveOAuth2Api credentials in Retrieve Drive File.
  3. In Retrieve Drive File, set File ID to your resume file URL or ID.
  4. Open Parse Resume Document and set Operation to pdf.
  5. Open Fetch Sheet Filters and set Document ID to [YOUR_ID] and Sheet Name to gid=0 (cached name: Filter).
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials in Fetch Sheet Filters.
⚠️ Common Pitfall: If Retrieve Drive File has an empty File ID, Parse Resume Document will fail because no file is downloaded.

Step 3: Build and Request the LinkedIn Listings

Generate a LinkedIn search URL from sheet filters and extract job listing links.

  1. Open Build LinkedIn Query and keep the JavaScript Code as provided (it builds the URL using Keyword, Location, Experience Level, Remote, and Easy Apply).
  2. Open Request LinkedIn Listings and set URL to {{ $json.url }}.
  3. Open Extract Listings Links and verify Operation is extractHtmlContent.
  4. In Extract Listings Links, ensure the extraction includes Key jobs with CSS Selector ul.jobs-search__results-list li div a[class*="base-card"] and Return Value attribute.
If LinkedIn changes its HTML structure, update the CSS selector in Extract Listings Links to keep link extraction working.

Step 4: Process Job Links and Fetch Job Details

Split job URLs, batch them, rate-limit requests, and parse the job detail pages.

  1. Open Expand Job Links and set Field to Split Out to jobs.
  2. Open Iterate Job Batches (batch size defaults are OK unless you want to throttle more).
  3. Open Delay Between Requests and set Amount to 2 to slow requests.
  4. Open Fetch Job Detail Page and set URL to {{ $json.jobs }}.
  5. Open Parse Job Details and verify the extraction keys: Title, Company, Location, Description, and Job ID.
⚠️ Common Pitfall: LinkedIn may throttle or block rapid requests. Keep Delay Between Requests at 2 seconds or higher for stability.

Step 5: Normalize Job Fields and Run AI Analysis

Clean job fields, then score the match and generate improvement suggestions with Gemini.

  1. Open Normalize Job Fields and confirm the assignments use expressions like {{ $json.Description.replaceAll(/\s+/g, " ")}} and {{ "https://www.linkedin.com/jobs/view/"+ $json['Job ID'].split(":").last() }}.
  2. Open Resume Match Assistant and keep the prompt as defined; it uses {{ $json.Description }} and {{ $('Parse Resume Document').item.json.text }}.
  3. Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine (this is the language model for Resume Match Assistant).
  4. Open Parse AI JSON Output and keep JSON Output as the provided parsing script.
  5. Open Resume Improvement Advisor and keep the prompt as defined; it uses {{ $json.Description }} and {{ $('Parse Resume Document').item.json.text }}.
  6. Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine 2 (this is the language model for Resume Improvement Advisor).
If the AI output fails to parse, check Resume Match Assistant for schema compliance—Parse AI JSON Output expects a clean JSON object wrapped in code fences.

Step 6: Store Results and Notify via Email

Append or update the results in Google Sheets and send a summary email.

  1. Open Upsert Results to Sheet and set Operation to appendOrUpdate.
  2. Set Document ID to [YOUR_ID] and Sheet Name to [YOUR_ID] (cached name: Result).
  3. Confirm column mappings like Link{{ $('Normalize Job Fields').item.json['Apply Link'] }} and Score{{ $('Parse AI JSON Output').item.json.match_score }}.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Upsert Results to Sheet.
  5. Open Send Results Email and set Send To to [YOUR_EMAIL], Subject to Job search results, and Message to Hey, your job search results with resume changes are ready in your sheet for today.
  6. Credential Required: Connect your gmailOAuth2 credentials in Send Results Email.

Iterate Job Batches outputs to both Send Results Email and Delay Between Requests in parallel, so emails are sent while additional job pages continue processing.

Step 7: Test and Activate Your Workflow

Run a manual test to confirm parsing, AI output, and sheet updates, then activate the schedule.

  1. Click Execute Workflow and verify Request LinkedIn Listings returns HTML and Extract Listings Links produces a jobs array.
  2. Check Parse Job Details and Normalize Job Fields for clean values like Title, Company, and Apply Link.
  3. Confirm Parse AI JSON Output produces an object with match_score and cover_letter.
  4. Verify Upsert Results to Sheet adds or updates rows and Send Results Email delivers the notification.
  5. Toggle the workflow to Active so Scheduled Run Trigger runs daily at the configured hour.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Drive and Google Sheets credentials can expire or need specific permissions. If things break, check your n8n credential settings and Google account access scopes first.
  • If you’re using Wait nodes or external page fetching, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in the AI Agent are generic. Add your target role, preferred tone, and a few “signature” accomplishments early or you will be editing outputs forever.

Frequently Asked Questions

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

About an hour if your Google accounts and resume file are ready.

Do I need coding skills to automate LinkedIn job scoring?

No coding required. You’ll mostly connect accounts, then adjust a few filters and AI prompts.

Is n8n free to use for this LinkedIn job scoring 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 Google Gemini API usage costs, which are usually small for a daily run.

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 job scoring workflow for different roles and locations?

Yes, and it’s the point of the design. Update the Google Sheets “filters” the workflow reads (the Fetch Sheet Filters step), and the Build LinkedIn Query logic will target new keywords, locations, or seniority. You can also tweak the “Normalize Job Fields” mapping if you want extra columns like remote/hybrid, tech stack mentions, or compensation when it’s available. If you want a different draft style, adjust the prompts inside the AI Agent nodes so the cover letters match your voice.

Why is my Google Sheets connection failing in this workflow?

Usually it’s an expired Google credential or the wrong Google account connected in n8n. Reconnect Google Sheets, then confirm the Sheet ID and the target tab name still match what the Upsert Results to Sheet node expects. It can also fail if your account lost access to the spreadsheet (common when you duplicate a sheet into a new Drive location). Finally, check quota limits if you suddenly scaled up to hundreds of rows per run.

How many job listings can this LinkedIn job scoring automation handle?

Dozens per daily run is realistic for most people.

Is this LinkedIn job scoring automation better than using Zapier or Make?

It depends on how much control you want. Zapier and Make are great when you’re connecting two polished apps and calling it a day, but this workflow involves batching, delays, page fetching, and structured AI output, which is where n8n feels more flexible. n8n also gives you a self-hosted option, so you’re not paying more just because you ran the workflow more often. Frankly, the moment you want “score each item, enrich it, then write back to a sheet cleanly,” n8n tends to be less frustrating. Talk to an automation expert if you want a quick recommendation for your exact situation.

You do the part that actually matters: picking a few great roles and applying well. The workflow handles the repetitive sorting, scoring, drafting, and logging.

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