Back to Blog
LinkedIn

LinkedIn Company Scraper: Enrich B2B Leads with Employee & Growth Data

November 29, 2025
3 min read
S
By SociaVault Team
LinkedInB2BLead EnrichmentCompany Data

If you work in B2B sales, you know the pain.

You get a lead: john@acme.com. Now you have to:

  1. Google "Acme".
  2. Find their LinkedIn page.
  3. Check their employee count (Are they a startup or an enterprise?).
  4. Check their HQ location (What time zone?).
  5. Copy-paste it all into Salesforce.

This takes 5-10 minutes per lead. If you have 50 leads a day, that's your whole day.

In this guide, we'll build a LinkedIn Company Scraper using SociaVault to automate this entire process.

The Strategy

We will write a script that:

  1. Takes a LinkedIn Company URL.
  2. Scrapes the core firmographic data.
  3. Returns a clean JSON object ready for your CRM.

Prerequisites

You'll need a SociaVault API key. You can get one here.

Step 1: Scrape the Company Data

We'll use the /scrape/linkedin/company endpoint.

const axios = require('axios');

const API_KEY = 'YOUR_SOCIAVAULT_API_KEY';
const BASE_URL = 'https://api.sociavault.com/v1';

async function enrichCompany(linkedinUrl) {
  console.log(`šŸ¢ Enriching: ${linkedinUrl}`);

  try {
    const response = await axios.get(`${BASE_URL}/scrape/linkedin/company`, {
      params: { url: linkedinUrl },
      headers: { 'x-api-key': API_KEY }
    });

    if (response.data.success) {
      const data = response.data.data;
      
      // Extract key fields
      const companyProfile = {
        name: data.name,
        description: data.description,
        industry: data.industry,
        website: data.website,
        headcount: data.employee_count,
        followers: data.follower_count,
        locations: data.locations
      };

      return companyProfile;
    }
  } catch (error) {
    console.error("Error enriching company:", error.message);
  }
}

Step 2: Process a List of Leads

Now let's imagine you have a CSV of leads.

const leads = [
  'https://www.linkedin.com/company/stripe',
  'https://www.linkedin.com/company/airbnb',
  'https://www.linkedin.com/company/notion-hq'
];

async function processLeads() {
  console.log("šŸš€ Starting Batch Enrichment...");
  
  for (const url of leads) {
    const profile = await enrichCompany(url);
    
    if (profile) {
      console.log(`\nāœ… Enriched: ${profile.name}`);
      console.log(`   - Industry: ${profile.industry}`);
      console.log(`   - Employees: ${profile.headcount}`);
      console.log(`   - Website: ${profile.website}`);
      
      // In a real app, you would push this to HubSpot/Salesforce here
    }
  }
}

processLeads();

Sample Output

šŸš€ Starting Batch Enrichment...

šŸ¢ Enriching: https://www.linkedin.com/company/stripe
āœ… Enriched: Stripe
   - Industry: Financial Services
   - Employees: 8,000+
   - Website: https://stripe.com

šŸ¢ Enriching: https://www.linkedin.com/company/notion-hq
āœ… Enriched: Notion
   - Industry: Software Development
   - Employees: 500-1,000
   - Website: https://notion.so

Advanced: Spotting Growth Signals

One of the most powerful things you can track is Headcount Growth.

If a company goes from 50 to 100 employees in 6 months, they are growing fast and likely have budget. If they drop from 100 to 80, they might be in trouble.

By running this script once a month and comparing the headcount number, you can build a "Growth Signal" alert system for your sales team.

Get Started

Stop copy-pasting. Start selling. Get your API key here.

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.