Scrape LinkedIn hiring posts with Apify and save qualified leads to Google Sheets

Go to Workflow
0 views
Built by Salman Mehboob Salman Mehboob
Created on June 05, 2026

Description


> πŸ“Š See real sample data this workflow collects:
> View Sample Google Sheet β†’

Stop manually searching LinkedIn every day. This workflow runs every 6 hours, scrapes LinkedIn posts, filters out all the noise, confirms real hiring intent, and saves only clean, qualified leads to your Google Sheet β€” automatically.

Pre-configured for n8n automation roles, but fully customizable for any job title, skill, or tool.

What it does

Scrapes LinkedIn post search results using Apify for your target keywords
Removes noise posts (tips, self-promo, events, tutorials, engagement bait)
Filters out job seekers posting "hire me" or "open to work"
Detects genuine hiring intent using 35+ hiring phrases
Handles LinkedIn bold/italic Unicode text β€” so formatted posts like π—ͺ𝗲'𝗿𝗲 𝗛𝗢𝗿𝗢𝗻𝗴 are correctly detected
Matches your target job titles and tool name (fully customizable)
Extracts emails, phone numbers, WhatsApp links, and apply links from each post
Prevents duplicates across all runs using a two-layer system (fingerprint + DataTable)
Saves every clean lead to Google Sheets with author name, LinkedIn profile, post URL, job type, and contact info

Who it's for

Freelancers β€” find clients posting for your exact skill before anyone else responds

Automation agencies β€” build a steady pipeline of inbound hiring signals

Job seekers β€” catch real job posts the moment they go live on LinkedIn

Anyone β€” swap keywords and job titles to track any role in any industry

How it works (Step by Step)

Schedule Trigger β€” runs automatically every 6 hours
Get Posts β€” Apify scrapes LinkedIn posts from your custom search URLs
Generate Fingerprint β€” catches duplicate posts within the same run
Database Check β€” skips posts already seen in any previous run using LinkedIn post URN
Removing Noise β€” filters out thought leadership, tutorials, events, and self-promo
Remove Job Seekers β€” removes "hire me" and "open to work" style posts
Check Hiring Intent β€” confirms post has real hiring language (35+ phrases checked)
Match Job Title β€” keeps only posts matching your tool name AND target job titles
Enrich Data β€” extracts all contact info and detects job type (Remote / Hybrid / On-Site)
Google Sheets β€” logs every qualified lead automatically

What you get in Google Sheets

| Field | Description |
|---|---|
| Post Content | Full LinkedIn post text |
| Post URL | Direct link to the post |
| Job Type | Remote / Hybrid / On-Site |
| Published Date | When the post was published |
| Author Name | Who posted it |
| Author LinkedIn | Direct profile link |
| Email | Extracted from post |
| Phone Number | Extracted from post |
| Apply Link | lnkd.in short links |
| WhatsApp | wa.me links if present |

Customization

This workflow is built to be adapted. You are not locked into n8n roles.

To use it for your own niche:
Go to Get Posts β†’ replace the LinkedIn search URLs with your own keywords
Go to Match Job Title β†’ replace n8n with your tool (e.g. Zapier, Make, Python)
Add or remove job titles in Match Job Title to match what you are targeting
Add more noise phrases in Removing Noise if needed

Other ideas:
Add a Telegram or Slack notification node after Google Sheets for instant alerts
Use the sheet as a mini-CRM β€” add outreach status, reply date, and notes columns
Run multiple copies for different niches or platforms

Setup Requirements

Apify account** β€” for LinkedIn post scraping (paid plan recommended)
n8n DataTable** β€” built-in n8n feature, used to track seen posts across runs
Google Sheets** β€” to store and manage your leads
Google Sheets OAuth2** credentials connected in n8n

Setup Checklist

[ ] Add your Apify API credentials to the Get Posts node
[ ] Build your LinkedIn search URL and paste it into the urls array in Get Posts
[ ] Create a DataTable in your n8n project named Post Job Scraper with one column: post_ID (string)
[ ] Link the DataTable in both If Job Not in Database and Insert row nodes
[ ] Create your Google Sheet with headers in row 2 and connect it in Append row in sheet
[ ] Customize job titles and tool name inside Match Job Title

Support & Questions

Have questions, need help setting it up, or want to suggest improvements?

πŸ“§ Email: [email protected]
πŸ”— LinkedIn: https://www.linkedin.com/in/salman-mehboob-pro/

Nodes Used (2)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets