Skip to content

LinkedIn Metrics Dataset

Access LinkedIn employee counts and follower metrics as alternative data signals. Track workforce growth and company popularity trends that may precede stock price movements.

The LinkedIn Metrics dataset provides:

  • Employee Count: Current number of employees on LinkedIn
  • Employee Growth: Month-over-month and year-over-year changes
  • Follower Count: Company page followers
  • Follower Growth: Trending popularity metrics
  • Job Count: Open job listings (when available)
  • Historical Data: Track workforce trends over time
  • Weekly Updates: Fresh data every week
CoverageDetails
MarketsS&P 500, NASDAQ, NYSE
MetricsEmployees, followers, jobs, growth rates
Update FrequencyWeekly
Historical Data2+ years
from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
df = fb.linkedin_data.ticker("META", as_dataframe=True)
print(df)

For complete code examples in Python, JavaScript, C++, Rust, and cURL, see the API Reference.

Plot LinkedIn metrics with the built-in SDK chart:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
# One-line interactive chart (employee bars + follower line)
fb.plot.linkedin("AAPL")
LinkedIn Metrics Chart
AAPL LinkedIn employee and follower trends over time
YoY GrowthInterpretationSignal
> 20%Rapid expansionStrong growth phase
10% - 20%Healthy growthPositive outlook
0% - 10%Moderate growthStable operations
-10% - 0%Slight contractionCaution
< -10%Significant layoffsPotential distress
MoM GrowthInterpretation
> 3%Viral growth / major news
1% - 3%Above average interest
0% - 1%Normal growth
< 0%Declining interest

Scan for companies with significant workforce changes:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def scan_workforce_changes(tickers):
"""Find companies with significant workforce changes"""
results = []
for symbol in tickers:
try:
df = fb.linkedin_data.ticker(symbol, as_dataframe=True)
if df.empty or len(df) < 30:
continue
# Compare current to 30 days ago
latest_employees = df["employeeCount"].iloc[0]
older_employees = df["employeeCount"].iloc[29]
change = ((latest_employees - older_employees) / older_employees) * 100
results.append({
"symbol": symbol,
"employees": latest_employees,
"change_30d": change
})
except Exception:
continue
# Sort by change
return sorted(results, key=lambda x: x["change_30d"], reverse=True)
tickers = ["AAPL", "MSFT", "GOOGL", "AMZN", "NVDA", "META", "TSLA", "NFLX"]
changes = scan_workforce_changes(tickers)
print("Workforce Changes (30-day):")
for c in changes:
trend = "hiring" if c["change_30d"] > 0 else "declining"
print(f" {c['symbol']}: {c['employees']:,} employees ({c['change_30d']:+.1f}% - {trend})")

Create a composite growth score:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def calculate_growth_momentum(symbol):
"""Calculate growth momentum from LinkedIn data"""
df = fb.linkedin_data.ticker(symbol, as_dataframe=True)
if df.empty or len(df) < 7:
return None
# Calculate weekly growth rates
emp_growth = ((df["employeeCount"].iloc[0] - df["employeeCount"].iloc[6]) / df["employeeCount"].iloc[6]) * 100
fol_growth = ((df["followerCount"].iloc[0] - df["followerCount"].iloc[6]) / df["followerCount"].iloc[6]) * 100
# Weighted composite score
momentum = emp_growth * 0.6 + fol_growth * 0.4
return {
"symbol": symbol,
"momentum_score": momentum,
"employee_growth": emp_growth,
"follower_growth": fol_growth,
"signal": "bullish" if momentum > 1 else "bearish" if momentum < -1 else "neutral"
}
momentum = calculate_growth_momentum("NVDA")
print(f"{momentum['symbol']}: {momentum['signal']} (Score: {momentum['momentum_score']:.2f})")

Compare workforce trends across tech sector:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def compare_tech_workforce():
"""Compare workforce metrics across major tech companies"""
tech_tickers = {
"AAPL": "Apple",
"MSFT": "Microsoft",
"GOOGL": "Alphabet",
"AMZN": "Amazon",
"META": "Meta",
"NVDA": "NVIDIA",
"TSLA": "Tesla"
}
results = []
for symbol, name in tech_tickers.items():
try:
df = fb.linkedin_data.ticker(symbol, as_dataframe=True)
if df.empty:
continue
results.append({
"company": name,
"symbol": symbol,
"employees": df["employeeCount"].iloc[0],
"followers": df["followerCount"].iloc[0]
})
except Exception:
continue
# Sort by employee count
return sorted(results, key=lambda x: x["employees"], reverse=True)
comparison = compare_tech_workforce()
print("Tech Workforce Comparison:")
print("-" * 60)
for c in comparison:
print(f"{c['company']:12} | {c['employees']:>10,} employees | {c['followers']:>12,} followers")

Find companies that are accelerating hiring:

from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def detect_hiring_acceleration(symbol, lookback_days=30):
"""Detect if a company is accelerating hiring"""
df = fb.linkedin_data.ticker(symbol, as_dataframe=True)
if df.empty or len(df) < lookback_days:
return None
# Calculate growth rate for recent period vs older period
emp = df["employeeCount"]
recent_start = emp.iloc[0]
recent_end = emp.iloc[lookback_days // 2 - 1]
older_start = emp.iloc[lookback_days // 2]
older_end = emp.iloc[lookback_days - 1]
recent_growth = ((recent_start - recent_end) / recent_end) * 100
older_growth = ((older_start - older_end) / older_end) * 100
acceleration = recent_growth - older_growth
return {
"symbol": symbol,
"recent_growth": recent_growth,
"older_growth": older_growth,
"acceleration": acceleration,
"signal": "accelerating" if acceleration > 0.5 else "decelerating" if acceleration < -0.5 else "stable"
}
result = detect_hiring_acceleration("NVDA")
print(f"Hiring trend: {result['signal']} (Acceleration: {result['acceleration']:.2f}%)")