The Mine Works
LinkedIn Post Search: Find Posts by Keyword Without Login
← All posts
tutorial June 23, 2026 · 6 min read Updated October 9, 2026

LinkedIn Post Search: Find Posts by Keyword Without Login

How to search LinkedIn posts without an account: find a post from one person, trace the author of a quote, and pull matching posts in Python.

Try the scraper

The actor referenced in this article. Pay only for results delivered.

View the scraper →

LinkedIn’s own search requires a login, and it limits how far back you can page. Google does not. Public LinkedIn posts live at linkedin.com/posts/<slug> and Google indexes them, so you can search the text of those posts from outside LinkedIn entirely.

This covers the manual search that needs nothing but a browser, the three questions people usually arrive with (find a post from one person, find who wrote a quote, check whether Google indexes any of this), and the Python version for when you need more than a handful of results.

Search LinkedIn posts without logging in

Type this into Google:

site:linkedin.com/posts "generative AI enterprise adoption"

The site: operator limits results to post pages. Quotes force the exact phrase. Without quotes Google will match the words separately and the results get noisy fast.

Three refinements worth knowing:

  • site:linkedin.com/posts "phrase" -intitle:"jobs" drops the recruiter spam that reuses a phrase.
  • Adding a name, for example site:linkedin.com/posts "phrase" "Priya Sharma", narrows to posts that mention or are written by that person.
  • Google’s before: and after: operators work here, so after:2026-06-01 keeps the results recent.

This is the whole method. Everything below is the same search done at volume.

Find a post from a specific person

LinkedIn post URLs carry the author’s profile slug, so you can search one person’s posts directly:

site:linkedin.com/posts/priya-sharma-12345 "pricing"

If you do not know the slug, open their profile once and copy it out of the URL. The slug is the part after /in/. Posts they are tagged in, rather than wrote, will not show up this way, because those sit under the original author’s slug.

If you need every post from one account rather than keyword matches, this is the wrong tool. Google only holds what it has indexed, which skews to posts that got engagement. There is no complete archive of a person’s posts available without login.

Find the author of a quote from a post URL

Two different problems get asked the same way.

You have the post URL. The author is in the slug: linkedin.com/posts/priya-sharma-12345_some-post-title-activity-7212.... The part before the first underscore is the author’s profile slug, so linkedin.com/in/priya-sharma-12345 is their profile. The scraper does this derivation for you and returns it as author_profile_url.

You have the quote but not the URL. Search the exact words in quotes with the site: operator above. Keep the quoted phrase short, eight to twelve words, because Google’s index stores a truncated version of long posts and an exact match against the full paragraph often returns nothing. If the phrase has been reposted, sort through the results by date: the earliest indexed post is usually the original, though reposts can be indexed first when the reposter has the larger audience.

Does Google index LinkedIn posts and profiles?

Public posts, yes. Profiles, partly. LinkedIn’s robots.txt names Googlebot and a handful of other search engines and leaves post and profile pages open to them, while the catch-all rule is Disallow: / for everyone else. So the indexed version is roughly what a signed-out visitor sees: the post text, the author’s name and headline, and the public part of a profile. That split is also why a search engine can hold this data and a general crawler of your own cannot fetch it.

What you will not find that way: posts set to connections only, comments (they are loaded after the page renders and are not in the indexed text), reaction and comment counts, and anything inside LinkedIn’s own search.

Indexing is not instant. A post published today may take hours or days to appear, and it is more likely to be indexed at all if the author has a large following or the post got engagement early. For monitoring, run the search daily and deduplicate on post_url rather than expecting same-day coverage.

Why not the official LinkedIn API

The LinkedIn API is built for managing content you own. With Marketing Developer Platform access, approved separately, you can read posts and statistics for pages you administer. There is no public endpoint that searches other people’s posts by keyword, and there has not been one since the partner programme was closed to general applicants. So for keyword search across LinkedIn, the index is the only public surface.

At volume: the scraper

The LinkedIn Post Scraper runs that search for you, opens each result, checks it actually contains your words, and returns the parsed rows. It reads Google (with Brave Search as the backup when Google walls a query) and never sends a request to LinkedIn, so there is no account to get restricted.

What you get per post

FieldWhat it holds
post_urlThe public post URL
author_namePoster’s full name, from the result title
author_headlineTheir headline, where the title carries it
author_profile_urlDerived from the post slug
post_snippetThe indexed excerpt of the post text

Fields that come back empty are dropped from the row rather than returned as null, so check for the key before reading it.

Python example

import requests, time

APIFY_TOKEN = "your_token"

run = requests.post(
    "https://api.apify.com/v2/acts/themineworks~linkedin-post-search/runs",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
    json={
        "query": "generative AI enterprise adoption",
        "maxResults": 50,
    },
)

run_id = run.json()["data"]["id"]

while True:
    status = requests.get(
        f"https://api.apify.com/v2/actor-runs/{run_id}",
        headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
    ).json()["data"]["status"]
    if status in ("SUCCEEDED", "FAILED"):
        break
    time.sleep(5)

posts = requests.get(
    f"https://api.apify.com/v2/actor-runs/{run_id}/dataset/items",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
).json()

for post in posts:
    print(post.get("author_name"), "|", post.get("author_headline", ""))
    print("  ", (post.get("post_snippet") or "")[:120])
    print("  ", post["post_url"])

maxResults caps the matching posts, between 1 and 200. A multi-word query runs as the exact phrase first and then as the separate words, which is why a tight phrase returns fewer but cleaner rows.

The keyword check

A result is only charged when every word of your search shows up in the post’s title, text or URL, and the row carries actual post text. Google quietly drops search words it cannot match, so without that check a made-up phrase would still bill you for 25 unrelated posts. Set includeUnmatched: true and the near misses come back too, free.

Pricing

$0.002 per post on the free plan, falling to $0.0015 on Gold and above, plus a $0.005 start fee per run. Posts that fail the keyword check are not charged.

Available on Apify.

What people use it for

Thought leader identification. Find who is writing about a topic in your market, then check their profiles against your criteria.

Competitive intelligence. Watch what competitors and their employees say in public, which is often ahead of the company blog.

Social selling. Find prospects already talking about the problem you solve, and open with that rather than a template.

Content research. See which angles on a keyword got traction before you write your own.

For the full text of a post rather than the indexed excerpt, pair this with the LinkedIn Profile Scraper to enrich the authors, then open the handful of posts that matter.

Related Actor

Explore the scraper referenced in this article: inputs, outputs, and pricing, then run it on Apify.

Apify Store

Find a ready-made scraper for your job

Apify has over 80,000 scrapers and automations, ours included. Start free with $5 of platform credit every month.