LinkedIn Engagement & Content Analytics avatar

LinkedIn Engagement & Content Analytics

Pricing

$19.99/month + usage

Go to Apify Store
LinkedIn Engagement & Content Analytics

LinkedIn Engagement & Content Analytics

LinkedIn Post Scraper extracts posts from public LinkedIn profiles, pages, or companies. Capture text, media, timestamps, reactions, comments, and engagement metrics. Ideal for research, competitor tracking, content analysis, and workflows needing structured LinkedIn post data.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

6

Bookmarked

81

Total users

5

Monthly active users

7 hours ago

Last modified

Share

Apify actor that scrapes LinkedIn posts from company and person profile URLs and adds an engagement analytics layer on top of the same post output as the base LinkedIn post scraper. It extracts hashtags, computes an engagement score, runs sentiment analysis (lexicon or optional AI), ranks top posts, and produces an aggregate analytics summary — useful for LinkedIn content strategy, social media analytics, competitor benchmarking, marketing research, trend analysis, and B2B lead scoring.

Keywords: LinkedIn scraper, LinkedIn posts, engagement analytics, hashtag analysis, sentiment analysis, content strategy, social media analytics, competitor benchmarking, marketing insights, top posts ranking, LinkedIn data export, B2B lead quality.

What it does

  • Scrapes public LinkedIn posts (JSON-LD + HTML) from company/person URLs — same engine and post schema as the base actor.
  • Enriches each post with: hashtags, textLength, wordCount, engagementScore, sentiment, scrapedAt.
  • Produces an analytics summary row: totals, per-post averages, top hashtags, posting-by-weekday / hour, content-type breakdown, sentiment distribution, and the top-N posts.
  • Optional AI enrichment replaces the lightweight lexicon sentiment with real AI sentiment, topics, and B2B leadQuality classification across 7 providers.

Real-data policy (important)

This actor does not fabricate identifiers or counts. The base scraper emitted random tracking IDs, hashed stand-in profile/comment/reactor IDs, synthetic public IDs, fake activity URNs, and fake comment timestamps — all of that has been removed. Any field not genuinely present in LinkedIn's HTML / ld+json is returned as null. Engagement counts (numLikes, numComments, numShares) come only from each post's ld+json interactionStatistic block; when a count is unavailable it is null (never a guessed number). The analytics summary reports an honest engagementDataCoverage fraction so you know how many posts had real counts.

Input

FieldTypeDefaultDescription
urlsarrayrequiredLinkedIn company or person URLs
limitinteger10Max posts per source URL
scrapeUntilstringKeep posts on/after this date (absolute or relative)
deepScrapebooleantrueFollow per-activity pages for more posts
rawDatabooleanfalseEmit plain posts only, no analytics
topNinteger10Top posts / hashtags to surface
sentimentbooleantrueLexicon sentiment on post text
minEngagementinteger0Drop posts below this engagement score
metricsOnlybooleanfalseOutput only the analytics summary
aiEnhancementbooleanfalseUpgrade sentiment to AI (sentiment/topics/leadQuality)
aiModelstringclaude-haiku-4-5AI model; provider auto-detected
aiApiKeystring (secret)API key for the AI provider (or env var fallback)
proxyConfigurationobjectOptional proxy

Output

  • Dataset: enriched post rows plus one final type: "analytics" summary row (or plain posts when rawData, or only the summary when metricsOnly).
  • Key-value store: linkedin_analytics.json{ "posts": [...], "analytics": {...} } (or linkedin_posts.json for rawData).

engagementScore = numLikes + 2×numComments + 3×numShares (a null count contributes 0).

Run locally

cd linkedin-post-scraper
pip install -r requirements.txt
apify run

Input example

{
"urls": ["https://www.linkedin.com/company/google/"],
"limit": 25,
"scrapeUntil": "2026-01-01",
"deepScrape": true,
"topN": 10,
"sentiment": true,
"minEngagement": 0,
"metricsOnly": false,
"aiEnhancement": false,
"aiModel": "claude-haiku-4-5"
}

Compliance

Scrapes only publicly available data. Respect LinkedIn's terms and applicable data-protection law when using the output.