Automate LinkedIn ICP Scoring with n8n and Airtop AI

Discover how this n8n workflow uses Airtop AI and Google Sheets to analyze LinkedIn profiles and calculate ICP Scores automatically, saving hours of manual research and scoring. Perfect for sales and marketing teams striving for precision targeting.
manualTrigger
airtop
code
+1
Learn how to Build this Workflow with AI:
Workflow Identifier: 2105
NODES in Use: Manual Trigger, Airtop, Code, Google Sheets

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Sarah, a sales manager at a fast-growing AI startup. Every week, Sarah spends countless hours manually reviewing LinkedIn profiles of potential clients to gauge whether they fit her company’s ideal customer profile (ICP). She needs to understand key details like job title, company, seniority, and especially the person’s interest level in AI. This manual process is time-consuming, error-prone, and wastes precious hours that could be better spent closing deals.

Imagine if Sarah could automatically extract detailed professional information from LinkedIn profiles and quantify an ICP score, instantly prioritizing the hottest leads. That’s exactly the scenario this n8n workflow solves, transforming tedious manual data gathering into an automated, reliable, and scalable process.

2. What This Automation Does

This workflow leverages the power of n8n automation, the AI capabilities of Airtop, and the flexibility of Google Sheets to automate ICP scoring from LinkedIn profiles. When triggered, it:

  • Reads LinkedIn profile URLs one by one from a Google Sheet, which serves as the database of prospects.
  • Sends each LinkedIn URL to Airtop AI for deep profile extraction, fetching name, job title, employer, location, connections, followers, About section, and key qualitative metrics like AI interest and technical depth.
  • Calculates an ICP score based on AI interest, seniority, and technical depth with weighted points reflecting lead quality.
  • Formats the extracted data and calculated score to perfectly match the Google Sheet’s schema.
  • Updates the original Google Sheet row with the ICP score, making it easy for sales team members to see prioritized leads at a glance.
  • Runs manually on demand via the manual trigger node, giving full control over when to update data.

By automating these tedious tasks, this workflow can save an estimated 5-10 hours a week per sales or marketing team member and drastically reduce scoring inconsistencies.

3. Prerequisites ⚙️

  • n8n account (cloud or self-hosted; self-hosting recommended for enterprise control 🔐)
  • Google Sheets account 📊 with a spreadsheet containing LinkedIn URLs and columns for ICP score updates
  • Airtop AI API credentials 🔑 to perform profile extraction and scoring

If you prefer self-hosting n8n for better security and flexibility, consider platforms like Hostinger for easy setup.

4. Step-by-Step Guide

Step 1: Setup the Manual Trigger

In your n8n editor, add a Manual Trigger node named “When clicking ‘Test workflow’”. This lets you start the workflow manually at any time.

How to: Click + Add Node → Search “Manual Trigger” → Select and position appropriately. No configuration needed.

Expected outcome: You can trigger the workflow yourself to test or run live.

Common mistake: Forgetting this step means you have no way to start the workflow manually.

Step 2: Connect to Google Sheets and Fetch Data

Add a Google Sheets node named “Get person” configured to read rows from your ICP spreadsheet.

How to: Click + Add Node → Search “Google Sheets” → Select, then under Operation, choose “Read” or “Lookup” rows. Enter your Spreadsheet ID (from the URL) and select the appropriate sheet/tab.

In this workflow: It reads the sheet where each row contains a LinkedIn URL under “Linkedin_URL_Person” plus a unique “row_number”.

Expected outcome: The node fetches the current list of people to analyze.

Common mistake: Incorrect Spreadsheet ID or insufficient permissions leading to errors.

Step 3: Setup Airtop AI Node to Extract Profile Data

Add the Airtop node titled “Calculate ICP PersonScoring”. This node takes each LinkedIn URL and queries Airtop’s AI to extract detailed profile information and calculate scores.

How to: Select the Airtop node, set the url parameter to be dynamically pulled from the Google Sheets data; for example {{ $json['Linkedin_URL_Person'] }}.

Next, enter the prompt exactly as per the workflow JSON. This prompt instructs Airtop to extract several key fields and calculate the ICP score based on specified criteria.

Expected outcome: Airtop returns structured data including name, current employer, AI interest level, and an ICP score.

Common mistake: Misformatting the prompt or field names results in incomplete or incorrect extraction.

