The "Headcount Signal"
When a competitor starts hiring aggressively, it's a signal.
- Engineering growth? They are building a new product.
- Sales growth? They are expanding to a new territory.
- Marketing growth? They are about to launch a campaign.
LinkedIn Premium gives you some of this data, but it's expensive and manual. In this guide, we'll build a Competitor Watchlist that tracks headcount changes automatically.
The Tech Stack
We'll use the SociaVault API to fetch company profiles.
Prerequisites
- Node.js installed
- A SociaVault API Key
axiosfor API requests
Exploring LinkedIn data options? Check our LinkedIn API alternatives guide.
Step 1: The Company Fetcher
We need a function to get the current "vitals" of a company.
const axios = require('axios');
const API_KEY = 'YOUR_SOCIAVAULT_API_KEY';
const BASE_URL = 'https://api.sociavault.com/v1/scrape/linkedin';
async function getCompanyVitals(companyUrl) {
try {
const response = await axios.get(`${BASE_URL}/company`, {
params: { url: companyUrl },
headers: { 'x-api-key': API_KEY }
});
const data = response.data.data;
return {
name: data.name,
employeeCount: data.employeeCount, // e.g., 1001-5000
followerCount: data.followerCount,
description: data.description,
locations: data.locations
};
} catch (error) {
console.error(`Error fetching ${companyUrl}:`, error.message);
return null;
}
}
Step 2: The "Growth Delta" Calculator
To find trends, we need to compare today's data with yesterday's (or last month's). Since we don't have a database in this script, we'll simulate the comparison logic.
function calculateGrowth(current, previous) {
if (!previous) return { delta: 0, percent: 0 };
const delta = current - previous;
const percent = ((delta / previous) * 100).toFixed(2);
return { delta, percent };
}
Step 3: The Watchlist Script
Let's track a few tech giants.
const COMPETITORS = [
'https://www.linkedin.com/company/openai',
'https://www.linkedin.com/company/anthropic',
'https://www.linkedin.com/company/google'
];
// Simulated "Last Month" data for demonstration
const MOCK_DB = {
'OpenAI': { employees: 750, followers: 2500000 },
'Anthropic': { employees: 300, followers: 150000 },
'Google': { employees: 180000, followers: 30000000 }
};
async function runTalentScout() {
console.log("šµļøāāļø Starting Talent Scout...");
for (const url of COMPETITORS) {
const company = await getCompanyVitals(url);
if (!company) continue;
// In a real app, you'd fetch 'previous' from your database
const previous = MOCK_DB[company.name] || { employees: company.employeeCount, followers: company.followerCount };
// Note: 'employeeCount' from API might be a range or exact number depending on the profile type
// For this demo, we assume it returns a parseable number or we'd need a parser
const currentEmployees = parseInt(company.employeeCount) || 0;
const growth = calculateGrowth(currentEmployees, previous.employees);
console.log(`\nš¢ ${company.name}`);
console.log(`----------------------------------------`);
console.log(`Employees: ${currentEmployees.toLocaleString()} (${growth.percent}% growth)`);
console.log(`Followers: ${company.followerCount.toLocaleString()}`);
if (growth.percent > 5) {
console.log(`šØ ALERT: Aggressive Hiring Detected! (+${growth.delta} staff)`);
}
}
}
runTalentScout();
Why This Matters in 2025
Talent is the leading indicator of strategy. By the time a press release comes out, it's too late. By tracking headcount, you see the investment before the announcement.
Next Steps
Start building your competitive intelligence database.
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.