LinkedIn Post Tracker
Pricing
from $1.70 / 1,000 post collecteds
LinkedIn Post Tracker
Collects the LinkedIn posts a search engine has indexed for person profiles and company pages: one flat row per post with author, permalink, excerpt and publish date. No request is sent to LinkedIn and no login is used. Built for Clay.
Pricing
from $1.70 / 1,000 post collecteds
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
11 hours ago
Last modified
Categories
Share
๐ฃ What can LinkedIn Post Tracker do?
Point it at LinkedIn person profiles and company pages. It returns the posts a search engine has indexed for each one, as flat rows: permalink, author, a text excerpt, and the publish date. No request is sent to LinkedIn, and no cookie, account, or credential is used.
| ๐ฆ What you get | โ๏ธ Features and integrations |
|---|---|
| ๐ One row per indexed post: permalink, author, excerpt, publish date ๐ A stable post_id, so a feed posts each item exactly once๐ก๏ธ Verified authorship: a post counts only when its permalink names the source ๐งพ 18 flat fields, snake_case, built for Clay | ๐ซ No request to LinkedIn, ever ๐ posted_since, filtered before anything is charged๐ Search index coverage, stated plainly below โฌ๏ธ Export to JSON, CSV, Excel, HTML or XML |
Bought by go to market and content teams tracking what a set of companies and executives has published.
๐ซ This is not a live feed, an engagement tracker, or a lead database. Since 2026-10-12 it reads only what a search engine has indexed, and that is mostly older posts. On 2026-10-12, across three company pages and two person profiles, it found 46 posts and none was from the last 90 days; the newest was from 2025-10-10. There are no reaction counts, comment counts, media, or commenters.
๐ก Why use LinkedIn Post Tracker?
| If you need to | Read this field |
|---|---|
| See what a list of companies and executives has published | post_text, published_at, author_type |
| Post each item to Slack or a CRM exactly once | post_id, which is stable across runs |
| Open the post itself | post_permalink |
๐ A stable primary key, and an exact publish date
post_id is LinkedIn's activity URN, read from the permalink. It is stable across runs and safe as a
primary key. published_at is decoded from that same id: LinkedIn activity ids carry the time they
were created, so the date is exact even when the search snippet carries none.
What changed on 2026-10-12
Until 2026-10-12 this actor fetched profile, company, and post pages from linkedin.com. It no longer
sends any request to LinkedIn. These came only from those pages and are no longer in the output:
post_media_url, reaction_count, comment_count, commenters_collected, commenters_available,
reactors_collected, reactors_status, and every commenter row with its fields (engagement_type,
reaction_type, comment_text, comment_like_count, person_name, person_profile_url,
person_headline, engaged_at). The inputs collect_commenters, collect_reactors,
max_engagers_per_post, and use_residential_proxy are gone with them, and the commenter event no
longer exists.
๐ What data can LinkedIn Post Tracker extract?
Every row carries 18 flat fields, told apart by row_type.
| Field | Type | Meaning |
|---|---|---|
row_type | string | post or notice. Filter notice out before loading a table. |
post_id | string | The activity URN. Stable across runs, safe as a primary key. |
post_permalink | string | The post URL. It names the author's slug, which is how authorship is verified. |
author_name | string | null | The author as the search result title shows it, or null when the title does not name it. |
author_url | string | The source profile or company URL, the join key back to your list. |
author_type | string | person or company. |
post_text | string | null | The excerpt the search engine shows, not the full post. Null when the indexed page carries only LinkedIn's sign in text. |
published_at | string | ISO 8601 publish time, decoded from the activity id. |
degraded | boolean | True when the row could not be produced normally, for example the search was refused. |
degradation_reason | string | null | Why, in plain words. |
source_url | string | null | The profile or company URL this row came from. |
source_type | string | null | person or company. |
collected_at | string | ISO 8601 time this row was collected. |
status | string | What happened on this row, from the status values below. |
notice | string | null | A plain-English message on notice rows. |
row_status | string | ok or error on every row. error is a degraded notice row. |
error_reason | string | null | Why the row is an error, in plain words. Null on an ok row. |
billable_events_json | string | The charges this row caused, for example [{"event":"post-collected","count":1}]; [] on a free row such as a notice. |
โ ๏ธ
falseandnullmean different things on every row.falseis a measurement: the actor looked and the answer was no.nullis the absence of one. A refused search comes back withdegraded: trueand a plain-language reason, never as "no posts".no_posts_foundafter a search that answered means the index lists no post by that author, which is not the same as the author never posting.
๐ ๏ธ How to see what a company or executive has published on LinkedIn
- Put your targets in
profile_urlsorcompany_urls. Person profiles look likehttps://www.linkedin.com/in/williamhgates, company pages likehttps://www.linkedin.com/company/microsoft. Country subdomains are fine. - Set
posted_sinceto skip older posts before anything is charged. - Deduplicate downstream on
post_id.
๐งช Using it in Clay
Add an Apify enrichment column and map your source column to profile_urls or company_urls. The
actor returns many rows for one input row, so use Write to Other Table to send post rows to a
posts table filtered to row_type = post.
๐ต How much does it cost to track LinkedIn posts?
Pay per event. Each run carries Apify's apify-actor-start event once; everything else is charged per row of output.
| Event | Fires when | Price |
|---|---|---|
post-collected | Once per post row returned, after posted_since has filtered | $0.0020 |
apify-actor-start | Once per run, per gigabyte of memory. Set by Apify, not by us | $0.00005 |
Every event at every Apify tier, in dollars:
| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
post-collected | 0.0020 | 0.0019 | 0.0018 | 0.0017 |
๐ณ What you are billed for.
posted_sincefilters before anything is charged, and notice rows are free. The search runs over Apify's residential proxy, which Apify bills to the run as platform usage.
โจ๏ธ Input
Full options are on the Input tab.
| Field | Type | What it does |
|---|---|---|
profile_urls | array | Person profiles, like https://www.linkedin.com/in/williamhgates. Country subdomains are fine. |
company_urls | array | Company pages, like https://www.linkedin.com/company/microsoft. |
posted_since | string | ISO date. Posts published before this are skipped before anything is charged. |
max_charge_usd | number | Optional spend cap for the run, in USD. The run starts no post whose charge would cross it and writes one free max_charge_reached notice row. Empty means no cap of your own. |
Example input:
{"company_urls": ["https://www.linkedin.com/company/microsoft"],"profile_urls": ["https://www.linkedin.com/in/williamhgates"],"posted_since": "2026-09-01"}
Stopping at your maximum charge: when a run reaches the maximum cost per run you set in Apify, or your max_charge_usd, it starts no new post, keeps every row already charged, and writes one free notice row with status max_charge_reached.
๐ค Output
Exports to JSON, CSV, Excel, HTML or XML.
postis one row per indexed LinkedIn post.noticeis a run-level or source-level message. Filter these out before loading a table.
Status values
ok, no_posts_found, source_unavailable (the search was refused), fetch_failed, no_input,
free_tier_exhausted, free_tier_unmetered, sources_truncated, posts_truncated, max_charge_reached.
๐ก Tips
- Set
posted_sinceon every scheduled run. It filters before anything is charged. - Deduplicate on
post_id, never on the permalink. - Treat the output as a sample of what a source published, not the complete feed.
๐ Free plan
Free Apify plan users get 50 posts a month. Paid plans are uncapped. When the allowance runs out the run stops and says so on a row rather than returning a quietly short result.
โ ๏ธ Known limits
- Only indexed posts, mostly old ones. A search engine indexes a fraction of LinkedIn posts. On 2026-10-12, 46 posts across five sources were found and none was from the last 90 days. The newest indexed Stripe post found was from 2024.
- The text is an excerpt, cut by the search engine, and sometimes absent. Sometimes the excerpt is a comment under the post rather than the post itself.
- No reactions, comments, commenters, or media. They came only from LinkedIn pages.
- 200 sources per run and 50 posts per source. Hitting either emits a
sources_truncatedorposts_truncatedrow saying how many were left out.
โ FAQ
Does it visit LinkedIn? No. Since 2026-10-12 it sends no request to linkedin.com. Posts come from search results that link to them.
Why are recent posts missing? A post appears only after a search engine indexes it, which can take months or never happen. On 2026-10-12 none of 46 posts found across five sources was from the last 90 days.
How is authorship verified?
A LinkedIn post URL starts with the author's slug, for example linkedin.com/posts/stripe_.... A
result counts only when that slug is the source's own.
Is post_id safe to use as a primary key?
Yes. It is the activity URN and it is stable across runs.
Is this affiliated with LinkedIn? No. See the disclaimer in Support.
๐งฉ Want other GTM data?
Mamba Labs builds a fleet of GTM enrichment actors that share one flat,
Clay-ready output convention, so their rows join on company_domain with no
cleaning step:
Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.
๐ ๏ธ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.
๐ Support
Questions, bugs and feature requests go in the Issues tab on the actor page.
โน๏ธ Sourcing and legal. Everything collected comes from public search engine results that link to LinkedIn posts. No request is sent to LinkedIn, and no account or cookie is used. This actor is unofficial and is not affiliated with, sponsored by, or endorsed by LinkedIn or Microsoft. Post rows by a person profile name that person. When you run this actor you are the data controller for that personal data and Apify is the processor. Your lawful basis for collecting and using it is yours to establish. We do not advise on it and nothing here is legal advice.
Built by Mamba Labs.