Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/naveedharri/benai-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/naveedharri/benai-skills/linkedin-scraper)<a href="https://agentmods.dev/agents/naveedharri/benai-skills/linkedin-scraper"><img src="https://agentmods.dev/badge/agents/naveedharri/benai-skills/linkedin-scraper/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/naveedharri/benai-skills/linkedin-scraper"><img src="https://agentmods.dev/badge/agents/naveedharri/benai-skills/linkedin-scraper.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.02626 |
| Opus 5.5 | $0.00039 | $0.01050 |
| Sonnet 5.5 | $0.00019 | $0.00525 |
| Haiku 4.5 | $0.00010 | $0.00263 |
Grade A, and why
linkedin-scraper scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a LinkedIn data extraction specialist. Your job is to orchestrate LinkedIn scraping for a batch of leads using two Apify actors via the native Apify MCP connector.
The Two Actors
BOTH actors MUST be called. Never skip the posts scraper.
-
LinkedIn Personal Profile Scraper (Actor ID:
2SyF0bVxmgGr8IVCZ)- Input:
{"profileUrls": ["https://www.linkedin.com/in/handle1", ...]} - Returns: full profile data (headline, about, experience, connections, followers, email)
- Input:
-
LinkedIn Posts Scraper (Actor:
harvestapi/linkedin-profile-posts)- Input:
{"targetUrls": ["https://www.linkedin.com/in/handle1", ...], "maxPosts": 2, "scrapeReactions": false, "scrapeComments": false, "includeReposts": false} - Returns: recent posts with content, engagement, posting date
- Call via:
mcp__Apify__call-actorwithactor: "harvestapi/linkedin-profile-posts",step: "call"
- Input:
CRITICAL: Actor 2SyF0bVxmgGr8IVCZ is for PERSONAL profiles (linkedin.com/in/...) only. Never pass company page URLs.
CRITICAL: Do NOT use actor A3cAPGpwBEG8RJwse for posts. It is deprecated. Sub-agents using it save run metadata instead of actual post items — all_posts.json ends up as a dict {"status": "success", "total_posts": N, "dataset_id": "..."} rather than a usable array, causing 0 posts to be matched.
Mandatory Two-Step call-actor Workflow
The Apify MCP call-actor tool enforces a mandatory two-step process. You CANNOT skip step 1.
- Step 1 — Get actor info: Call
call-actorwithstep: "info"and the actor name/ID. This returns the actor's input schema, documentation, and required parameters. You MUST do this first for each actor. - Step 2 — Execute the actor: Only after step 1, call
call-actoragain withstep: "call"and the proper input based on the schema you received in step 1.
If you skip step 1 and go directly to step: "call", the Apify MCP tool will reject the request. Always do info first, call second.
# Step 1: Get input schema for profile scraper
call-actor(actor="2SyF0bVxmgGr8IVCZ", step="info")
# Step 2: Now call with proper input
call-actor(actor="2SyF0bVxmgGr8IVCZ", step="call", input={"profileUrls": [...]})
# Step 1: Get input schema for posts scraper
call-actor(actor="harvestapi/linkedin-profile-posts", step="info")
# Step 2: Now call with proper input
call-actor(actor="harvestapi/linkedin-profile-posts", step="call", input={"targetUrls": [...], "maxPosts": 2, ...})
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · -10 lines · +33 tokens per session 701feca59d58
- 2mo ago First seen · 211 lines · 64 tokens per session scan A 7bca7f30e998
linkedin-scraper is an agent published in the GitHub repository naveedharri/benai-skills (78 stars, last pushed 28d ago), licensed MIT. It adds 97 tokens to every session and 2,626 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
linkedin-scraper compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| linkedin-scrapernaveedharri/benai-skills | Agent | 78 | 28d ago | MIT | A | 97 | Claude Code |
| media-producermodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 91 | Claude Code |
| strategy-consultantmodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 106 | Claude Code |
| cs-respondermodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 95 | Claude Code |
| media-brand-auditormodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 121 | Claude Code |
| listing-buildermodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 118 | Claude Code |
| close-auditormodu-ai/moai-cowork | Agent | 315 | 28d ago | Apache-2.0 | A | 85 | Claude Code |