Posts by Keyword

🚧 Coming soon. Signals are not available yet. This page describes how they will work at launch – the /signals endpoints, signal.* events and the SDK, CLI and MCP signal commands do not work today.

The postSearch signal searches the latest LinkedIn posts for your phrases on a schedule and reports every post it has not seen before. Use it to find conversations about your topic, your product or a competitor as they start.

Events

Event typeWebhook eventWhat happened
postFoundsignal.postFoundA post matching the search appeared that the signal has not reported before.

Creating

json
{
  "type": "postSearch",
  "term": ["user onboarding", "time to value"],
  "filter": {
    "authorIndustries": ["Software Development"]
  },
  "label": "category-watch"
}
  • term (required) – a phrase, or an array of phrases, each from 1 to 50 characters. Linked API searches every phrase as an exact phrase, so you do not need to put it in quotes. With an array, a post that contains any of the phrases is reported: one signal covers several wordings of the same topic.
  • filter (optional) – narrows the search. When several fields are set, a post must match all of them.
    • contentType (optional) – one of videos, images, jobPosts, liveVideos, documents.
    • postedBy (optional) – array of me, firstConnections, peopleYouFollow.
    • mentioningMembers (optional) – people the post mentions. Matches if it mentions any of them.
    • mentioningCompanies (optional) – companies the post mentions. Matches if it mentions any of them.
    • authorCompanies (optional) – companies the author works at. Matches if the author works at any of them.
    • authorIndustries (optional) – industries the author works in, by the names LinkedIn shows. Matches if the author works in any of them.

Each entry of mentioningMembers, mentioningCompanies and authorCompanies is a name, or an object with name and id – a URN or LinkedIn URL that pins the filter to exactly that person or company. A name alone may match a namesake.

The signal always looks for the newest posts, so it takes no sort order and no date range. To follow what particular people or companies publish, use a personPosts or companyPosts signal for each of them. A LinkedIn search URL is not accepted either: the signal builds the search from your phrases itself.

CheckedEach check spends
once or twice a day, depending on how many posts the search brings1 of stSearchQueries

A check reads the 50 most recent matching posts. The baseline is the posts that match at the first check.

💡 Searches are the scarcest limit: by default an account has 300 a month, and each postSearch signal spends 30 to 60 of them. A signal with several phrases still makes one search per check, so put the wordings of one topic into one signal rather than creating a signal per phrase.

Event fields

json
{
  "id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "signalId": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
  "signalType": "postSearch",
  "label": "category-watch",
  "type": "postFound",
  "detectedAt": "2026-10-12T09:50:00Z",
  "post": {
    "url": "https://www.linkedin.com/feed/update/urn:li:activity:2345678901234567890",
    "activityUrn": "urn:li:activity:2345678901234567890",
    "time": "2026-10-12T08:12:00Z",
    "type": "original",
    "author": {
      "type": "person",
      "name": "Example Person",
      "profileUrl": "https://www.linkedin.com/in/person3",
      "headline": "Founder at Example Company"
    },
    "reposter": null,
    "text": "Looking for a LinkedIn automation API that works with our own accounts. Any recommendations?",
    "repostText": null,
    "hashtags": [],
    "mentions": [],
    "externalLinks": [],
    "images": [],
    "documentSlides": [],
    "hasVideo": false,
    "videoThumbnail": null,
    "hasPoll": false,
    "reactionsCount": 2,
    "commentsCount": 5,
    "repostsCount": 0
  }
}
  • post – the matching post:
    • url – URL of the post.
    • activityUrn – LinkedIn activity or UGC URN of the post, if available.
    • time – when the post was published.
    • type – original, or repost for a repost.
    • author – who wrote the post. A person has type, name, profileUrl and headline; a company has type, name and companyUrl. Search results carry no urn for the author.
    • reposter – the person or company that reposted it, with the same fields as author. Not null only for a repost.
    • text – the author's text, if available; repostText – the text the reposter added, if any.
    • hashtags – hashtags in the text, without the leading #.
    • mentions – profile URLs of the people and companies mentioned in the text.
    • externalLinks – outbound URLs in the text.
    • images – up to 3 preview image URLs; documentSlides – slide image URLs of a document or carousel.
    • hasVideo, videoThumbnail, hasPoll – whether the post has a video, its thumbnail URL, and whether it has a poll.
    • reactionsCount, commentsCount, repostsCount – as they were at the check that found the post; they are not updated later.

The common fields – id, signalId, signalType, label, type, detectedAt – are described in Receiving events.

A post is reported once per signal, even if it contains several of its phrases, or drops out of the search and comes back later. Two postSearch signals that both match a post each report it.