Write LinkedIn-based cold email icebreakers with Google Sheets, Apify and Claude

Go to Workflow
0 views
Built by Izuchukwu Izuchukwu
Created on September 27, 2026

Description

Quick overview
This workflow pulls unprocessed B2B leads from Google Sheets, uses Apify to scrape each lead’s recent LinkedIn posts and website content, generates a LinkedIn-based cold email icebreaker with Anthropic Claude, and writes the approved icebreaker back to the sheet.

How it works
Manually starts and reads leads from Google Sheets where the “Processed” column is set to “NO”.
Limits processing to the first 50 leads and loops through them one at a time.
For each lead, triggers an Apify actor run to scrape recent LinkedIn posts, waits briefly, fetches the actor dataset results, and extracts the most recent non-repost post text.
Fetches the lead’s company website HTML, converts it to plain text, and uses Anthropic Claude to summarize specific company details for context.
Uses Anthropic Claude to write a single 15–30 word icebreaker using only the LinkedIn post content, or returns “SKIP” if the post lacks a strong personalizable detail.
Rejects icebreakers that match banned patterns (for example missing “LinkedIn”, salesy language, clichés, or hyphenated phrasing) and flags them as “SKIP”.
After a short rate-limit wait, appends or updates the lead’s row in Google Sheets (matched by email) with the icebreaker and sets “Processed” to “YES”.

Setup
Connect your Google Sheets OAuth credentials and select the spreadsheet and sheet to read from and update.
Ensure your Google Sheet includes columns for at least “email”, “linkedin”, “company_website”, “Processed”, and “Icebreaker”, with “Processed” set to “NO” for new leads.
Provide an Apify API token and, if needed, replace the hardcoded Apify actor ID and token in the HTTP requests.
Add an Anthropic API credential and choose the Claude model used for website summarization and icebreaker writing.
Review the batch size (currently first 50 leads) and the wait durations (Apify wait and rate limiting) to fit your volume and scraping latency.

This workflow was created by Izuchukwu and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (5)

Anthropic Chat Model
@n8n/n8n-nodes-langchain.lmChatAnthropic
Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm
Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest