Analyze LinkedIn Post Engagement
Measure how LinkedIn posts perform with the Apify LinkedIn Posts API. Collect a profile's posts (or a set of post URLs), then compare reactions, comments, and shares against author reach to find what works and what does not.
When to use this skill
- The user wants to analyze LinkedIn post engagement or an engagement rate.
- They want a creator's or a competitor's top-performing posts.
- They want to benchmark engagement across several profiles, or track it over time.
- They want a simple engagement report from a set of LinkedIn posts.
Not for: LinkedIn's own private analytics dashboard, profile bio data (use the LinkedIn Profile API), or ad performance.
What you get (per post)
authorName, authorHeadline, authorFollowers, numLikes, numComments, numShares, datePosted, postUrl, text, hashtags. The Actor also ships a ready-made "engagement" dataset view with exactly these engagement columns, so you can read reach and reactions side by side.
Prerequisites
The Actor
Run it with the Apify CLI
Collect a profile's recent posts for engagement analysis:
apify actors call "johnvc/linkedin-posts-api" -i '{"profileUrls":["https://www.linkedin.com/in/williamhgates"],"maxPostsPerProfile":50}' \
--json \
--user-agent apify-awesome-skills/apify-linkedin-post-engagement \
2>/dev/null
Read the engagement view of the resulting dataset:
apify datasets get-items DATASET_ID --format json \
--user-agent apify-awesome-skills/apify-linkedin-post-engagement \
2>/dev/null
Every call carries the three flags this repo expects: --json, --user-agent apify-awesome-skills/apify-linkedin-post-engagement, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api
Then ask, for example: "Pull Bill Gates's last 50 posts, rank them by engagement, and tell me which hashtags get the most reactions." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Pick the profiles to measure (the user's own, a creator, or competitors), up to 25 per run.
- Collect posts. Use discovery with a generous
maxPostsPerProfile (say 50), and an optional startDate/endDate window for period-over-period comparisons.
- Score engagement per post. Total engagement is
numLikes + numComments + numShares. When authorFollowers is present, engagement rate is total engagement divided by authorFollowers.
- Rank and summarize: top posts, engagement by hashtag, and trend by
datePosted. Deliver a short table or the dataset link.
Inputs
profileUrls (array of /in/ profile URLs, up to 25, discovery mode)
postUrls (array of post URLs, up to 1000, exact fetch)
maxPostsPerProfile (integer, default 20, max 200)
startDate / endDate (YYYY-MM-DD, discovery only)
Cost
Billing is per post returned, so a discovery run costs roughly the number of profiles times maxPostsPerProfile. Estimate first and confirm large runs. See references/gotchas.md.
Honest limits
- Engagement rate depends on
authorFollowers, which is returned when available. If it is missing, report raw counts instead.
- Counts are a snapshot at fetch time. For trend tracking, run on a schedule and compare dates.
- Public posts only. This does not read LinkedIn's private analytics.
Troubleshooting
- Empty profile: you get an error row (
result_type "error"), not a failed run. Skip it.
- Over a limit: keep profiles at 25 or fewer per run; split larger jobs into batches.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related LinkedIn Actors
1---2name: apify-linkedin-post-engagement3description: Analyze LinkedIn post engagement with the Apify LinkedIn Posts API Actor (johnvc/linkedin-posts-api). Collect a profile's posts or a list of post URLs, then measure reactions, comments, and shares alongside author reach (followers, headline) to see what performs. Use when the user wants to analyze LinkedIn post engagement, measure engagement rate, find a creator's or a competitor's top-performing posts, benchmark engagement across profiles, track post engagement over time, or build a LinkedIn engagement report. Returns one row per post with numLikes, numComments, numShares, datePosted, and a ready-made engagement view. Pay-per-post billing, MCP-ready for Claude and other AI agents.4license: MIT5---67# Analyze LinkedIn Post Engagement89Measure how LinkedIn posts perform with the Apify LinkedIn Posts API. Collect a profile's posts (or a set of post URLs), then compare reactions, comments, and shares against author reach to find what works and what does not.1011## When to use this skill1213- The user wants to analyze LinkedIn post engagement or an engagement rate.14- They want a creator's or a competitor's top-performing posts.15- They want to benchmark engagement across several profiles, or track it over time.16- They want a simple engagement report from a set of LinkedIn posts.1718Not for: LinkedIn's own private analytics dashboard, profile bio data (use the LinkedIn Profile API), or ad performance.1920## What you get (per post)2122`authorName`, `authorHeadline`, `authorFollowers`, `numLikes`, `numComments`, `numShares`, `datePosted`, `postUrl`, `text`, `hashtags`. The Actor also ships a ready-made "engagement" dataset view with exactly these engagement columns, so you can read reach and reactions side by side.2324## Prerequisites2526- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=awesomeskills).27- Authentication via `apify login`, or an `APIFY_TOKEN` environment variable (Apify Console, Settings, Integrations).2829## The Actor3031- Store page: https://apify.com/johnvc/linkedin-posts-api?fpr=9n7kx3&fp_sid=awesomeskills32- Actor ID: `johnvc/linkedin-posts-api`33- Pricing: pay per post returned (see `references/gotchas.md`).3435## Run it with the Apify CLI3637Collect a profile's recent posts for engagement analysis:3839```bash40apify actors call "johnvc/linkedin-posts-api" -i '{"profileUrls":["https://www.linkedin.com/in/williamhgates"],"maxPostsPerProfile":50}' \41 --json \42 --user-agent apify-awesome-skills/apify-linkedin-post-engagement \43 2>/dev/null44```4546Read the engagement view of the resulting dataset:4748```bash49apify datasets get-items DATASET_ID --format json \50 --user-agent apify-awesome-skills/apify-linkedin-post-engagement \51 2>/dev/null52```5354Every call carries the three flags this repo expects: `--json`, `--user-agent apify-awesome-skills/apify-linkedin-post-engagement`, and `2>/dev/null`.5556## Run it from Claude or another AI agent (MCP)5758The Actor is MCP-ready. Add the hosted server URL:5960`https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api`6162Then ask, for example: "Pull Bill Gates's last 50 posts, rank them by engagement, and tell me which hashtags get the most reactions." MCP setup docs: https://docs.apify.com/platform/integrations/mcp6364## Workflow65661. Pick the profiles to measure (the user's own, a creator, or competitors), up to 25 per run.672. Collect posts. Use discovery with a generous `maxPostsPerProfile` (say 50), and an optional `startDate`/`endDate` window for period-over-period comparisons.683. Score engagement per post. Total engagement is `numLikes` + `numComments` + `numShares`. When `authorFollowers` is present, engagement rate is total engagement divided by `authorFollowers`.694. Rank and summarize: top posts, engagement by hashtag, and trend by `datePosted`. Deliver a short table or the dataset link.7071## Inputs7273- `profileUrls` (array of `/in/` profile URLs, up to 25, discovery mode)74- `postUrls` (array of post URLs, up to 1000, exact fetch)75- `maxPostsPerProfile` (integer, default 20, max 200)76- `startDate` / `endDate` (YYYY-MM-DD, discovery only)7778## Cost7980Billing is per post returned, so a discovery run costs roughly the number of profiles times `maxPostsPerProfile`. Estimate first and confirm large runs. See `references/gotchas.md`.8182## Honest limits8384- Engagement rate depends on `authorFollowers`, which is returned when available. If it is missing, report raw counts instead.85- Counts are a snapshot at fetch time. For trend tracking, run on a schedule and compare dates.86- Public posts only. This does not read LinkedIn's private analytics.8788## Troubleshooting8990- Empty profile: you get an error row (`result_type` "error"), not a failed run. Skip it.91- Over a limit: keep profiles at 25 or fewer per run; split larger jobs into batches.9293See `references/gotchas.md` for cost guardrails and error recovery, and `references/actor-index.md` for the Actor routing table.9495## Related LinkedIn Actors9697- LinkedIn Profile API: https://apify.com/johnvc/linkedin-profile-api?fpr=9n7kx3&fp_sid=awesomeskills98- LinkedIn Company API: https://apify.com/johnvc/linkedin-company-api?fpr=9n7kx3&fp_sid=awesomeskills99- LinkedIn Jobs API: https://apify.com/johnvc/linkedin-jobs-api?fpr=9n7kx3&fp_sid=awesomeskills