LinkedIn Posts Scraper — Companies, People, Keywords & URLs avatar

LinkedIn Posts Scraper — Companies, People, Keywords & URLs

Pricing

from $2.00 / 1,000 posts

Go to Apify Store
LinkedIn Posts Scraper — Companies, People, Keywords & URLs

LinkedIn Posts Scraper — Companies, People, Keywords & URLs

Scrape LinkedIn posts from company pages, people profiles, keyword or hashtag searches and post links. One clean row per post: text, exact date, author, reactions, comments, images, video, links, reposted original. Date and engagement filters. No login, no cookies.

Pricing

from $2.00 / 1,000 posts

Rating

0.0

(0)

Developer

inovaflow

inovaflow

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

4

Monthly active users

14 days ago

Last modified

Share

LinkedIn posts as clean rows — from company pages, people profiles, keyword or hashtag searches and post links. No login, no cookies, $2 per 1,000 posts, $0.50 per 1,000 comments.

If you keep an eye on a market on LinkedIn, you know the routine: a few company pages to check, the founders and sales leaders who post every week, and the searches for your product, your competitors or a phrase like "MCP server". LinkedIn shows all of this to anyone who opens the page, but the moment you try to collect it the official way you need a logged-in account, your own cookies in someone else's tool, and a prayer that the account survives.

We needed this for our own prospecting and content research, so we built it to be boring and dependable: every post comes from LinkedIn's public pages (the ones a logged-out visitor sees), through a rotating pool of proxy connections, with nothing of yours involved. Keyword searches run through Brave Search and Google, every post found is opened and read in full, and a page LinkedIn refuses becomes a line in the status message instead of a failed run. Now we're sharing it.

Who it's for

  • Sales and lead-gen teams — "Everyone who posted about 'hiring an SDR' this month, with their profile link."
  • Marketers and brand teams — "Every post that mentions our product or a competitor, with reactions and comments."
  • Founders and content creators — "What do the ten people I learn from post, and which posts of theirs take off?"
  • Researchers and analysts — "All posts of these 50 company pages since January, as one table."
  • AI agents and pipelines — "Fresh posts from a list of companies and people as flat JSON, on a schedule."

What you can scrape

SourceWhat to enterYou get
Company pagesapify, a company / school / showcase URLThe page's latest posts, then older ones found through web search when you ask for more
People profilesjancurn, a profile URLTheir recent posts and reposts, their articles, then older posts through web search
Keywords, phrases, hashtagsweb scraping, "MCP server", #hiringPublic posts that match, found via Brave Search and Google and read in full
Post linksA post URL, a feed/update/urn:li:activity:… link, a URN or the bare idThe post itself, with its visible comments if you want them

Mix them freely. Any LinkedIn URL works in any field — a profile link pasted into "Post links" is still read as a profile.

Each post row: post link, exact publish time (to the millisecond — it is encoded in the post id), author name, profile or company link, author type (person / company) and follower count, full text with line breaks, hashtags, mentioned people and companies (name + link), outbound links (unwrapped from LinkedIn's redirect), content kind (text, image, video, document, article, repost), image URLs, the video file and thumbnail, the linked article (title, URL, source), reaction count and the reaction types shown, comment count, and for reposts the original: author, link, text, date and media.

Each comment row (when you ask for comments): post id and link, commenter name and profile link, text, exact date, reactions.

A post found through two sources (say, a company page and a search) is delivered once.

Options that matter

  • Maximum posts per source — a cap for each company, profile, query and for the post list. A company page shows its latest ~10 posts and a profile its latest ~10 posts and reposts; when you ask for more, the Actor looks up the author's older posts on Brave and Google (site:linkedin.com/posts/<author>_) and reads them.
  • Posted after / before — a date (2026-09-01) or a window (24h, 7d, 2w, 3m, 1y). Because the post time is known from the id, posts outside the range are skipped before any page is read, and never charged.
  • Content type, author type (people / companies), minimum reactions, minimum comments, include reposts — plain filters on what is delivered.
  • Order — newest first (default), most reactions first, or search relevance.
  • Open every post page — on by default: each post found on a company or profile page is read in full (exact time, media, reaction types, the whole reposted original, visible comments). Turn it off for a faster run that takes only what the page shows.
  • Include comments — adds one row per visible comment (LinkedIn shows a logged-out visitor the first comments of a post, usually up to 10–20). Charged per comment.
  • Also search Google — off by default. Brave Search is free and returns up to ~20 posts per query and time window; Google (through Apify's Google SERP proxy) paginates further but is slower and often unreadable, so it is used only when you switch it on and more posts are wanted than Brave returned. Search pages per query caps both.
  • Only posts that contain the query. Search engines pad a thin query with loosely related pages; a keyword search delivers a post only when every quoted phrase and hashtag — and most of the loose words — really appear in it. A plain two-to-five-word query is searched as a phrase.

How to set it up

  1. Add at least one company page, profile, keyword or post link.
  2. Set the maximum posts per source and, for monitoring, a "posted after" window.
  3. Run. Rows land in the dataset as each source finishes; the status message and the OUTPUT record list what every source returned and why anything was unavailable.

Schedule it for daily monitoring, or call it from the API / an AI agent (the MCP tool description is the input schema).

Pricing

Pay per result: $0.002 per post ($2 per 1,000) and $0.0005 per comment ($0.50 per 1,000), plus the platform's start fee ($0.005 per GB of memory, one unit at the default 512 MB). Posts removed by your filters, duplicates and empty runs are never charged.

Notes

  • No account, no cookies. Everything comes from LinkedIn's public pages, so there is nothing of yours to risk and nothing to configure.
  • What a guest can and cannot see. Public posts, reactions and comment counts, and the first comments of a post are public. Private profiles, posts shared "to connections only", poll results and the full comment list are not, and are not guessed.
  • Reposts. A repost with the reposter's own words keeps those words in text and the original in the repostOf… fields; a plain repost has contentType = repost, an empty text and the original in repostOf…. What a person merely liked or commented on is never listed as their post.
  • How far back. The page itself shows the latest ~10 posts; older posts depend on what Brave and Google have indexed for that author — typically dozens, sometimes hundreds, for active accounts.
  • Proxies. LinkedIn's public pages open through Apify's datacenter proxy; when an IP is rate-limited the request switches to the residential proxy by itself. You do not need to change the proxy setting.
  • Need every comment, the reactor list, or posts shared to connections only? Those need a logged-in session, which this Actor deliberately does not use.