LinkedIn → JSON · your stack
Who likes your competitor's posts – as checked leads.
People who like or comment on your competitor's posts are thinking about your topic right now. ListPlus imports the reactions, keeps only people who fit your ICP, enriches them – and your agent fetches the rows above quality X as JSON.
Your agent sets it up, the list runs
query_records · status ICP (score ≥ 80) · valid email → 2 of 4 as JSON
Example · fictional contacts, real prices
Setup
Build this workflow.
One or more post URLs – a competitor's latest posts or an industry influencer's. Your ICP as score criteria. You start the import in ListPlus; everything after that your agent can do.
What does a run cost?
Importing up to 25 reactions costs at most 7.5 credits ($0.26 on Pro): 0 credits base, 0.3 per result. Checks and a rule-based score cost nothing, an AI criterion in the score 0.02 credits per AI answer; the email lookup for the fits is charged per hit, within the budget you set.
- ListPlus manual in ListPlus
Import the reactions
Paste the post URL, pick a result limit, see the price. Every row keeps post and reaction; two reactions by one person are one record with two reasons.
- ListPlus runs automatically
Check against your ICP
A score column rates role, company size and industry – plus an AI criterion for what no rule captures. Customers and competitors drop out through the reference list. Whoever does not fit stays in the list but costs nothing more.
- ListPlus runs automatically
Enrich only the fits
For rows scoring 80 or more the rule sets the status “ICP” and looks up the work email – with a budget per contact, charged only on a hit. The checks verify the found address.
- Your agent by call
Fetch above quality X as JSON
query_records with the filter status “ICP” and a valid email returns the rows as JSON – from Claude Code, n8n or ChatGPT. Your stack decides what happens next: sequence, CRM, sheet.
With your agent
Give your agent this brief.
The import runs in ListPlus (a scraper priced per result). To fetch, the agent needs the list with Read rights; to enrich, “Full”.
The same call from Claude Code, ChatGPT, Cursor or an n8n HTTP node – MCP and REST offer the same tools.
Agent guide (.md) ↗In the list “Competitor reactions Q4”: read the score. Give me every row with score ≥ 80 and a valid work email as JSON (name, role, company, email, post, reaction). Rows between 60 and 79: name, role, company only – no enrichment. Change nothing, send nothing.
Tools and sample call
describe_list · query_records · add_column · create_trigger · enrich_records
query_records({
"list_id": "<shared_list_id>",
"filter": {
"ar_status": "ICP",
"Email": {
"condition": "valid_email"
}
},
"columns": [
"first_name",
"last_name",
"job_title",
"company_name",
"email",
"Fit score"
]
})Try it with your data
A reaction is a reason, not a buying signal. Never open with “I saw you liked…” – take the topic of the post. Real people: names and addresses belong in your stack, not in screenshots.