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.
What’s Included
Section titled “What’s Included”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
Coverage
Section titled “Coverage”| Coverage | Details |
|---|---|
| Markets | S&P 500, NASDAQ, NYSE |
| Metrics | Employees, followers, jobs, growth rates |
| Update Frequency | Weekly |
| Historical Data | 2+ years |
Quick Start
Section titled “Quick Start”from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
df = fb.linkedin_data.ticker("META", as_dataframe=True)print(df)import requests
API_KEY = "YOUR_API_KEY"BASE_URL = "https://api.finbrain.tech"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.get(f"{BASE_URL}/v2/linkedin/META", headers=headers)result = response.json()
# Access LinkedIn data from the response envelopefor entry in result["data"][:5]: print(f"{entry['date']}: {entry['employeeCount']} employees | {entry['followerCount']} followers")For complete code examples in Python, JavaScript, C++, Rust, and cURL, see the API Reference.
Visualization
Section titled “Visualization”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")
Interpreting LinkedIn Metrics
Section titled “Interpreting LinkedIn Metrics”Employee Growth Signals
Section titled “Employee Growth Signals”| YoY Growth | Interpretation | Signal |
|---|---|---|
| > 20% | Rapid expansion | Strong growth phase |
| 10% - 20% | Healthy growth | Positive outlook |
| 0% - 10% | Moderate growth | Stable operations |
| -10% - 0% | Slight contraction | Caution |
| < -10% | Significant layoffs | Potential distress |
Follower Growth Signals
Section titled “Follower Growth Signals”| MoM Growth | Interpretation |
|---|---|
| > 3% | Viral growth / major news |
| 1% - 3% | Above average interest |
| 0% - 1% | Normal growth |
| < 0% | Declining interest |
Use Cases
Section titled “Use Cases”Workforce Trend Scanner
Section titled “Workforce Trend Scanner”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})")Growth Momentum Indicator
Section titled “Growth Momentum Indicator”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})")Tech Sector Comparison
Section titled “Tech Sector Comparison”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")Detect Hiring Acceleration
Section titled “Detect Hiring Acceleration”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}%)")Related Resources
Section titled “Related Resources”- LinkedIn Data API Reference - Endpoint details, parameters, and response schema
- App Ratings - Consumer app data
- Insider Transactions - Track executive trades