LinkedIn Posts Search Scraper (No Login) - $1.50 per 1,000 avatar

LinkedIn Posts Search Scraper (No Login) - $1.50 per 1,000

Pricing

from $1.50 / 1,000 post scrapeds

Go to Apify Store
LinkedIn Posts Search Scraper (No Login) - $1.50 per 1,000

LinkedIn Posts Search Scraper (No Login) - $1.50 per 1,000

Search public LinkedIn posts by keyword, company or author with no login or cookies. Get text, likes, comments, reposts, media, hashtags, author and top comments. Filter by date and content type. Paste post URLs too. $1.50 per 1,000 posts.

Pricing

from $1.50 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Detroit Web Agent - Open Data

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

LinkedIn Posts Search Scraper - keyword, company and author posts, no login ($1.50 per 1,000)

LinkedIn Posts Search Scraper: features, price and a real output row

Run it free on Apify

Find public LinkedIn posts by keyword, company page or author, or read post URLs you paste. You get one row per post with the full text, publish date, author, reactions, comments, media, hashtags and the top public comments. No LinkedIn account, no cookies.

Who it is for: agencies, freelancers and B2B sales teams looking for people who publicly say they need something; marketers doing social listening; founders tracking competitors; recruiters; and AI agents that need LinkedIn post data.

Key benefits

  • No login, no cookies. Nothing is signed in, so no account of yours is at risk.
  • $1.50 per 1,000 posts, comments included. Filtered, unavailable and duplicate posts are not charged.
  • Three ways in, one run: keywords with a date window, company or author pages, and pasted post URLs. Duplicates are removed by activity id.
  • Rich rows: text, reactions, comments, followers, images, video file and duration, shared links, documents, repost details and top comments.
  • Run summary: every run writes an OUTPUT record (found, delivered, filtered, unavailable, warnings) to the key-value store.

Use case: find people asking for what you sell

Search the phrases buyers write when they need help, such as "looking for a web designer", "need a bookkeeper" or "recommend a CRM". Set postedLimit to week or month to keep it fresh, then read each row's text, authorUrl and likes and reply on posts that are a real fit.

Real test run, Oct 15, 2026. Input: {"searchQueries": ["looking for a web designer"], "postedLimit": "month", "maxPosts": 15, "scrapeComments": false}. It returned 12 public posts from the last month:

AuthorPostedReactionsPost text
Riley Hennigh2026-09-2516For a design agency website, it's often a struggle to show that you care about the details...
Iconic Web Studios2026-09-242Here's a look at how to choose a web design agency you can trust...
Ali M.2026-09-167Here's a niche area for you web designers: Go fix government website...
Ruslan Kosinov2026-09-1842Why would I pay a designer when AI can build me a website? Fair point...

Note what this sample shows: a keyword search returns every post that matches the phrase, and many come from people who sell the service, not people who want to buy it. Use exact phrases in quotes, run several narrow queries, and read the text before you reach out.

Input

FieldTypeDefaultWhat it does
searchQuerieslist of textprefill product launchKeywords to find public posts; one search per line, quotes for exact phrases, hashtags work
postedLimitany / 24h / week / month / yearanyOnly posts published in this window
maxPostsinteger 1-10020Posts per keyword, company or author
authorUrlslist of URLs-Company, showcase or school pages, person profiles (/in/), or company slugs
authorKeywordstext-With authors: keep only posts that mention this
postUrls (alias startUrls)list of URLs or {url} objects-Post links to read directly
contentTypeany / text / image / video / document / article / reshareanyKeep only this post type
minLikesinteger0Skip posts with fewer reactions
includeResharesbooleantrueTurn off to drop pure reshares
scrapeCommentsbooleantrueInclude top public comments (free)
maxCommentsinteger 0-5010Comments per post (logged-out pages show about 10)
maxPostsTotalinteger1000Hard stop for the whole run
maxConcurrencyinteger 1-3025Post pages read in parallel
proxyConfigurationproxyApify ProxyDatacenter is enough; residential only if you see sign-in walls

Leave every field empty for a short demo: the latest posts from Microsoft's company page.

Example input mixing all three sources:

