// FREE CASE STUDY

How I Built a LinkedIn CRM in a single day.

The exact system I use to manage 2,283 connections, generate personalized outreach, and never let a warm lead go cold. Built with Claude Cowork.

8 steps from idea to live system
AI-generated outreach sequences per prospect
Profile viewer tracking to catch warm leads
// THE BUILD
Step 1-3 → Export, clean, and structure your LinkedIn data
Step 4-6 → Build the database and intelligence layer
Step 7-8 → Generate personalized outreach at scale

No spam. Unsubscribe anytime.

What's Inside 3 phases
// Phase 1

Data Pipeline

Export your LinkedIn connections and transform raw CSV data into a structured database.

Foundation
// Phase 2

Intelligence Layer

AI-powered research on every connection. Company context, role analysis, and conversation hooks.

AI-Powered
// Phase 3

Outreach Engine

Generate personalized sequences for each prospect. No templates, no generic pitches.

Personalized

Your connections are sitting there. Put them to work.

Enter your email for the complete 8-step LinkedIn CRM build guide.

No spam. Unsubscribe anytime.

How I Built a LinkedIn CRM
in a single day.

A semi-technical guide to building your own AI-powered LinkedIn intelligence system using Cowork, Supabase, and Vercel; no coding background required.

2,283
connections managed
1 day
first version built
5
AI messages per prospect
~$100
per month, full stack

A personal LinkedIn CRM that actually works for you.

Not a generic sales tool. A system built around how you actually think about your network: who matters, what stage they are at, and what to say next.

Pipeline Dashboard

Visual Kanban board with 9 stages from New to Won. Drag and drop. Auto-saves to your database.

AI Outreach Sequences

Claude generates 5 personalised LinkedIn messages per prospect. Informed by company news. No pitch until message 4.

Profile Viewer Tracking

Capture who views your LinkedIn profile. Convert them to prospects in one click. Warm leads, not cold ones.

Follow-up Reminders

Automatic reminders created when you send a message. Never let a warm conversation go cold again.

News Intelligence

One-click research that pulls recent company and industry news from Google News. Context before you reach out.

Content Analytics

Track your LinkedIn post performance. See what lands. Post more of what works.

What you need: less than you think.

Tools and what they cost

Claude Cowork$100/month. Your AI builder. You describe what you want, it writes the code.
Claude APIA few cents per message. Powers the AI outreach sequence generator. Pay only for what you use.
ApifySmall monthly cost depending on usage. Used for scraping LinkedIn post analytics and profile data.
SupabaseFree tier. Your database, authentication, and API layer all in one.
Vercel + GitHubBoth free. Stores your code and auto-deploys any time you push a change.
LinkedIn PremiumOptional but recommended. Gives you 90 days of profile viewer history.

Skills and time

Coding knowledgeNone required. You describe. Cowork builds.
Time for first version4 to 6 hours. Most of that is describing what you want and testing.
Ability to describe a problemThis is the actual skill. "I want a table that shows all my connections, filterable by industry" is enough.
Patience for iterationYou will say "that is not quite right" several times. That is normal. That is the process.

8 steps from idea to live system.

1
Foundation

Get clear on what you actually need

Before you open Cowork, spend 20 minutes writing down exactly what frustrates you about managing your network. The more specific you are, the better the system you will build.

The biggest mistake people make is opening a tool and saying "build me a CRM." Cowork is brilliant at building what you describe, so describe the right thing.

Write down answers to these three questions before you start:

Do this first
  • 1
    What do you want to track? For me it was: name, company, role, LinkedIn URL, when we connected, outreach status, and follow-up dates.
  • 2
    What are your pipeline stages? I used: New, Researched, Contacted, Replied, Meeting Booked, Proposal Sent, Won, Lost, Nurture.
  • 3
    What is the one thing that would save you the most time? For me it was AI-written outreach messages. Everything else was secondary.
The Cowork principle

You are not writing code. You are writing requirements. Treat Cowork like a very capable developer who needs to understand your business before they build anything.

2
Database

Set up Supabase

Supabase is your database. It stores everything: your contacts, outreach sequences, follow-ups, notes. It also handles login so only you can see your data.

Go to supabase.com and create a free account. Create a new project and give it a name. The free tier is more than enough for a personal CRM.

Exact steps
  • 1
    Go to supabase.com → Sign up → New Project. Note your project URL and anon key; you will need these later. They are in Project Settings → API.
  • 2
    Enable Email Auth with Magic Links. Go to Authentication → Providers → Email → Enable. This means you log in via an email link, no password needed.
  • 3
    Tell Cowork your project URL and anon key and ask it to create the database schema for you. It will write and run the SQL to create your tables.
  • 4
    Ask Cowork to add Row Level Security policies so your data is locked to your email address. Only you can read or write your CRM data.
What tables I created

prospects, email_sequences, news_intel, follow_up_reminders, content_posts, profile_viewers, pipeline_snapshots. Ask Cowork to create these for you; just describe what each one should store.

3
Data

Export your LinkedIn connections

LinkedIn lets you download a CSV of all your connections: names, companies, job titles, and LinkedIn URLs. This is the raw material for your CRM.

How to export
  • 1
    On LinkedIn, go to Settings and Privacy → Data Privacy → Get a copy of your data.
  • 2
    Select Connections only. Request the archive. LinkedIn emails you a download link within 10 minutes to 24 hours.
  • 3
    Download the ZIP and open Connections.csv. Each row is a connection with: First Name, Last Name, LinkedIn URL, Email (where shared), Company, Position, Connected On.
  • 4
    Upload the CSV to Cowork and ask it to filter and load the contacts you want. I filtered for connections most relevant to my target market: L&D leads, transformation leaders, HR directors.
My numbers

I had 2,283 connections. I loaded 923 as prospects, those most relevant to my market. The others stayed in the CSV as a backup pool.

4
The main build

Build the dashboard in Cowork

This is where most of your time goes. You are describing what you want to see and how you want to interact with your data. Cowork writes the code. You test it. You refine.

Open a new Cowork session in your LinkedIn project folder. Start by describing the whole system, then build it section by section.

How to describe it to Cowork
  • 1
    Start with the overview. Tell Cowork: "I want a single-page dashboard that connects to my Supabase database and shows my LinkedIn prospects. It needs three views: an overview with metrics, a Kanban pipeline, and a searchable table."
  • 2
    Describe the Kanban board. "Each column is a pipeline stage. Cards show the prospect name, company, and score. I should be able to drag a card to move them to a new stage and it should save automatically."
  • 3
    Describe the detail panel. "When I click on a prospect, a panel slides in from the right showing all their details: name, company, role, score, LinkedIn link, notes, last contacted date, and next follow-up."
  • 4
    Ask for your brand colours. Give Cowork your exact hex codes and fonts. A CRM you actually enjoy looking at is one you will actually use.
  • 5
    Test and refine in loops. Open the file in your browser after each change. Tell Cowork what to fix. Repeat until it feels right.
The iteration loop

Expect 5 to 10 rounds of feedback before it feels right. This is normal. The quality of what you build is directly proportional to the quality of your feedback. "The cards look too cramped" is better than "fix the layout." "I want the company name to appear below the prospect name in bold" is better still.

The exact project instructions I used
This project uses LinkedIn as the primary channel for personalised outreach and prospecting. The goal is to sell Claude Cowork training programmes to medium and large businesses (B2B) and direct to professionals (B2C).

This project connects LinkedIn connections and followers all the way through to outreach drafts I can copy and paste directly into LinkedIn.

What this system does:
- Segments existing connections and identifies new ones worth pursuing
- Enriches prospect data with verified email addresses via Apollo.io
- Uses the Claude API to research recent news about each prospect (their company or personal achievements) to power hyper-personalised outreach
- Generates 3 to 5 message LinkedIn outreach sequences tailored to what is happening in the prospect's world right now

The dashboard:
Build a beautiful single-file HTML dashboard I can open every 2 to 3 days to see:
- Changes in my network: new connections, profile viewers, and engagement signals
- Outreach pipeline: who I have contacted, what stage they are at, and what follow-up is due
- Content performance: which posts got the most impressions, likes, and profile views, and what I should do more or less of
- Lead acquisition: new leads from content engagement, profile views, and connection requests

Non-negotiables:
- Surface follow-up reminders so I never let a warm prospect go cold
- Kanban pipeline view with drag-and-drop stage updates
- Click-to-copy outreach messages so I can paste directly into LinkedIn
- Supabase as the database with Row Level Security locked to my email
- Deploy via Vercel so I can access it from any device

I post content on LinkedIn Monday to Thursday. Topics centre on Claude Cowork and AI for business. The system should connect content performance to lead generation so I can see which posts are driving real pipeline activity.
5
Data import

Load your connections as prospects

Once the dashboard is built and connected to Supabase, it is time to populate it with real data from your LinkedIn export.

Ask Cowork to write a script that reads your Connections CSV and loads the relevant contacts into your Supabase prospects table. You decide the filtering criteria.

What to ask Cowork
  • 1
    Upload your Connections.csv to Cowork and say: "Load all connections where the company is not blank into my Supabase prospects table. Set their stage to 'new' and score to 5."
  • 2
    If you want to filter by industry or role: "Only load connections where the position contains Director, VP, Head of, or Chief." Cowork can filter as it imports.
  • 3
    Ask Cowork to add a scoring logic: "Score each prospect 1 to 10 based on their job title seniority and whether their company is in my target industries." This auto-generates your hot lead list.
Quality over quantity

Do not load everyone. Load the people you actually want to talk to. 923 well-chosen prospects beats 2,283 random contacts every time. You can always load more later.

6
AI outreach

Add AI-powered outreach sequences

This is the part that makes the system genuinely useful. A Supabase Edge Function calls the Claude API to generate 5 personalised LinkedIn messages for each prospect.

Ask Cowork to build a Supabase Edge Function that takes a prospect's name, company, role, and recent news intel and generates a 5-message LinkedIn sequence using the Claude API.

