Match LinkedIn jobs and generate cover letters with OpenAI, Apify and Sheets
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
Runs daily at 5 PM
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
GPT-4.1 Mini
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
Match score Cover letter
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
Related Templates
Extract Named Entities from Web Pages with Google Natural Language API
Who is this for? Content strategists analyzing web page semantic content SEO professionals conducting entity-based anal...
Add product ideas to Notion via a Slack command
Use Case In most companies, employees have a lot of great ideas. That was the same for us at n8n. We wanted to make it a...
Automate Daily Keyword Research with Google Sheets, Suggest API & Custom Search
Who's it for This workflow is perfect for SEO specialists, marketers, bloggers, and content creators who want to automa...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments