LinkedIn Post Tracker avatar

LinkedIn Post Tracker

Pricing

from $1.70 / 1,000 post collecteds

Go to Apify Store
LinkedIn Post Tracker

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

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

What's new (October 2026)

  • Reaction and comment counts: turn on include_engagement_counts and each post row carries reaction_count and comment_count, read once from the post's public LinkedIn page over the Apify datacenter proxy. No extra charge. Off by default, and with it off no request goes to linkedin.com, as before.

No price change. Existing fields and saved inputs work as before.

📣 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 toRead this field
See what a list of companies and executives has publishedpost_text, published_at, author_type
Post each item to Slack or a CRM exactly oncepost_id, which is stable across runs
Open the post itselfpost_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. Since 2026-10-28, reaction_count and comment_count are back as an opt in read of each post's own public page (include_engagement_counts, off by default).

📋 What data can LinkedIn Post Tracker extract?

Every row carries 20 flat fields, told apart by row_type.

FieldTypeMeaning
row_typestringpost or notice. Filter notice out before loading a table.
post_idstringThe activity URN. Stable across runs, safe as a primary key.
post_permalinkstringThe post URL. It names the author's slug, which is how authorship is verified.
author_namestring | nullThe author as the search result title shows it, or null when the title does not name it.
author_urlstringThe source profile or company URL, the join key back to your list.
author_typestringperson or company.
post_textstring | nullThe excerpt the search engine shows, not the full post. Null when the indexed page carries only LinkedIn's sign in text.
published_atstringISO 8601 publish time, decoded from the activity id.
reaction_countinteger | nullReactions on the post, read from its public LinkedIn page. Only with include_engagement_counts on; null when off or when the page did not show the count.
comment_countinteger | nullComments on the post, from the same page. Only with include_engagement_counts on.
degradedbooleanTrue when the row could not be produced normally, for example the search was refused.
degradation_reasonstring | nullWhy, in plain words.
source_urlstring | nullThe profile or company URL this row came from.
source_typestring | nullperson or company.
collected_atstringISO 8601 time this row was collected.
statusstringWhat happened on this row, from the status values below.
noticestring | nullA plain-English message on notice rows.
row_statusstringok or error on every row. error is a degraded notice row.
error_reasonstring | nullWhy the row is an error, in plain words. Null on an ok row.
billable_events_jsonstringThe charges this row caused, for example [{"event":"post-collected","count":1}]; [] on a free row such as a notice.

⚠️ false and null mean different things on every row. false is a measurement: the actor looked and the answer was no. null is the absence of one. A refused search comes back with degraded: true and a plain-language reason, never as "no posts". no_posts_found after 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

  1. Put your targets in profile_urls or company_urls. Person profiles look like https://www.linkedin.com/in/williamhgates, company pages like https://www.linkedin.com/company/microsoft. Country subdomains are fine.
  2. Set posted_since to skip older posts before anything is charged.
  3. 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.

EventFires whenPrice
post-collectedOnce per post row returned, after posted_since has filtered$0.0020
apify-actor-startOnce per run, per gigabyte of memory. Set by Apify, not by us$0.00005

Every event at every Apify tier, in dollars:

EventFREEBRONZESILVERGOLD
post-collected0.00200.00190.00180.0017

💳 What you are billed for. posted_since filters 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.

FieldTypeWhat it does
profile_urlsarrayPerson profiles, like https://www.linkedin.com/in/williamhgates. Country subdomains are fine.
company_urlsarrayCompany pages, like https://www.linkedin.com/company/microsoft.
posted_sincestringISO date. Posts published before this are skipped before anything is charged.
include_engagement_countsbooleanOff by default. On: each post's public LinkedIn page is read once, over the Apify datacenter proxy, for reaction_count and comment_count. No extra charge. Off: no request goes to linkedin.com.
max_charge_usdnumberOptional 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.

  • post is one row per indexed LinkedIn post.
  • notice is 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_since on 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 commenters or media. Reaction and comment counts come back only with include_engagement_counts on; commenter rows and keyword post search are not offered.
  • 200 sources per run and 50 posts per source. Hitting either emits a sources_truncated or posts_truncated row 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:

🔔 Account Hiring Watch🕵️ Agent Accessibility Auditor
🏠 Agent to Brokerage Resolver🤖 AI Tooling Detector
📡 GTM Signals Aggregator🚀 Prospect Engine
🗨️ B2B Reddit Conversation Monitor📝 Publishing Frequency Tracker
🦋 Bluesky Brand Presence Mapper🔀 Career Change Signal Engine
⏩ Sequencer Lead Push🔄 Company Change Event Feed
📇 Company Contact Details Extractor🧭 Company Discovery List Builder
🏢 Company Firmographic Enricher🧮 Company Headcount Estimator
🪪 Company Identity Resolver🌐 Company Social Presence Mapper
📉 Competitor Price, Stock, and Changelog Monitor🏷️ Contact Classifier
🧰 Contractor License Lookup🍪 Cookie Consent Audit
📈 Influencer Change Monitor🔎 Influencer Finder
🧾 Influencer Lead List Builder👤 Influencer Profile Scraper
📬 Domain Deliverability Checker🔗 Domain to LinkedIn URL Resolver
🛒 Ecommerce Platform Profiler🏬 Ecommerce Store Discovery
✉️ Work Email Waterfall🎪 Event Presence Index
⚖️ Expert Witness Directory💵 Company Funding Record
💰 Funding and Press Signal Scanner🐙 GitHub Organization Signal Scanner
🪧 Google Ads Transparency Monitor🧑‍💼 GTM Hiring Signal Scraper
📋 Job Posting Monitor🧱 Tech Stack Signal Detector
🎯 ICP Fit Scorer🛍️ Integration and Marketplace Presence Mapper
🔑 Job Board Keyword Signal Scanner🧳 Job Change Tracker
🏛️ Legal Entity Resolver📰 Link in Bio Scraper and Newsletter Detector
💼 LinkedIn Company Page Mapper🏪 Local Business Lead Builder
📍 Local Rank and Map Pack Tracker👯 Lookalike Company Finder
🏭 Manufacturer and Supplier Finder📢 Meta Ad Library Monitor
📸 Instagram Facebook Brand Presence Mapper📱 Mobile Phone Waterfall
🗂️ New Company Registrations Feed🆕 New Hire Finder
🗞️ Newsletter Sponsor Tracker📜 Open Tender and RFP Finder
📮 Outbound Stack Detector📄 Page Finder and Extractor
📒 Partner and Member Directory Extractor🧑 People Finder & Email Verifier
🆔 Person LinkedIn URL Resolver👣 Person Social Footprint Mapper
📧 Personal Email to Company Resolver📌 Pinterest Brand Presence Mapper
🎙️ Podcast Guest and Host Finder🏆 Government Contract Award Monitor
📅 Reporting Window Finder🗳️ Public Feature Board and Roadmap Monitor
👽 Reddit Brand Presence Mapper⭐ Trustpilot Reputation Enricher
📨 Sequencer Event Poller🤝 Influencer Talent Agency Lookup
👥 Team Page People Extractor🎵 TikTok Brand Presence Mapper
🦄 VC and Accelerator Portfolio List Builder♿ WCAG Accessibility Audit
🧪 Website Phrase and Business Model Classifier📊 Website Traffic Rank Estimator
🏅 Workplace Program Detector✖️ X Brand Presence Mapper
▶️ YouTube Channel Stats Extractor

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.

🆘 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.