{
"searchQueries": ["\"series A\" fintech", "hiring product designer"],
"postedLimit": "week",
"authorUrls": ["https://www.linkedin.com/company/hubspot", "https://www.linkedin.com/in/satyanadella"],
"postUrls": ["https://www.linkedin.com/posts/microsoft_activity-7513672775795060738-oPgw"],
"maxPosts": 50
}

Output

One row per post. A real row from the Oct 15 run above (long values trimmed, null fields and some URLs removed):

{
"postUrl": "https://www.linkedin.com/posts/rileyhennigh_for-a-design-agency-website-its-often-a-activity-7509212625898119168-qZuw",
"activityId": "7509212625898119168",
"urn": "urn:li:activity:7509212625898119168",
"publishedAt": "2026-09-25T11:30:04.437Z",
"text": "For a design agency website, it's often a struggle to show that you care about the details...",
"authorName": "Riley Hennigh",
"authorUrl": "https://www.linkedin.com/in/rileyhennigh",
"authorType": "person",
"authorFollowers": 3935,
"authorPublicId": "rileyhennigh",
"likes": 16,
"comments": 4,
"mediaType": "video",
"videoDuration": "PT1M11S",
"isReshare": false,
"isRepost": false,
"hashtags": [],
"sourceType": "search"
}
FieldDescription
postUrlPublic link to the post
activityId / urnLinkedIn activity id and urn:li:activity:...; stable keys for dedupe and CRMs
publishedAtPublish time, ISO 8601
text / headlineFull post text with line breaks; first line or article headline
authorName / authorUrl / authorTypeWho wrote it, their profile or page, person or company
authorHeadline / authorFollowers / authorImageUrl / authorPublicIdAuthor details, when the page shows them
likes / comments / repostsReactions, comments and reposts counts (reposts when shown)
engagementlikes, comments, shares and total in one object
mediaTypetext, image, video, document, article or reshare
imageUrls / videoUrl / videoDuration / videoThumbnailUrl / videoTranscriptMedia, with captions when LinkedIn provides them
articleUrl / articleTitle / articleShared link card, tracking redirect removed
documentTitleDocument or carousel title
isReshare / resharedText / resharedPostUrlReshare details
isRepost / repostedByName / repostedByUrl / originalActivityIdPlain repost details
shareUrn / shareUrlShare or ugcPost id and its feed link
hashtagsHashtags in the text
commentsList / commentsListCountTop public comments (author, text, time, likes) and how many were included
sourceType / sourceInput / searchResultTitleHow the post was found and which keyword or URL found it
partialtrue if the post page was unavailable and the row came from the company page card
scrapedAtWhen the row was scraped

The dataset has three views: Posts, Authors and Media and links. Export as JSON, CSV, Excel, XML or HTML.

Pricing

Pay per event, no monthly rental:

EventPriceWhen
apify-actor-start$0.00005When a run starts (one per GB of memory, minimum one)
post-scraped$0.0015Once per post delivered

1,000 posts cost about $1.50, comments included. Posts removed by your filters, unavailable posts and duplicates are never charged. Set Maximum cost per run in the run options and the actor stops cleanly at that amount.

API and MCP

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("transparent_meteorite/linkedin-posts-search").call(
run_input={"searchQueries": ["\"looking for a web designer\""], "postedLimit": "week"})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["publishedAt"], row["authorName"], row["likes"], row["postUrl"])

