This n8n workflow automatically searches LinkedIn jobs using Apify, compares each job with your resume using AI, calculates a match score, generates a personalized cover letter, and stores everything inside Google Sheets.
High-scoring jobs are instantly sent to Telegram so you can apply faster to the most relevant opportunities.
Workflow Structure
Step 1 — Schedule Trigger
Node: Schedule Trigger
This node automatically starts the workflow every day at a specific time.
What it does
- Runs the workflow automatically
- Eliminates manual execution
- Creates a fully automated job-hunting system
Current Configuration
Step 2 — Download Resume PDF
Node: Download file
This node downloads the resume PDF from Google Drive.
What it does
- Connects to Google Drive
- Downloads the selected resume file
- Sends the file to the next processing step
Why it matters
Your resume becomes dynamic input for the AI matching system.
Step 3 — Extract Resume Text
Node: Extract from File
This node extracts readable text from the PDF resume.
What it does
- Reads the PDF file
- Extracts plain text content
- Makes the resume understandable for AI
Output
- Resume text
- PDF metadata
- Structured readable content
Step 4 — Read Job Search Filters
Node: Get row(s) in sheet
This node reads job search preferences from Google Sheets.
What it reads
- Job keyword
- Preferred location
- Easy Apply option
Example
| Keyword |
Location |
Easy Apply |
| Software Developer |
Bangalore |
true |
Step 5 — LinkedIn Job Scraper
Node: Run an Actor and get dataset
This node uses Apify to scrape LinkedIn job listings.
What it does
- Searches LinkedIn jobs
- Uses keyword + location filters
- Fetches latest job postings
- Supports Easy Apply filtering
Example Search
- Software Developer
- Bangalore
- Easy Apply enabled
Output Includes
- Job title
- Company name
- Job description
- LinkedIn apply link
- Applicant count
- Workplace type
Step 6 — Process Jobs One-by-One
Node: Loop Over Items
This node processes each scraped job individually.
What it does
- Loops through all job listings
- Processes one job at a time
- Prevents AI overload
- Maintains stable execution
Step 7 — AI Resume Matcher
Node: Job Matcher
This is the core AI engine of the workflow.
AI Model Used
What it does
- Reads your resume
- Reads the job description
- Compares both intelligently
- Calculates a job match score
- Generates a personalized cover letter
AI Output
{
"score": 80,
"coverLetter": "Generated personalized cover letter"
}
Step 8 — Parse AI Output
Node: Edit Fields
This node formats the AI response into reusable structured data.
What it does
- Converts raw AI response into JSON
- Cleans output formatting
- Makes fields reusable in later nodes
Output Fields
Step 9 — Save Results to Google Sheets
Node: Append or update row in sheet
This node stores processed jobs inside Google Sheets.
What gets saved
- Job title
- Company
- Location
- Job description
- Apply link
- Match score
- AI-generated cover letter
Step 10 — High Match Score Filter
Node: Score Filter
This node filters only high-quality job matches.
Current Logic
Continue only if:
Score ≥ 50
Step 11 — Telegram Job Alerts
Node: Send a text message
This node sends instant Telegram notifications for top job matches.
What it sends
- Job title
- Company
- Location
- Match score
- Apply link