Monitor public LinkedIn company and showcase-page posts without supplying an account or cookies. Export stable activity IDs, canonical post URLs, company attribution, post text, timestamps, media, and engagement counts LinkedIn exposes publicly.
Who is it for?
B2B marketers, competitive-intelligence teams, and social-listening agencies use this Actor to detect new company announcements, compare campaigns, and refresh engagement snapshots.
Example input
{
"companyUrls": ["https://www.linkedin.com/company/linkedin/"],
"maxPostsPerCompany": 5,
"postedAfter": "2026-01-01T00:00:00.000Z"
}
Example output
{
"postId": "7247998907798978560",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7247998907798978560",
"companyName": "LinkedIn",
"companyUrl": "https://www.linkedin.com/company/linkedin/",
"text": "No is a complete sentence.",
"postedAt": "2024-09-27T17:00:00.000Z",
"reactionCount": 7999,
"commentCount": 359,
"media": [{ "type": "image", "url": "https://media.licdn.com/dms/image/..." }],
"scrapedAt": "2026-09-30T00:00:00.000Z"
}
Unavailable public engagement values are omitted rather than guessed.
Inputs
| Field | Description | Default |
|---|---|---|
companyUrls |
Public linkedin.com/company/... or linkedin.com/showcase/... URLs |
required |
maxPostsPerCompany |
Maximum rows saved for each company, 1–1000 | 20 |
postedAfter |
Optional ISO date/time lower bound for incremental exports | none |
Personal profiles, private groups, messages, and authenticated-only feeds are not supported. Invalid or non-company URLs fail with a clear validation error.
Tips and limits
- Start with a small per-company limit while validating a monitoring workflow.
- Use the canonical company page URL; activity-page suffixes are normalized.
- Engagement values are snapshots and can change between runs.
- Discovery depends on public search-index coverage. Posts LinkedIn has not exposed to that index may be absent.
- Every discovered candidate is verified against LinkedIn's anonymous first-party embed and exact company attribution before it is saved.
- LinkedIn or the public index may rate-limit requests. The Actor reports a source failure rather than emitting fabricated rows.
- Schedule repeated runs and deduplicate by
postIdto detect new posts.
Input recipes
Monitor one company's latest announcements
{
"companyUrls": ["https://www.linkedin.com/company/linkedin/"],
"maxPostsPerCompany": 5
}
Compare recent campaigns from three companies
{
"companyUrls": [
"https://www.linkedin.com/company/linkedin/",
"https://www.linkedin.com/company/microsoft/",
"https://www.linkedin.com/company/adobe/"
],
"maxPostsPerCompany": 3
}
Refresh an incremental engagement watch
{
"companyUrls": ["https://www.linkedin.com/company/linkedin/"],
"maxPostsPerCompany": 10,
"postedAfter": "2026-09-01T00:00:00.000Z"
}
Use these inputs in the Actor UI, API, schedules, webhooks, integrations, or MCP-compatible Apify tools.
API example
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~linkedin-company-posts-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companyUrls":["https://www.linkedin.com/company/linkedin/"],"maxPostsPerCompany":5}'
Support
Open an issue from the Actor page with a public company URL, run ID, expected result, and observed result. Never include cookies or private credentials.