Fetch post engagers
fetch_post_engagersVisibility follows the user's LinkedIn account: any post it can view works, and private or deleted posts return a plain error. The list is capped at 500 reactions + 500 comments per post; on a bigger post the return flags the cut-off. A fetch costs 0.04 credits per reaction, comment or reply it pulls, people already stored included, so re-fetching a post bills everyone on it again; data fetched within the last 6 hours is served from the database free. Loading a post Sliq hasn't tracked yet counts one against the user's daily LinkedIn post-read budget. In a conversation, tell the user the cost and the wait before calling this: most posts cost under 5 credits, one fetch's reactions and comments cost at most 40 plus 0.04 per reply, and a post with hundreds of engagers takes around half a minute.
When this runs in an agent, every person who engaged is saved as an
agent_search_results person row, rendered in the agent's Output tab and
queryable via query_search_results: data.person carries the name and
headline, linkedin_provider_id and linkedin_slug the LinkedIn handles, and
data.columns the engagement (Engagement, Comment, Post, Post URL). Company
pages that reacted or commented aren't people, and the user isn't a lead, so
neither is saved; both stay in the engagement rows. Re-running updates
existing rows rather than duplicating them. Pass list_name to name their list; absent, they land in the
'default' list.
Each person new to the list is checked against criteria, one at a
time, reading their headline and engagement, and saved with the
verdict; the rejected ones are hidden from the list's default view and
from query_search_results. The check adds about 20 seconds per
hundred people. To keep everyone who engaged, write broad criteria,
such as "Anyone who engaged with this post". A person already on the
list keeps their verdict, so to screen a post's engagers against new
criteria, pass a new list_name.
After this returns, read the saved people with the query_search_results
call in next_step, which is scoped to this post: one list can hold
several posts' engagers. Judge anyone the check kept as unclear or left
without a verdict yourself, then queue outreach for the people who fit
with one batched queue_linkedin_outreach call passing each row's
linkedin_provider_id as provider_id and its linkedin_slug as
linkedin_slug. Send-time resolution skips anyone already connected, so they
don't need pre-filtering here. Every engager, the rejected ones included,
also stays queryable with query_linkedin_post_engagements using
post_id = <post_analytics_id>.
On success, a dict
{'success': True, 'post_analytics_id': int, 'author_name': str,
'is_own_post': bool, 'post_text_snippet': str, 'from_cache': bool,
'reactions_stored': int, 'comments_stored': int,
'unique_engagers': int, 'truncated': bool, 'credits_charged': number,
'budget': {'used_today': int, 'limit': int},
'engagers_preview': [first 10 engagers, unchecked], 'next_step': str,
'list'?: {'list_name', 'created', 'updated', 'total', 'rejected'}}.
comments_stored counts replies too. unique_engagers counts company
pages too; list.total counts only the
people saved, rejected ones included, so it can be lower. list.created
and list.updated count the people the list shows, and list.rejected
the ones the check turned down.
budget is today's LinkedIn post-read budget.
On failure, {'success': False, 'error': str} when the post isn't visible to the
user's account, the daily LinkedIn post-read budget is spent, or
LinkedIn actions are paused after a rate limit. Raises when the user's
credits can't cover a fetch.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"post_url": "<post_url>",
"criteria": "<criteria>"
},
"name": "fetch_post_engagers"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional — a specific agent to materialize the engager list into. Omit it to use the running agent, which is the usual case. | |
| criteria | Yes | Who counts as a match, in plain words (e.g. "Heads of Sales at B2B software companies; not recruiters"). | |
| post_url | Yes | LinkedIn post URL in any form, including a lnkd.in share link, or a raw activity ID. | |
| list_name | No | Short kebab slug naming the list bucket (e.g. 'launch-post-engagers'). Absent, engagers land in the 'default' list. | |
| on_behalf_of | No | A teammate's email, or an agency client's from list_agency_clients, to run this call in that account: their agents, settings, connected accounts, and credits. Omit it to act on your own account. |