The key instructions for Cowork
  • 1
    Build the Edge Function. "Create a Supabase Edge Function called generate-sequence that calls the Claude API. It receives a prospect's details and returns 5 LinkedIn messages."
  • 2
    Write your own system prompt. This is the most important part. Tell Claude exactly how you want to sound. My rule: no pitch before message 4. Start with genuine curiosity. Never quote news articles back at them; use the intel to decide what to ask, not what to say.
  • 3
    Add a news research function. "Before generating messages, fetch recent news about the prospect's company from Google News RSS and include it as context." This is what makes the messages feel relevant.
  • 4
    Add click-to-copy. "Show each message in the side panel with a copy button. When I click it, the message copies to my clipboard so I can paste it directly into LinkedIn." Small detail, massive time saver.
  • 5
    Track what you send. "When I mark a message as sent, update the prospect's stage and create a follow-up reminder 5 days later." This closes the loop automatically.
On tone

The system prompt you write for the sequence generator is where the real work is. Spend time on it. The difference between a message that gets a reply and one that gets ignored is almost always in the first sentence. Tell Claude: write like you are at a dinner party and someone asked what you do. Not like you are pitching.

7
Warm leads

Connect profile viewer tracking

People who view your LinkedIn profile already know you exist. They are warm. This step captures them and turns them into pipeline entries before they disappear.

LinkedIn Premium shows you who viewed your profile in the last 90 days. The CRM has a Smart Paste feature that extracts that data without any scraping or API access needed.

How to build and use this
  • 1
    Ask Cowork to build a Profile Viewers tab in your dashboard. "Show a table of people who viewed my profile: name, headline, company, when they viewed, and a button to convert them to a prospect."
  • 2
    Ask Cowork to build a Smart Paste parser: "Add a button that opens a modal where I can paste text from LinkedIn's Who Viewed My Profile page. Parse out names, headlines, companies, and view dates automatically."
  • 3
    To use it: on LinkedIn, go to Who viewed your profile. Press Cmd+A to select all, Cmd+C to copy. In the CRM, click Import Viewers and paste. The parser extracts the viewer data and saves it.
  • 4
    Click Convert to Prospect on any viewer. They appear in your pipeline immediately at stage New, ready for outreach.
Why this matters

A profile view after you post content is a signal. That person saw your post, was curious enough to click, and looked at your profile. That is not a cold lead. That is a warm lead who has self-selected. Treat them differently.

8
Go live

Deploy to Vercel

Your CRM is a single HTML file that connects to Supabase. Deploying it to Vercel takes under 5 minutes and gives you a real URL you can open from any device.

Exact steps
  • 1
    Create a GitHub repository. Go to github.com → New Repository. Give it a name like linkedin-crm. Make it private.
  • 2
    Add your index.html file to the repository. In Terminal: git init → git add . → git commit -m "initial" → git push. Not a terminal person? Download GitHub Desktop (free, desktop app) and use its visual interface to commit and push instead.
  • 3
    Go to vercel.com → New Project → Import your GitHub repository. Click Deploy. Vercel builds and publishes it in about 30 seconds.
  • 4
    From now on, every time you push a change to GitHub (via Terminal or GitHub Desktop), Vercel auto-deploys. Your update is live in 30 seconds. No manual deployment needed.
  • 5
    Always use the Vercel URL for your demo. Opening the file directly in Chrome sometimes caches the old version. The Vercel URL always serves the latest version.
One-line deploy command

Once your repo is connected: cp ~/your-working-file/index.html ~/your-repo/index.html && cd ~/your-repo && git add . && git commit -m "update" && git push. Paste this into your notes and use it every time.

What to build next
+
Extend it

Where to take it next

The system above is a solid first version. Once it is working for you, here are the most valuable things to add.

  • Apollo enrichment. Connect Apollo.io to fill in email addresses and phone numbers for your prospects automatically. Ask Cowork to build an Apollo enrichment button in the detail panel.
  • Scheduled follow-up reminders. Ask Cowork to build a daily digest that emails you a list of follow-ups due today. Supabase Edge Functions can run on a cron schedule.
  • Content performance tracking. Use Apify to scrape engagement data from your LinkedIn posts automatically. See which content types drive the most profile views and connection requests.
  • Auto-scoring refinement. After 3 months of data, ask Cowork to analyse which prospect attributes correlate with replies and bookings. Use that to sharpen the scoring algorithm.
Free Claude Skill

Build yours with a single command.

I turned this entire build into an installable Claude skill. Download it, add it to Cowork in under a minute, and Claude will walk you through building your own version step by step; adapted to your use case, your audience, and your offer.

Download the LinkedIn CRM Skill

How to install it in Cowork

1
Click the button above to download the linkedin-crm-builder.skill file to your computer.
2
Open Claude Cowork on your desktop. Click Customize in the top right corner.
3
Select Create new skills and upload the .skill file you just downloaded.
4
Open a new Cowork chat and type: "Help me build my LinkedIn CRM" and Claude will take it from there.

You just saw what's possible. Now build yours.

This is what one day with Claude Cowork looks like. In the workshop, you build something real, for your actual workflow. Live, hands-on, no theory slides.

Become a Claude Pro