For each Ideal Fit lead, Claude scrapes their profile, analyses their current LinkedIn packaging, generates an improved banner and profile picture, writes a personalised DM, and queues everything for your approval before sending.
The free value concept
The founder's specific free value is an improved LinkedIn profile package: a professional banner clearly communicating the prospect's value prop, an improved profile picture (better framing, lighting, background), and a sharper headline.
For a B2B marketing services founder selling LinkedIn growth, this is perfect value-product alignment. What he sells is LinkedIn presence; what he gives away free is a preview of LinkedIn presence. The prospect sees the output, wants more of it, and opens the conversation.
Apply the principle to your own offer:
| What you sell |
Free value to deliver |
| LinkedIn content / ghostwriting |
Rewritten version of their worst-performing post |
| SEO / content marketing |
Mini audit of their top 5 pages (Claude + Screaming Frog) |
| Sales training / coaching |
Scorecard of their SDR team's LinkedIn profiles |
| RevOps / Salesforce consulting |
One-page diagnosis of their pipeline stages (from job postings) |
| Paid ads / PPC |
Analysis of their current ad creative vs top performers in their category |
| Design / branding |
Redesigned hero section for their landing page |
| Cold email / outbound |
Sample rewritten version of a cold email they posted publicly |
| Recruitment / HR |
Salary benchmarking report for their open role |
The rule: the free value must be specific to them (not a generic template), generated by Claude (95% of the work done automatically), and a direct preview of what they'd get if they hired you.
How Claude generates the profile package
Two APIs are involved:
- Apify LinkedIn Profile scraper — scrapes the prospect's current banner, profile picture, headline, about section, and recent posts
- Kia AI (kiaai.com) — image generation API. Claude connects via the nana-banana-pro gateway, which gives access to multiple image generation models including FLUX and Midjourney-equivalent quality.
Step 1 — analyse their current packaging:
"Analyse the LinkedIn profile of [NAME] at [URL].
Fetch via Apify LinkedIn Profile scraper.
Analyse their current packaging:
1. Banner: what does it communicate? Is it professional? Does it clearly show their value prop?
2. Profile picture: quality, professionalism, visual hierarchy
3. Headline: is it outcome-focused or just a job title?
4. About section: does it speak to their ICP or to their own ego?
Rate each element 1-5.
Identify the 2 highest-leverage improvements.
Write a brief explaining what the improved banner should look like."
Step 2 — generate the improved banner:
"Using Kia AI, generate an improved LinkedIn banner for [NAME].
Banner brief (from the profile analysis):
- Their name: [NAME]
- Their value prop: [WHAT THEY DO FOR THEIR ICP]
- Their ICP: [WHO THEY SERVE]
- Visual style: professional, clean, [THEIR BRAND COLOURS if visible]
- Must include: their value prop as the headline text, a clear visual hierarchy, professional design
- Must not include: stock photo clichés, cluttered layouts, generic backgrounds
Generate in LinkedIn banner dimensions: 1584 x 396 pixels.
Save to outreach/[name]-banner.png."
Step 3 — generate the improved profile picture:
"Using Kia AI, generate an improved profile picture for [NAME].
Current profile picture analysis: [PASTE FROM STEP 1]
Improvement direction:
- Professional headshot style
- Neutral or slightly blurred background
- Good lighting, forward-facing
- Confident expression
- If their current picture is poor quality: generate a clean professional version in the same style
Dimensions: 400 x 400 pixels (LinkedIn profile picture standard).
Save to outreach/[name]-profile.png."
The outreach message
The message that goes with the value asset. This is not a pitch — it references the asset and delivers it.
Structure:
- Line 1 — specific observation about their current LinkedIn packaging, referencing something real
- Line 2 — the value you're delivering
- Line 3 — a single soft ask
Length: under 300 characters for a connection request note, under 500 for a first DM to an existing connection.
"Write a LinkedIn outreach message for [NAME], [TITLE] at [COMPANY].
Context:
- Their current LinkedIn packaging: [PASTE THE ANALYSIS FROM STEP 1]
- What I am sending them: an improved banner and profile picture
- My offer: [WHAT I SELL]
Message format:
- Line 1: Specific observation about their current packaging (not generic, must reference what you actually found)
- Line 2: I put together an improved version for you. Take it for free.
- Line 3: One soft ask (not a pitch, not a meeting request, just open the door)
Rules:
- Under 500 characters total
- No em dashes
- No 'I hope this message finds you well'
- No generic compliments
- Must feel like a human who spent time on this, not a template"
What the founder actually sent:
Hey Bob, noticed your LinkedIn packaging isn't showing what you actually offer. I put together an improved banner and photo for you, take them for free. Would be keen to hear if it resonates.
Bob's reply: "Sure, sounds good. Thanks. Here's my email, send it over."
The approval and send workflow
This system is 95% automated. The 5% manual touch is the approval step — you review the generated assets and the drafted message before anything goes out.
"Process the Ideal Fit leads from scored/leads_scored.csv (score 8+).
For each lead:
1. Fetch their full LinkedIn profile via Apify
2. Analyse their current packaging (banner, picture, headline, about)
3. Generate improved banner (save to outreach/[name]-banner.png)
4. Generate improved profile picture (save to outreach/[name]-profile.png)
5. Write a personalised outreach message (under 500 characters, no em dashes)
6. Add them to outreach/queue.html with:
- Their name, title, company, LinkedIn URL
- Their current banner and picture (screenshot from scrape)
- The generated new banner and picture
- The drafted message
- Two buttons: APPROVE (queues for send) or SKIP (removes from queue)
Process [N] leads per run. Do not send anything yet.
Wait for my review of outreach/queue.html before sending."
After you approve:
"Send approved outreach from outreach/queue.html.
For each APPROVED lead:
1. Open their LinkedIn profile in Chrome
2. Send them the DM with the message I approved
3. Attach the banner and profile picture files
4. Log the send to outreach/contact_log.csv:
Name | Title | Company | LinkedIn URL | Message sent | Assets attached | Date | Status
5. Wait 60-90 seconds between sends (randomise the delay)
6. Stop after 30 sends per day
Report: N sent today, N remaining in queue, N daily limit remaining."