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 akiotanaka847/qaio-desktop --skill apollo-enrichmentgit clone --depth 1 https://github.com/akiotanaka847/qaio-desktopWrote 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/akiotanaka847/qaio-desktop/apollo-enrichment)<a href="https://agentmods.dev/skills/akiotanaka847/qaio-desktop/apollo-enrichment"><img src="https://agentmods.dev/badge/skills/akiotanaka847/qaio-desktop/apollo-enrichment/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/akiotanaka847/qaio-desktop/apollo-enrichment"><img src="https://agentmods.dev/badge/skills/akiotanaka847/qaio-desktop/apollo-enrichment.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.00078 | $0.01832 |
| Opus 5 | $0.00039 | $0.00916 |
| Sonnet 5 | $0.00016 | $0.00366 |
| Haiku 4.5 | $0.00008 | $0.00183 |
Grade A, and why
apollo-enrichment 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 6d 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 — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Apollo Enrichment
Take a list of leads in an Airtable table and find verified emails for as many as possible via Apollo's bulk match endpoint. Updates the Airtable rows in place with email + company + title + location, and creates Apollo contacts under a named label so the leads land in your Apollo CRM workflows. Match rate is highly audience-dependent - expect 50-70% on US founder / operator audiences, lower on consumer or non-US audiences.
When to use
- "Enrich these leads with Apollo: ".
- "Find emails for the rows in this table".
- Phase 3 of either LinkedIn pipeline (called by the orchestrator).
- You have an Airtable table populated with
Profile URLs and want emails attached.
When NOT to use
- The leads aren't in Airtable yet - load them first with
airtable-lead-loader. - You only want to read Apollo data, not modify Airtable - this skill writes back to Airtable as part of its contract; if you only need a one-shot Apollo lookup, do it manually.
Connections I need
- Airtable (database) - Required. I read the rows, then write the enrichment fields back.
- Apollo (enrichment) - Required. I use the
apollo_people_bulk_matchendpoint and theapollo_contacts_createendpoint via Composio.
If either is missing I stop and ask you to connect it.
Information I need
- The Airtable base ID + table ID - Required. If called from an orchestrator, both are passed in. If called standalone, I list bases and tables and ask which one if there's any ambiguity.
- An Apollo contact label - Optional. Defaults to
LinkedIn {sourceType} - {sourceAuthor} Post, derived from the table'sSource TypeandSource Authorfields (every row in a given table has the same source). Override per call.
Steps
- Pull all records. Page through the Airtable table 100 records at a time until done. Collect rows where
Emailis empty (don't re-enrich rows that already have an email). Stash the sourceProfile URL,Full Name,Headline, and Airtablerecord_idfor each.
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.
- 6d ago First seen · 111 lines · 78 tokens per session scan A 94221a4e4cf8
apollo-enrichment is a skill published in the GitHub repository akiotanaka847/qaio-desktop (2 stars, last pushed 8d ago), licensed MIT. It adds 78 tokens to every session and 1,832 once invoked, about $0.0004 per session on Opus 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-09-05.
Other skills, from other repositories
00-gtm-router
Plan and run the full API-first GTM chain - the orchestrator (step 00) that turns an ICP description plus optional budget, volume, and urgency into the right discovery -> qualification -> extraction -> signals -> judgment -> email-resolution sequence, with per-step cost estimates and rationale, then executes it…
01-prospeo-discover
B2B company discovery and list building via the Prospeo search API. Use when the user wants to find companies from an ICP, build a prospect or TAM list, search by ICP, or size a market - e.g. "build a list of B2B SaaS in the US", "how many companies match this ICP", "TAM sizing", "company search", or any mix of…
01-prospeo-lookalike
Seed-based B2B company discovery via the Prospeo company-lookalike API. Use when the user has example companies and wants more like them - "find companies similar to X", "companies like Stripe and HubSpot", "lookalikes of these domains", "we closed these 20 logos, find more", "expand this seed list", or hands over…
05-signal-builder
Rank a prospect's outbound signals and pick the campaign approach (Pain-led / Value-led / Segment fallback) - the judgment layer (step 05) of the API-first GTM chain. Takes scraped website markdown (03-firecrawl-research), vendor signals like funding / headcount / recent hires (04-crustdata-signals), or just a URL or…
06-resolution-email-person
Turn a company domain (plus an optional person name or job title) into a verified, send-safe email address - the deliverability-first "resolution" layer of a cold-email pipeline. Use when the user wants to find or verify a work email, enrich a list or file of domains into decision-maker contacts, or resolve "who is…
01-icp-qualify
The qualification gate of the GTM chain - judges every discovered company against the client's ICP before any paid enrichment, so credits are spent only on companies that could actually buy. Works for any client and any vertical: it studies the client first, then compiles client-specific qualification criteria and…