πŸ‘₯ Match LinkedIn jobs and generate cover letters with OpenAI, Apify and Sheets

⚑ 170 views Β· πŸ‘₯ HR & Recruitment

πŸ’‘ Pro Tip β€” If you’re pulling LinkedIn data through HTTP requests or dealing with API restrictions, there’s a community node called ScraperNode that handles this natively. It has dedicated scrapers for profiles, companies, jobs, and people search β€” you just pass a URL and get structured data back.

View All Scrapers

Description

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

Current Configuration


Step 2 β€” Download Resume PDF

Node: Download file

This node downloads the resume PDF from Google Drive.

What it does

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

Output


Step 4 β€” Read Job Search Filters

Node: Get row(s) in sheet

This node reads job search preferences from Google Sheets.

What it reads

Example

KeywordLocationEasy Apply
Software DeveloperBangaloretrue

Step 5 β€” LinkedIn Job Scraper

Node: Run an Actor and get dataset

This node uses Apify to scrape LinkedIn job listings.

What it does

Output Includes


Step 6 β€” Process Jobs One-by-One

Node: Loop Over Items

This node processes each scraped job individually.

What it does


Step 7 β€” AI Resume Matcher

Node: Job Matcher

This is the core AI engine of the workflow.

AI Model Used

What it does

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

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


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

πŸ”— Nodes Used

Google Sheets, Telegram, Google Drive, Schedule Trigger, AI Agent, OpenAI Chat Model

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup