gtm-enrichment-deep
When To Use
Use when the user has a lead's email address (optionally a name) and wants a comprehensive GTM enrichment: person identity + LinkedIn, company profile, and funding history. Apollo people enrichment is the primary person source, Hunter is the company source, and Apollo organization enrichment fills funding gaps via fallback. Every step is a MPP on Tempo payment through the SELAT Router — every step settles through the SELAT Router.
Workflow
- Install:
selat skill install gtm-enrichment-deep
- Run:
selat skill run gtm-enrichment-deep --email jane@acme.com [--firstName Jane] [--lastName Doe] [--company Acme] [--domain acme.com]
- The CLI compiles each manifest step into a
selat-pay payment, runs them in order, and prints a per-step ✓/✗ summary.
Steps (in order):
- Step 1 — Apollo
POST /apollo/people-enrichment — MPP on Tempo — primary person data: identity, title, LinkedIn URL ($0.0084 live price). This single call also covers what was previously a separate LinkedIn-match fallback — same endpoint, so the two steps are merged.
- Step 2 — Hunter
POST /hunter/company-enrichment — MPP on Tempo — primary company profile ($0.01365 live price).
- Step 3 — Apollo
POST /apollo/org-enrichment — MPP on Tempo fallback — run only if Step 2 returned no funding data ($0.0084 live price; also returns technology_names and headcount fields).
Derive domain from the email (text after @) when not supplied. Apollo/Hunter are primary; the Apollo org-enrichment fallback fills funding gaps. Track the source (apollo | hunter) and confidence (high = upstream field, medium = fallback, low = inferred) per field. AI/B2B-SaaS classification is not returned by any endpoint — infer it from the company description/keywords and mark it low confidence.
Inputs And Outputs
| Param |
Required |
Default |
Description |
email |
yes |
— |
Lead's email address, e.g. jane@acme.com |
domain |
no |
derived from email |
Company domain, e.g. acme.com |
firstName |
no |
empty |
Lead's first name (improves Apollo match) |
lastName |
no |
empty |
Lead's last name (improves Apollo match) |
company |
no |
empty |
Company name (improves Apollo match) |
Outputs: a merged JSON object with person (full_name, title, linkedin_url, location, confidence, source), company (name, domain, linkedin_url, description, geo, employee_count, founded_year, funding{…}, classification{is_ai, is_b2b_saas} — inferred, low confidence), and meta (total_cost, api_calls[], phases_run, timestamp). Track every API call in meta.api_calls with status, cost, latency, and any error — never silently skip a failure.
Gotchas
- Every step is via the SELAT Router:
SELAT_ROUTER_URL must be set and the router reachable for both the Apollo and Hunter merchants (via Locus).
- Step 3 is a conditional fallback. Only run Apollo
/apollo/org-enrichment if Hunter returned no funding data. A full run with the fallback costs ≈ $0.03 (0.0084 + 0.01365 + 0.0084); without it ≈ $0.022.
- Caps are per step (
maxAmount, ~10x each live price: $0.10–$0.15); they are not pooled.
- All three steps are POST with a JSON body — the org-enrichment domain goes in the body, not the query string.
- No endpoint returns an AI/B2B-SaaS classification; infer it from description/keywords and mark low confidence.
Validation
--chain base in the probe commands below is only the flag selat-pay requires today — a probe reads a free, chain-independent quote and never settles. A real paid run resolves the settlement chain from your funded Circle Gateway balance, not the manifest.
- Free 402 probes (no payment) per repo convention:
selat-pay POST "https://apollo.mpp.paywithlocus.com/apollo/people-enrichment" --body '{"email":"jane@acme.com","first_name":"Jane","last_name":"Doe","organization_name":"Acme","domain":"acme.com"}' --chain base --probe-only
selat-pay POST "https://hunter.mpp.paywithlocus.com/hunter/company-enrichment" --body '{"domain":"acme.com"}' --chain base --probe-only
selat-pay POST "https://apollo.mpp.paywithlocus.com/apollo/org-enrichment" --body '{"domain":"acme.com"}' --chain base --probe-only
- A successful run prints
status=200 for each executed step and a ✓ summary.
References
manifest.json — the machine-readable payment recipe this skill runs.
references/endpoints.md — the MPP endpoints this skill calls (merchant, method/path, price, source).
- selat-pay — https://github.com/SELAT-AI/selat-pay
Apollo and Hunter are third-party services; their trademarks belong to their respective owners. This skill calls their public MPP-listed endpoints via the SELAT Router.
1---2name: gtm-enrichment-deep3description: Use this skill when the user wants deep GTM lead enrichment from an email address — e.g. "enrich this lead", "who is jane@acme.com", "get me funding and company data for this contact", "enrich jane@acme.com with LinkedIn and funding", "deep enrichment for a prospect". Runs Apollo people enrichment as the primary person source (identity, title, LinkedIn), Hunter for company data, with Apollo organization enrichment as the fallback for funding. All calls are MPP on Tempo payments via the SELAT Router. Cost ≈ $0.02–$0.03 per lead.4license: Apache-2.05---67# gtm-enrichment-deep89## When To Use1011Use when the user has a lead's email address (optionally a name) and wants a comprehensive GTM enrichment: person identity + LinkedIn, company profile, and funding history. Apollo people enrichment is the primary person source, Hunter is the company source, and Apollo organization enrichment fills funding gaps via fallback. Every step is a **MPP on Tempo payment** through the SELAT Router — every step settles through the SELAT Router.1213## Workflow14151. Install: `selat skill install gtm-enrichment-deep`162. Run: `selat skill run gtm-enrichment-deep --email jane@acme.com [--firstName Jane] [--lastName Doe] [--company Acme] [--domain acme.com]`173. The CLI compiles each manifest step into a `selat-pay` payment, runs them in order, and prints a per-step ✓/✗ summary.1819Steps (in order):2021- **Step 1 — Apollo** `POST /apollo/people-enrichment` — **MPP on Tempo** — primary person data: identity, title, LinkedIn URL ($0.0084 live price). This single call also covers what was previously a separate LinkedIn-match fallback — same endpoint, so the two steps are merged.22- **Step 2 — Hunter** `POST /hunter/company-enrichment` — **MPP on Tempo** — primary company profile ($0.01365 live price).23- **Step 3 — Apollo** `POST /apollo/org-enrichment` — **MPP on Tempo** fallback — run only if Step 2 returned no funding data ($0.0084 live price; also returns `technology_names` and headcount fields).2425Derive `domain` from the `email` (text after `@`) when not supplied. Apollo/Hunter are primary; the Apollo org-enrichment fallback fills funding gaps. Track the source (`apollo` | `hunter`) and confidence (high = upstream field, medium = fallback, low = inferred) per field. AI/B2B-SaaS classification is **not** returned by any endpoint — infer it from the company description/keywords and mark it low confidence.2627## Inputs And Outputs2829| Param | Required | Default | Description |30|---|---|---|---|31| `email` | yes | — | Lead's email address, e.g. `jane@acme.com` |32| `domain` | no | derived from email | Company domain, e.g. `acme.com` |33| `firstName` | no | empty | Lead's first name (improves Apollo match) |34| `lastName` | no | empty | Lead's last name (improves Apollo match) |35| `company` | no | empty | Company name (improves Apollo match) |3637Outputs: a merged JSON object with `person` (full_name, title, linkedin_url, location, confidence, source), `company` (name, domain, linkedin_url, description, geo, employee_count, founded_year, funding{…}, classification{is_ai, is_b2b_saas} — inferred, low confidence), and `meta` (total_cost, api_calls[], phases_run, timestamp). Track every API call in `meta.api_calls` with status, cost, latency, and any error — never silently skip a failure.3839## Gotchas4041- Every step is **via the SELAT Router**: `SELAT_ROUTER_URL` must be set and the router reachable for both the Apollo and Hunter merchants (via Locus).42- Step 3 is a **conditional fallback**. Only run Apollo `/apollo/org-enrichment` if Hunter returned no funding data. A full run with the fallback costs ≈ $0.03 (0.0084 + 0.01365 + 0.0084); without it ≈ $0.022.43- Caps are per step (`maxAmount`, ~10x each live price: $0.10–$0.15); they are not pooled.44- All three steps are POST with a JSON body — the org-enrichment domain goes in the body, not the query string.45- No endpoint returns an AI/B2B-SaaS classification; infer it from description/keywords and mark low confidence.4647## Validation4849> `--chain base` in the probe commands below is only the flag `selat-pay` requires today — a probe reads a free, chain-independent quote and never settles. A real paid run resolves the settlement chain from your funded Circle Gateway balance, not the manifest.5051- Free 402 probes (no payment) per repo convention:52 - `selat-pay POST "https://apollo.mpp.paywithlocus.com/apollo/people-enrichment" --body '{"email":"jane@acme.com","first_name":"Jane","last_name":"Doe","organization_name":"Acme","domain":"acme.com"}' --chain base --probe-only`53 - `selat-pay POST "https://hunter.mpp.paywithlocus.com/hunter/company-enrichment" --body '{"domain":"acme.com"}' --chain base --probe-only`54 - `selat-pay POST "https://apollo.mpp.paywithlocus.com/apollo/org-enrichment" --body '{"domain":"acme.com"}' --chain base --probe-only`55- A successful run prints `status=200` for each executed step and a ✓ summary.5657## References5859- `manifest.json` — the machine-readable payment recipe this skill runs.60- [`references/endpoints.md`](references/endpoints.md) — the MPP endpoints this skill calls (merchant, method/path, price, source).61- selat-pay — https://github.com/SELAT-AI/selat-pay6263_Apollo and Hunter are third-party services; their trademarks belong to their respective owners. This skill calls their public MPP-listed endpoints via the SELAT Router._