Score LinkedIn job matches with OpenAI, Google Sheets, Slack, and Apify
Quick overview Runs fetch_cat/linkedin-jobs-scraper daily to collect recent LinkedIn jobs, scores each listing against your candidate profile with OpenAI, saves qualified matches to Google Sheets, and sends the five strongest results to Slack without redelivering previously processed job IDs.
How it works Runs on a daily schedule (or via manual trigger) and ensures an n8n Data Table exists to track which LinkedIn job IDs have already been delivered. Runs the FetchCat LinkedIn Jobs Scraper (fetch_cat/linkedin-jobs-scraper) through Apify's API using your configured keywords and location, waits for the Actor run to finish, and downloads up to 10 structured job records from its dataset. Normalizes the scraped job records, caps the list to 10 items, and skips any jobs that already exist in the delivery ledger. Sends the remaining jobs to OpenAI in one structured request to score each job against your candidate profile and filters out results below the minimum score. Appends or updates qualified matches in Google Sheets (upserting by LinkedIn job ID) and formats a Slack message containing the five highest-scoring jobs. Posts the digest to your chosen Slack channel and records the delivered job IDs in the n8n Data Table only after both Google Sheets and Slack steps succeed.
Setup Open https://apify.com/fetch_cat/linkedin-jobs-scraper, add the FetchCat LinkedIn Jobs Scraper to your Apify account if required, then create an Apify API token. In n8n, add an HTTP Header Auth credential with header Authorization and value Bearer YOUR_APIFY_TOKEN, and select it in both FetchCat HTTP Request nodes. Add your OpenAI credentials and confirm the OpenAI model selection used for scoring. Connect Google Sheets OAuth credentials, set the target spreadsheet/document ID, and ensure a sheet/tab (for example, “Jobs”) exists with columns matching the fields being written (including “LinkedIn job ID”). Connect Slack credentials and select the channel where the digest should be posted. Update the search settings (keywords, location, candidate profile, minimum score, and max items) in the “Set Your Job Search” step and adjust the schedule time if needed.
Requirements Apify account with access to FetchCat LinkedIn Jobs Scraper: fetch_cat/linkedin-jobs-scraper
Customization Edit keywords, location, candidate profile, minimum score, and item limit in 1. Set Your Job Search. The workflow is configured specifically for fetch_cat/linkedin-jobs-scraper; keep its Actor input fields when adapting the search.
Additional info Actor used: FetchCat LinkedIn Jobs Scraper (fetch_cat/linkedin-jobs-scraper) - https://apify.com/fetch_cat/linkedin-jobs-scraper. It provides the structured LinkedIn job data used by the scoring, Google Sheets, and Slack steps. The template calls the Actor through standard HTTP Request nodes so it works in both n8n Cloud and self-hosted n8n without installing a community node.
Related Templates
Send structured logs to BetterStack from any workflow using HTTP Request
Send structured logs to BetterStack from any workflow using HTTP Request Who is this for? This workflow is perfect for...
Google Sheets UI for n8n Workflow
Google Sheets UI for Workflow Control This n8n template provides a practical and efficient way to manage your n8n workf...
Restore your workflows from GitHub
This workflow restores all n8n instance workflows from GitHub backups using the n8n API node. It complements the Backup ...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments