Skip to content

search posts (CONTENT resultType) returns only FeedbackCard — no post results #2

@denmrnngp-cloud

Description

@denmrnngp-cloud

Summary

linkedin search posts --keywords "..." returns no results for every query. The Voyager GraphQL call succeeds (HTTP 200) but included[] contains only a single FeedbackCard object — never any EntityResultViewModel post results.

People and company search work correctly with the same queryId; only the CONTENT result type is affected.

Reproduction

The post search uses (src/commands/search/search.ts):

queryId:  voyagerSearchDashClusters.b0928897b71bd00a5a7291755dcd64f0
variables: (start:0,origin:GLOBAL_SEARCH_HEADER,query:(keywords:<kw>,
            flagshipSearchIntent:SEARCH_SRP,
            queryParameters:List((key:resultType,value:List(CONTENT))),
            includeFiltersInResponse:false))

I called this endpoint directly against a logged-in session (correct csrf-token, li_at/JSESSIONID cookies, accept: application/vnd.linkedin.normalized+json+2.1) and inspected included[]:

Query resultType HTTP included $types
software engineer PEOPLE 200 Profile ×19, EntityResultViewModel ×10, FeedbackCard ×1, LazyLoadedActions ×10
AI CONTENT 200 FeedbackCard ×1 (nothing else)
startup CONTENT 200 FeedbackCard ×1
AI (blended, no resultType) 200 Profile ×25, EntityResultViewModel ×22, Company ×9, JobPostingCard ×3, …

So:

  • PEOPLE → real results ✅
  • blended (no resultType filter) → real results ✅
  • CONTENT → only FeedbackCard, no posts ❌

What I ruled out

I tried matching the newer client headers from this repo's core/client.ts (clientVersion/mpVersion: 1.13.36, displayDensity: 2, referer: https://www.linkedin.com/feed/). CONTENT search still returns only FeedbackCard. So it is not a header/version issue — the voyagerSearchDashClusters cluster query appears to no longer serve content/post results for this resultType.

Likely cause

LinkedIn seems to have moved keyword content search off this cluster queryId (or gated it server-side). The FeedbackCard-only response is the "no results / give feedback" placeholder the SRP renders when the content cluster is empty.

Working alternative for author posts

For "find posts by a specific member", profileUpdatesV2 still works and returns UpdateV2 objects with the post text and activity URN:

GET /voyager/api/identity/profileUpdatesV2
    ?count=10&start=0&q=memberShareFeed
    &moduleKey=member-shares%3Aphone
    &includeLongTermHistory=true
    &profileUrn=urn%3Ali%3Afsd_profile%3A<MEMBER_ID>

(the profileUrn value must be URL-encoded, otherwise it 400s). Each UpdateV2 has commentary.text.text (post body) and updateMetadata.urn (→ https://www.linkedin.com/feed/update/<urn>).

src/commands/profile/view.ts already exposes this as profile posts; it's a reliable substitute when the author is known.

Suggestion

  • Document that search posts currently returns no results (LinkedIn-side), and/or
  • Find the current content-search queryId LinkedIn's web app uses for the content SRP and update the searchPostsCommand handler, and/or
  • Point users to profile posts (profileUpdatesV2) for author-scoped post retrieval.

Happy to help test a corrected queryId if you have one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions