LinkedIn Posts Search API avatar

LinkedIn Posts Search API

Pricing

from $2.50 / 1,000 results

Go to Apify Store
LinkedIn Posts Search API

LinkedIn Posts Search API

Search and filter LinkedIn posts by keyword, country, hiring intent, links, engagement, and freshness. Built for job discovery, lead generation, market research, and content monitoring.

Pricing

from $2.50 / 1,000 results

Rating

5.0

(1)

Developer

Alex SandHive

Alex SandHive

Maintained by Community

Actor stats

1

Bookmarked

27

Total users

10

Monthly active users

8.5 days

Issues response

2 days ago

Last modified

Share

LinkedIn Posts Parser

Apify Actor for searching a hosted LinkedIn posts dataset. The Actor calls the /search-posts API, forwards the selected filters, and saves each returned post as one dataset item.

Use it to find hiring posts, monitor niche keywords, export posts with links, discover fresh low-competition discussions, or search inside parsed comments.

Core Use Cases

Hiring Post Discovery

Find posts that look like job openings or active hiring announcements.

{
"query": "software engineer",
"isHiring": "true",
"sortBy": "newest"
}

Fresh Low-Competition Posts

Find recent posts with few comments so you can engage early.

{
"query": "product strategy",
"maxComments": 5,
"postedWithinHours": 24,
"sortBy": "newest"
}

Hashtag And Comment Monitoring

Search by hashtags and parsed comments.

{
"hashtags": ["hiring", "ai"],
"commentQuery": "interested",
"hasComments": "true",
"sortBy": "hot"
}

High-Engagement Research

Find top-performing posts in a niche.

{
"query": "startup fundraising",
"minLikes": 50,
"sortBy": "top"
}

Dataset Export

Use limit and offset to export filtered pages into your own workflows.

{
"query": "product manager",
"limit": 100,
"offset": 100
}

Input Filters

Empty fields are ignored. The API combines provided filters with AND logic, except hashtags, where any requested hashtag can match.

ParameterTypeDefaultDescription
querystring-Keyword search in post text using indexed English word tokens.
excludeWordsstring-Exclude posts containing any of these indexed word tokens.
countrystring-ISO-2 LinkedIn country/subdomain code, for example us, gb, de.
hashtagsstring[]-Match posts containing any listed hashtag. #ai and ai both work.
contentTypestring-Stored LinkedIn content type, for example POST.
commentQuerystring-Case-insensitive text search inside parsed comments.
commentAuthorstring-Case-insensitive search by parsed comment author name.
hasComments"", "true", "false"""Any, only posts with parsed comments, or only posts without parsed comments.
isHiring"", "true", "false"""Any, hiring posts, or non-hiring posts.
hasLink"", "true", "false"""Any, posts with external links, or posts without external links.
minLikes / maxLikesinteger-Minimum or maximum likes.
minComments / maxCommentsinteger-Minimum or maximum comment count.
minLikesPerHour / maxLikesPerHournumber-Minimum or maximum likes/hour velocity.
minCommentsPerHour / maxCommentsPerHournumber-Minimum or maximum comments/hour velocity.
postedWithinHoursinteger-Only posts from the last N hours, max 8760.
authorTypeany, person, companyanyFilter by inferred author type.
sortBynewest, top, hotnewestSort by publication time, likes, or engagement velocity.
limitinteger25Number of posts to return, from 1 to 100.
offsetinteger0Pagination offset, max 10000.

Boolean filters are strings in the Actor input schema so users can keep the filter unset with "" / Any. The Actor converts "true" and "false" to booleans before sending the API request.

Output Dataset Format

Each dataset item is one post returned from the API.

FieldTypeDescription
postKeystringUnique LinkedIn post identifier.
textstring | nullFull post text.
hashtagsstring[]Hashtags parsed from the post text.
contentTypestringStored LinkedIn content type, usually POST.
authorstring | nullAuthor display name.
authorUrlstring | nullLinkedIn profile, company, or showcase URL.
authorTypeperson | companyInferred from authorUrl.
createdAtstring | nullISO 8601 publication timestamp.
geostring | nullStored geo code or label.
likesinteger | nullNumber of likes/reactions.
commentsCountinteger | nullNumber of comments.
commentsobject[]Parsed comments, if available.
hasLinkbooleanWhether the post contains an external link.
isHiringbooleanWhether the post appears to be a hiring/job post.
postUrlstring | nullDirect LinkedIn post URL.
likesPerHournumberLikes divided by post age in hours.
commentsPerHournumberComments divided by post age in hours.

Parsed comment objects can contain:

FieldTypeDescription
urnstring | nullLinkedIn comment URN.
authorstring | nullComment author display name.
authorUrlstring | nullLinkedIn URL of the comment author.
textstring | nullComment text.
timeTextstring | nullOriginal relative time text.
datePublishedstring | nullPublished date if available.
likesintegerNumber of likes on the comment.

Example Input

{
"query": "product manager hiring",
"excludeWords": "course webinar",
"country": "us",
"hashtags": ["hiring", "productmanagement"],
"isHiring": "true",
"hasLink": "true",
"hasComments": "true",
"minLikes": 3,
"maxComments": 10,
"postedWithinHours": 48,
"authorType": "company",
"sortBy": "newest",
"limit": 50
}

Example Output Item

{
"postKey": "7180000000000000000",
"text": "We're hiring a Senior Product Manager to join our platform team...",
"hashtags": ["hiring", "productmanagement"],
"contentType": "POST",
"author": "Acme Corp",
"authorUrl": "https://www.linkedin.com/company/acme-corp",
"authorType": "company",
"createdAt": "2026-03-30T14:22:00+00:00",
"geo": "us",
"likes": 47,
"commentsCount": 6,
"comments": [
{
"urn": "urn:li:comment:(activity:7180000000000000000,7190000000000000000)",
"author": "Jane Doe",
"authorUrl": "https://www.linkedin.com/in/jane-doe",
"text": "Interested, thanks for sharing.",
"timeText": "2h",
"datePublished": "2026-03-30T16:10:00Z",
"likes": 1
}
],
"hasLink": true,
"isHiring": true,
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180000000000000000",
"likesPerHour": 2.35,
"commentsPerHour": 0.3
}