Research LinkedIn companies and score ICP fit with n8n

Turn a list of LinkedIn company URLs into full company profiles, including headcount growth, specialties, and offices, and score each company against your ICP with AI.

Turn a list of LinkedIn company URLs into full company profiles in Google Sheets: industry, specialties, headcount and range, headcount growth over 6, 12, and 24 months, average employee tenure, HQ and every office, founding year, followers, website, tagline, and description, plus an AI ICP score with a one-sentence reason. Researching and scoring companies this way is 15x more cost-effective than with Clay.

Headcount growth comes straight from LinkedIn, so you can spot companies that are scaling before you reach out. See the playbook Research any company on LinkedIn in one API call.

Import the template: Research LinkedIn companies and score ICP fit with Periodix Actions, Claude, and Google Sheets

What you need

  • A Periodix Actions account with a connected LinkedIn profile (3-day free trial)
  • The Periodix Actions node installed (listed in n8n as Periodix LinkedIn), see Installation
  • An AI provider credential: Claude by default, OpenAI or Gemini also work
  • A Google Sheet with two tabs: Input with a company_url column, and Researched with these headers: company_url, public_identifier, name, website, industry, employee_count, employee_range, hq_city, hq_country, offices, office_count, founded, followers, headcount_growth_6m, headcount_growth_12m, headcount_growth_24m, avg_tenure, specialties, tagline, description, icp_score, icp_reason, icp_fit, researched_at

Workflow at a glance

Run Research → ICP Config → Read Companies to Research → Read Already Researched → Build Queue → Loop Over Companies → Get Company Profile (Periodix Actions) → Normalize Company → Claude: ICP Fit → Parse Score → Save to Researched Tab

Step by step

1. ICP Config (Set node)

FieldWhat it controls
icp_descriptionYour ideal customer company: industry, size, region, growth stage, and what makes a company a bad fit
score_thresholdMinimum score for icp_fit = yes (default 7)

2. Read and Build Queue (Google Sheets + Code)

Reads company URLs from Input, extracts the identifier (the part after /company/), drops duplicates, and skips companies already in Researched.

3. Get Company Profile (Periodix Actions: Company)

  • Resource: Company
  • Operation: Get
  • Profile: your connected LinkedIn profile
  • Identifier: {{ $json.identifier }}
  • Settings → On Error: Continue

4. Normalize Company (Code node)

Flattens the profile into one row: industry, specialties, headcount and range, headcount growth over 6, 12, and 24 months, average employee tenure from LinkedIn's employee insights, HQ, every office location, founding year, followers, website, tagline, and description.

5. Claude: ICP Fit and Parse Score (HTTP Request + Code)

One AI call per company scores ICP fit from 1 to 10 with a one-sentence reason, using industry, specialties, headcount, growth, average tenure, HQ and offices, founding year, tagline, and description. If the reply cannot be parsed, the company gets score 0 and reason "parse error".

6. Save to Researched Tab (Google Sheets: Append)

Every company is saved with icp_score, icp_reason, and icp_fit (yes or no).

Example output (Researched tab row)

{
  "company_url": "https://www.linkedin.com/company/example-saas",
  "public_identifier": "example-saas",
  "name": "Example SaaS",
  "website": "https://example.com",
  "industry": "Software Development",
  "employee_count": 180,
  "employee_range": "51-200",
  "hq_city": "Berlin",
  "hq_country": "DE",
  "offices": "Berlin, DE; London, GB; New York, US",
  "office_count": 3,
  "founded": "2019",
  "followers": 12400,
  "headcount_growth_6m": 14,
  "headcount_growth_12m": 31,
  "headcount_growth_24m": 72,
  "avg_tenure": "2.1 years",
  "specialties": "Revenue analytics, Sales forecasting, B2B SaaS",
  "tagline": "Revenue analytics for B2B teams",
  "description": "Example SaaS helps revenue teams...",
  "icp_score": 8,
  "icp_reason": "B2B SaaS in target size range, growing headcount fast.",
  "icp_fit": "yes",
  "researched_at": "2026-09-30T09:00:00.000Z"
}

Customization

  • Wide first: add a Periodix Actions Search step with a LinkedIn or Sales Navigator company search URL before Get Company Profile to research every company from a search.
  • Stricter filter: raise score_threshold to 8.
  • Push to CRM: replace the last node with HubSpot or Notion.
  • Different AI provider: swap the URL and body in the ICP Fit node.

Pricing

$10/month per connected LinkedIn profile with 1,000 results included, and every next 2,000 results for just $10, or $49/month unlimited. Each company lookup counts as one result; AI scoring is billed by your AI provider.

Troubleshooting

  • Score 0 with "company not found": the company URL is wrong or the page is unavailable.
  • Score 0 with "parse error": the AI reply was not valid JSON. Check the model name and credential.
  • Growth columns are empty: LinkedIn does not publish employee insights for every company.

Related


Did this page help you?