Step 4: Format the AI Response with Code Node

Add a Code node named “Format response” after the Airtop node. This node reshapes the raw AI response to map only the relevant fields needed for the Google Sheet update.

How to: Use JavaScript mode with code:

const row_number = $('Get person').item.json.row_number;
const Linkedin_URL_Person = $('Get person').item.json.Linkedin_URL_Person;
const ICP_Score_Person = JSON.parse($input.item.json.data.modelResponse).icp_score;

return { json: {
  row_number,
  Linkedin_URL_Person,
  ICP_Score_Person
}};

Expected outcome: This node outputs only the row number, LinkedIn URL, and ICP score for updating the sheet.

Common mistake: Referencing incorrect node names or properties causes the code to fail.

Step 5: Update Google Sheet Row with ICP Score

Add a Google Sheets node named “Update row” configured to update the same spreadsheet row with the new ICP score.

How to: Select Operation as “Update”, use row_number as the matching column to identify rows accurately, and map the “ICP_Score_Person” field to update in the Sheet.

Expected outcome: The Google Sheet row for each LinkedIn profile updates with the new ICP score automatically.

Common mistake: Improper matching columns or schema mapping leads to failed updates or overwriting wrong rows.

5. Customizations ✏️

Customize Scoring Criteria

Within the Airtop node prompt, modify the scoring points for AI interest, seniority, or technical depth to reflect your unique business priorities.

Steps: In “Calculate ICP PersonScoring” node, edit prompt JSON where points are allocated (e.g., change expert AI interest from 35 to 40).

This changes how your leads are prioritized numerically.

Expand Profile Data Extraction

Edit the Airtop node prompt to additionally extract fields like education, certifications, or recent activity if desired.

Steps: Add new requested fields in the prompt JSON, then update the Code node to forward these fields for your records.

Automate Weekly Runs

Replace the manual trigger with a Cron node to automate this workflow at scheduled intervals (e.g., every Monday at 9 AM).

Steps: Remove manual trigger → Add Cron node with desired schedule → Connect to “Get person” node.

6. Troubleshooting 🔧

Problem: “Google Sheets node fails to fetch data”
Cause: Incorrect Spreadsheet ID or insufficient API permissions.
Solution: Verify Spreadsheet ID in the node, ensure Google API credentials are connected and have full read/write permissions.

Problem: “Airtop AI returns no data or malformed response”
Cause: Prompt formatting errors or incorrect dynamic URL inputs.
Solution: Double-check the prompt syntax in the Airtop node, confirm LinkedIn URLs are valid and complete.

Problem: “Code node throws errors referencing undefined properties”
Cause: Node names or JSON paths don’t match actual workflow data.
Solution: Verify exact node names in your workflow, and use debug console to inspect JSON outputs step-by-step.

7. Pre-Production Checklist ✅

  • Confirm Google Sheets API credentials have read and update permissions.
  • Test triggering workflow manually and verify each node runs without errors.
  • Validate Airtop node prompt syntax and confirm sample LinkedIn URLs return expected JSON data.
  • Ensure row matching in the “Update row” node is accurate to avoid data overwrites.
  • Backup Google Sheet before extensive batch runs to protect data integrity.

8. Deployment Guide

Activate your workflow by clicking “Execute Workflow” manually or set a schedule by replacing the Manual Trigger with a Cron node. Monitor the execution panel for errors.

You can log outputs mid-workflow or integrate an error notification node for alerting on failures.

9. FAQs

Q1: Can I use another AI service instead of Airtop?
A: Yes, but you’ll need to adjust the API call and prompt structure accordingly in n8n.

Q2: Does this workflow consume Airtop API credits?
A: Yes, each profile extraction and scoring counts as one API call.

Q3: Is my data secure?
A: Data security depends on your n8n setup and Airtop’s privacy policy. Self-hosting n8n enhances control.

10. Conclusion

By following this guide, you have automated the tedious process of extracting detailed LinkedIn profile data and calculating an ICP score using n8n, Airtop AI, and Google Sheets. This not only saves your team hours every week but also provides consistent, objective lead evaluation that helps prioritize sales efforts effectively.

Next, consider automating lead outreach based on ICP scores, integrating your CRM with this workflow, or expanding scoring criteria with additional data sources. You now have a powerful foundation to build smarter, faster sales prospecting processes.

Happy automating!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free