AI agents (MCP): add the Apify MCP server (https://mcp.apify.com) with this actor enabled, then ask, for example, "find LinkedIn posts from the past week about 'series A' fintech".

More use cases

Social listening on a topic. Search a product category, a competitor's name or a hashtag with postedLimit: week, then read text, likes, comments and commentsList. The comments often carry the real objections and questions people have, which a headline count would never show.

Competitor content tracking. Put competitor company pages in authorUrls and schedule a daily run. contentType lets you keep only video, documents or text, and minLikes hides the posts nobody reacted to. Compare likes and comments over time to see which formats work for them.

Recruiting signals. Search phrases like hiring product designer or open to work and read authorHeadline and authorUrl. Posts are public, so there is nothing to connect to first.

Content research for writers. Pull the top posts for a theme with maxPosts: 100, sort the dataset by likes, and study the opening lines of the best performers. hashtags shows how they tag.

Feeding an AI agent. The actor works through the Apify MCP server, so an assistant can fetch fresh posts on demand and summarize them. Each row has postUrl, so the answer can cite its source.

Example: weekly competitor monitor

{
"authorUrls": ["https://www.linkedin.com/company/hubspot"],
"authorKeywords": "AI",
"postedLimit": "month",
"contentType": "any",
"includeReshares": false,
"minLikes": 10,
"maxPosts": 30,
"scrapeComments": true,
"maxComments": 10
}

This reads the public posts of one company page, keeps only those that mention "AI", drops pure reshares and posts with fewer than 10 reactions. Replace the URL with each competitor and schedule it weekly.

Cost examples

Straight multiplication of the post-scraped price in the Pricing section ($0.0015 per post). Comments are included. The start event is a fraction of a cent.

JobPostsCost
First test15$0.0225
Weekly monitor of one company page30$0.045
Daily keyword watch for 30 days, 20 posts a day600$0.90
Large research pull5,000$7.50

Posts removed by your filters, unavailable posts and duplicates are not charged, so these are upper bounds.

Tips for better results

  • Quote exact phrases: "looking for a web designer" returns far fewer false matches than the same words unquoted.
  • Run several narrow queries instead of one broad one. Keyword search goes through Google's index, so each query returns what Google ranks, not everything LinkedIn holds.
  • Use activityId as the dedupe key in your sheet or CRM, because the same post can be found by two different queries.
  • A row with partial: true came from a company page card because the full post page was unavailable. Its text and counts can be shorter.
  • Counts such as likes are the values shown on the public page at scrapedAt, and they keep changing afterwards.

Troubleshooting

Few or no results. Widen postedLimit to month or any, remove contentType and minLikes, and try a shorter phrase.

A post I know exists is missing. Very new posts take a day or two to appear in Google's index. Paste the post link into postUrls and it will be read directly.

Sign-in walls. If you see them in the log, switch proxyConfiguration to residential. The default datacenter proxy is enough for most runs.

The actor reads only public posts that anyone can open without an account, and it stores no cookies. Post text and author names are personal data under rules such as GDPR, so keep the use proportionate, honor deletion requests, and do not use the data to build profiles of private individuals. LinkedIn's own terms apply to how you use the content. This is general information, not legal advice.

FAQ

Do I need a LinkedIn account or cookies? No. Nothing is logged in and no account of yours is used.

Why is a very new post missing from keyword results? Keyword search uses Google's index of public LinkedIn posts, so new posts can take a day or two to appear. Paste the URL in postUrls to read it directly.

How do I monitor a keyword or competitor? Save a task with postedLimit: "24h", schedule it daily, and send new rows to Slack or a sheet. Use activityId to skip posts you have already seen.

How many comments do I get? About ten per post, the number logged-out pages show, at no extra cost.

Can I get all posts from a person's profile? Only their public posts that Google has indexed. Person profiles themselves are not scraped.

Is it legal? The actor reads only public pages anyone can open without signing in. You are responsible for how you use the data under your local law (for example GDPR) and LinkedIn's terms.

Limitations

  • Public posts only. No connections-only, group or private posts, and no logged-in feed.
  • Keyword search goes through Google, because LinkedIn has no logged-out post search. Ranking is Google's, not newest-first; use postedLimit for fresh posts.
  • Company pages show their 10 most recent posts publicly; for more, the actor also searches Google for that company's posts.
  • Counts are what the public page shows at run time.
  • If a post page shows a sign-in wall after retries, it is skipped and not charged (company posts fall back to card data, marked partial: true).

Found a bug or need a field? Open an issue on the Issues tab with your run URL.

Need more than the data?

This actor is built by Detroit Web Agent, a small Detroit studio that builds websites, lead pages and simple data tools for small businesses. If you want these results turned into a working website, a lead list or a CRM import, or you need a field this actor does not cover yet, open an issue on the Issues tab or visit detroitwebagent.com.

New to Apify? Create a free account and run this Actor in under a minute. Some links are affiliate links.