LinkedIn + Google Sheets: ICP scores you can trust
You finally have a list of LinkedIn leads. Then the real time-waster starts: clicking profiles, guessing fit, and arguing internally about who’s “qualified” enough to message first.
This is where LinkedIn ICP scoring pays for itself. Growth marketers feel it when outbound gets noisy. Sales leads feel it when reps cherry-pick. And agency owners feel it when clients ask why outreach isn’t converting.
This workflow scores LinkedIn profiles against your ICP, formats the result cleanly, and makes it easy to send the same scoring logic into Google Sheets so your team can move faster with fewer bad fits.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: LinkedIn + Google Sheets: ICP scores you can trust
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtop.svg' width='40' height='40' /></div><br/>Calculate ICP PersonScoring"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>On form submission"]
n2@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Parameters", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n3 --> n0
n1 --> n3
n0 --> n4
n2 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1,n2 trigger
classDef customIcon fill:none,stroke:none
class n0,n1 customIcon
The Problem: ICP scoring gets inconsistent fast
Manual lead review sounds simple until you’re doing it every day. One person checks “AI interest” by scanning posts, another uses job titles as a proxy, and someone else only looks at company logos. The result is a messy pipeline where priority shifts depending on who did the research. You also get a second problem: once you’ve reviewed a profile, you can’t easily explain why it scored well without digging back through notes. That kills momentum when you’re trying to launch a campaign quickly.
It adds up fast. Here’s where it usually breaks down.
- Reps spend about 10 minutes per profile, then still disagree on “fit.”
- Good leads slip through because the first pass focused on the wrong signal (title over actual technical depth).
- Notes end up in DMs, Notion, spreadsheets, and nowhere at the same time.
- You can’t scale review without hiring, because the process lives in someone’s head.
The Solution: Score each LinkedIn profile against your ICP, then log it
This n8n workflow takes a LinkedIn profile URL, enriches the profile through Airtop (connected to LinkedIn), and scores the person against your Ideal Customer Profile using criteria you define. Instead of vague labels, it evaluates specific dimensions like AI interest, seniority level, and technical depth. Those dimensions are then converted into a weighted ICP score (out of 95) so the output is consistent across every lead. Finally, the workflow formats the enriched profile into clean JSON, which makes it easy to store, route, or push into Google Sheets for day-to-day prioritization. No more “I feel like this lead is good.” You get a repeatable scoring method your team can trust.
The workflow starts from a simple trigger (a form or another workflow), then maps your inputs into the right fields. Airtop does the heavy lifting by extracting relevant profile data and applying your ICP scoring method. The final payload is cleaned and ready to send into Google Sheets or your CRM.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you review 30 LinkedIn profiles each week. Manually, even a “quick look” takes about 10 minutes per profile once you open the page, skim posts, guess seniority, and write notes, which is roughly 5 hours a week. With this workflow, you submit the URLs (or pass them from another workflow), Airtop scores them, and you log the clean results to Google Sheets in a few minutes of setup time plus processing. You still make the final call, but you’re doing it with a ranked list instead of a pile of tabs.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtop for LinkedIn enrichment and ICP scoring
- Google Sheets to store and sort scored leads
- Airtop API credentials (get them from your Airtop dashboard)
Skill level: Beginner. You will connect accounts and paste your ICP scoring method into the Airtop prompt.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A lead comes in. The workflow can start from a form submission (someone pastes a LinkedIn URL) or from another n8n workflow that already collects leads.
Your inputs get normalized. A mapping step ensures the LinkedIn profile URL and any related parameters are named correctly, so the scoring step doesn’t fail halfway through.
Airtop enriches and scores the person. Using an Airtop profile connected to LinkedIn, the workflow extracts profile details and applies your ICP scoring method, including AI interest, technical depth, and seniority.
The output gets cleaned for easy logging. The result is formatted as JSON so it can be saved to Google Sheets, routed to a CRM, or merged into other lead-gen steps.
You can easily modify the scoring weights and the output fields to match your outreach process. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the two entry points that feed data into your workflow: a public form and a workflow-call trigger.
- Open Form Intake Trigger and set Form Title to
ICP Scoring. - In Form Intake Trigger, add two required fields: Linkedin Person Profile URL and Airtop Profile (connected to Linkedin).
- Set Form Description to
This automation takes person's Linkedin Profile URL and Airtop Profile (authenticated for Linkedin) and returns the person's ICP score. - Open Workflow Call Trigger and ensure Workflow Inputs include
Linkedin_URLandAirtop_profileso external workflows can pass values.
Step 2: Connect Airtop
Authenticate the Airtop integration used to extract LinkedIn data and calculate ICP scores.
- Select Compute ICP Score and connect credentials.
- Credential Required: Connect your airtopApi credentials.
Step 3: Set Up the AI Extraction Node
Map inputs from either trigger and configure Airtop to extract profile details and compute the ICP score.
- In Map Input Fields, add a string field named Linkedi_URL with the value
{{ $json["Linkedin Person Profile URL"] || $json.Linkedin_URL }}. - In Map Input Fields, add a string field named Airtop_profile with the value
{{ $json["Airtop Profile (connected to Linkedin)"] || $json.Airtop_profile }}. - In Compute ICP Score, set URL to
{{ $json.Linkedi_URL }}and Profile Name to{{ $json.Airtop_profile }}. - Confirm Resource is
extraction, Operation isquery, and Session Mode isnew.
Step 4: Configure Output Formatting
Transform the Airtop response into a clean JSON output for downstream use.
- Open Format Result Payload and set Mode to
raw. - Set JSON Output to
{{ $json.data.modelResponse }}to return the structured extraction result.
Step 5: Test and Activate Your Workflow
Validate the full execution path from trigger to formatted output before enabling the workflow.
- Use Form Intake Trigger to submit a test LinkedIn profile URL and Airtop profile name, then run the workflow manually.
- Alternatively, trigger Workflow Call Trigger from another workflow by sending
Linkedin_URLandAirtop_profile. - Confirm the execution flow: Form Intake Trigger or Workflow Call Trigger → Map Input Fields → Compute ICP Score → Format Result Payload.
- Verify that Format Result Payload returns the structured ICP output with fields like
full_name,seniority_level, andicp_score. - Switch the workflow to Active to enable production use.
Common Gotchas
- Airtop credentials can expire or need specific permissions. If things break, check your Airtop connection and API key settings in n8n first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your ICP definitions and brand language inside the Airtop prompt early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Airtop and Google accounts are ready.
No. You’ll mainly connect Airtop and set your scoring prompt. The rest is configuring fields and testing with a few profiles.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Airtop usage and any AI model costs if you extend the workflow with OpenAI.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. You’ll update the scoring method inside the Airtop node prompt, then adjust the weighted points so the final score reflects what your team actually sells. Common tweaks include changing what counts as “AI interest,” adding role-specific seniority exceptions, and boosting technical depth for technical buyers. You can also edit the final “Format Result Payload” step to include extra fields you care about in Google Sheets.
Usually it’s an expired Airtop API credential or the Airtop profile is no longer properly connected to LinkedIn. Update the Airtop credentials in n8n, then confirm the Airtop profile you selected still has access. If you’re scoring lots of profiles in a short time, rate limits can also surface as intermittent failures, so spacing executions can help.
A few hundred profiles a day is realistic for many teams, as long as you respect Airtop limits and your n8n plan.
For ICP scoring, n8n is usually the better fit when you want repeatable logic, richer data shaping, and room to grow without turning every extra step into a billing problem. You can branch, merge, loop through lists, and call sub-workflows in ways that are clunky (or expensive) elsewhere. The tradeoff is that you’ll spend a little more time setting things up the first time. If you only need a simple “URL in, row out” flow, Zapier or Make may be quicker. If you’re unsure, Talk to an automation expert and get a recommendation based on your lead volume and process.
Once scoring is consistent, outreach gets calmer. Your list tells you who to contact first, and your team stops wasting good energy on bad fits.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.