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.
npx skills add spirosbax/insaight --skill research-companygit clone --depth 1 https://github.com/spirosbax/insaightWrote 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/skills/spirosbax/insaight/research-company)<a href="https://agentmods.dev/skills/spirosbax/insaight/research-company"><img src="https://agentmods.dev/badge/skills/spirosbax/insaight/research-company/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/skills/spirosbax/insaight/research-company"><img src="https://agentmods.dev/badge/skills/spirosbax/insaight/research-company.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.00215 | $0.02146 |
| Opus 5.5 | $0.00086 | $0.00858 |
| Sonnet 5.5 | $0.00043 | $0.00429 |
| Haiku 4.5 | $0.00021 | $0.00215 |
Grade A, and why
research-company 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 13d 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 — 233 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Insaight — Company Research
Build an intelligence brief on a company from its LinkedIn page and the personal posts of its leadership, then judge it as a prospect. The corporate page says what the company wants the market to believe; the executives' own posts usually say what they are actually wrestling with. Reading both is what separates this from a page scan.
Shared conventions (all Insaight skills):
- Load the tools once per session with
tool_search(query="insaight")if they are not already available. - Call
insaight:get_config()once per session for the user's Notion pages and company name/slug. If it reportsunconfigured: true, ask the user to edit the file at the returned path before anything is saved to Notion. - Read cheaply:
list_accounts→list_posts(slim index) →get_postson the few URNs worth reading (max 20 per call).list_people,list_commentsandlist_outreachhit local SQLite and are free; thescrape_*tools call Apify and cost money, so scrape only when data is missing or stale. - Engagement benchmarks (adjust for the niche): under 10 likes is low, 10–40 is normal, 40+ is high signal — read those in full.
Workflow
Step 0 — Start from what is already known
Researching from scratch burns Apify credits and throws away the earlier read,
so check the two places prior knowledge lives before fetching anything. Page
names come from insaight:get_config().
0a. Existing research page:
notion:search(query="[Company Name]")
If a page exists under [NOTION_RESEARCH_PAGE], fetch it and load it as context. The job then becomes update, not re-do: note the last research date and refresh only what moves — recent posts, leadership changes, new markets.
0b. Prior contact:
insaight:list_outreach(target="[company name or URL]")
Re-approaching an account the user has already contacted costs credibility, so surface any hit before doing the work:
"Heads up — the ledger shows you messaged [Name, Role] at [Company] on [date] (outcome: [outcome]). Is this a follow-up, or do you want a different entry point?"
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.
- 13d ago First seen · 233 lines · 215 tokens per session scan A 87d4f9463081
research-company is a skill published in the GitHub repository spirosbax/insaight (33 stars, last pushed 19d ago), licensed MIT. It adds 215 tokens to every session and 2,146 once invoked, about $0.0009 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-10-14.
Other skills, from other repositories
linkedin-outreach
Use when running LinkedIn social selling as a repeatable motion — Sales Navigator saved searches and trigger alerts, weekly request budgets, fixing a low acceptance rate, turning profile views and post engagers into warm threads, logging every touch. NOT the note or DM copy (that is cold-outreach), NOT the deal after…
driver
You are the brain driving a LinkedIn outreach framework over MCP. The framework is the hands and a server-side safety gate. You do the reasoning and write the copy; the gate decides what actually sends. Your job is to run one bounded cycle of outreach for a single account and then stop.
recruit-outreach
Personalized Recruiting Outreach — LinkedIn InMail templates, cold email, second-touch follow-ups customized to the candidate's background.
linkednav
Run LinkedIn outreach on the user's own LinkedNav account through the LinkedNav MCP server. Use when the user wants their outreach audited, a campaign created, launched, paused or diagnosed, leads found from buying signals, outreach messages written, replies read or answered, contacts enriched, or results reviewed…
linkedin-outreach
LinkedIn outreach across connection requests, InMails, comment engagement, and DM sequences.
outreach-message-skill
When a LinkedIn prospect connects, updates their status in the master tracker, creates their outreach message file, and generates a ready-to-post comment on their latest post.