enrich-waterfall
Skill2 starsChanged 41 days agoApache-2.0View on GitHub
Use this skill for one fixed, read-only, multi-provider person-and-company enrichment bundle when the user has a complete and internally consistent target: known work email, first and last name, company, domain, LinkedIn person URL, Apollo organization ID, and X/Twitter handle. Triggers on "run the full enrichment bundle", "cross-check this lead across providers", "get contact, company, hiring, funding, news, and social context", or "verify this fully specified lead". The CLI runs all 17 paid calls independently; it cannot conditionally stop, skip tiers, or pass outputs between steps. Partial-identifier, subset, or cheapest-first requests should use a smaller skill or free endpoint discovery instead.
In this repository19 other files it gives its agents.
- account-intelSkill
- comprehensive-enrichmentSkill
- email-campaignSkill
- financial-intelSkill
- find-twitter-influencersSkill
- gtm-enrichment-deepSkill
- gtm-enrichment-smartSkill
- lead-enrichmentSkill
- perplexity-searchSkill
- person-lookupSkill
- recent-funding-roundsSkill
- sales-prospectingSkill
- scrapecreatorsSkill
- self-evolving-agentSkill
- social-intelSkill
- stock-direction-signalsSkill
- twitter-researchSkill
- vc-ai-infra-scoutSkill
- wallet-desk-briefSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 27
Use this skill for a full, fixed 17-call evidence bundle on one known person and their employer.
- Distinctive: line 40
All calls are read-only. The only side effect is the explicitly approved USDC spend.
- Distinctive: line 79
Only after approval and a spendable Gateway balance, arm the approved cumulative cap, run the fixed bundle once, and disarm the budget …
- Distinctive: line 138
every step's success/failure plus the final settled spend.
- Distinctive: line 140
Do not silently merge conflicting people or companies.
- Distinctive: line 194
Never retry automatically or treat a partial failure as zero spend.
- Distinctive: line 212
Live quote is authoritative: Never reuse a price from this document as approval.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
enrich-waterfall
When To Use
Use this skill for a full, fixed 17-call evidence bundle on one known person and their employer. It cross-checks identity and contact data, compares company records, retrieves hiring and recent-news signals, reads a supplied LinkedIn and X/Twitter profile, and verifies a supplied work email.
Despite the historical enrich-waterfall name, this is not a waterfall or a
menu: selat skill run always executes every step, and the CLI has no step
selector, stop-on-match, or tier escalation. Use this skill only when the user
wants the entire bundle and supplies every required identifier. If the user has
only one partial identifier, wants a cheaper subset, or asks for true
stop-on-match escalation, use a smaller skill, hand-built single selat-pay
calls after their own probe and approval, or free discovery instead.
All calls are read-only. The only side effect is the explicitly approved USDC spend. Use personal and contact data only for a legitimate, lawful purpose; do not use the skill for harassment, phishing, sensitive profiling, or unsolicited bulk outreach.
Workflow
Install the vetted recipe:
selat skill install enrich-waterfall- Collect all eight inputs:
email,firstName,lastName,domain,company,linkedinUrl,organizationId, andxHandle. None has a default, so the CLI refuses to run without all eight. Confirm that they describe the same person and company. Do not combine convenient placeholders from unrelated identities. Probe all 17 payment challenges for free before wallet setup or spending:
SELAT_ROUTER_URL=https://router.selat.ai \ selat skill verify ~/.config/selat/skills/enrich-waterfall \ --email <known-work-email> \ --firstName <first-name> \ --lastName <last-name> \ --domain <bare-domain> \ --company "<company-name>" \ --linkedinUrl <person-linkedin-url> \ --organizationId <apollo-organization-id> \ --xHandle <x-username-without-at> \ --live-probe- Show every live quote, the expected cumulative total, and the sum of the per-step caps. Propose an absolute session cap no higher than that cap sum and obtain explicit approval for the exact 17-call workload.
Only after approval and a spendable Gateway balance, arm the approved cumulative cap, run the fixed bundle once, and disarm the budget after success or failure:
selat budget start --amount <approved-cumulative-cap> selat skill run enrich-waterfall \ --email <known-work-email> \ --firstName <first-name> \ --lastName <last-name> \ --domain <bare-domain> \ --company "<company-name>" \ --linkedinUrl <person-linkedin-url> \ --organizationId <apollo-organization-id> \ --xHandle <x-username-without-at> selat budget stop
The CLI compiles every manifest entry into one independently capped selat-pay
call and continues across failures by default. Inspect the per-step status and
payment history; a final failure does not mean earlier calls were not charged.
Fixed step groups
- Person and supplied identity (6 calls) — Apollo people enrichment
(
reveal_*flags off); Hunter email and combined enrichment; Scrape Creators LinkedIn profile read; Hunter email finder; a five-result Apollo people-search filtered to the supplied domain. - Company and signals (8 calls) — Apollo company search (5 results) and enrichment; Company Enrich and Hunter company cross-checks; Apollo job postings (10 results); two Brave searches for recent company and funding news; Diffbot organization data.
- Contact, social, and verification (3 calls) — Clado email-and-phone reveal; SELAT-native X/Twitter profile; Hunter verification of the supplied email.
The group labels are for reporting only. They do not create conditional execution or data dependencies.
Inputs And Outputs
| Param | Required | Default | Description |
email | yes | none | Known work email for the target; enriched and verified as supplied. |
firstName | yes | none | Target first name matching the email and LinkedIn URL. |
lastName | yes | none | Target last name matching the email and LinkedIn URL. |
domain | yes | none | Bare employer domain such as stripe.com; also filters the people-search. |
company | yes | none | Employer name corresponding to the domain and Apollo organization ID. |
linkedinUrl | yes | none | LinkedIn person-profile URL for the same target. |
organizationId | yes | none | Apollo organization ID for the same company. |
xHandle | yes | none | X/Twitter username without @, matching the target. |
Return a source-labelled report rather than a raw data dump:
- an identity-consistency assessment across the supplied identifiers;
- the supplied-email verdict versus any separately inferred email;
- person, role, LinkedIn, X/Twitter, and contact findings;
- company firmographics, technology, hiring, knowledge-graph, news, and funding signals;
- provider disagreements, missing fields, and confidence limits; and
- every step's success/failure plus the final settled spend.
Do not silently merge conflicting people or companies. Treat every supplied identifier and provider match as a hypothesis to cross-check, not proof of identity. Do not expose unnecessary personal data in the final report.
Rails And Costs
Free probe on 2026-10-04 with a coherent real-company parameter set; 16 steps
probe routed-mpp (MPP on Tempo) and the X/Twitter step routed-x402 (x402 via
Circle Gateway), all through the SELAT Router.
| # | Step | Live quote | Per-step cap |
| 1 | Apollo people-enrichment | $0.0399 | $0.06 |
| 2 | Hunter email-enrichment | $0.01365 | $0.02 |
| 3 | Scrape Creators LinkedIn profile | $0.021 | $0.03 |
| 4 | Hunter combined-enrichment | $0.02415 | $0.035 |
| 5 | Apollo org-search | $0.0399 | $0.06 |
| 6 | Orthogonal Company Enrich | $0.012862 | $0.02 |
| 7 | Apollo org-enrichment | $0.0399 | $0.06 |
| 8 | Hunter company-enrichment | $0.01365 | $0.02 |
| 9 | Hunter email-finder | $0.01365 | $0.02 |
| 10 | SELAT X/Twitter user info | $0.001 | $0.0015 |
| 11 | Apollo job-postings | $0.0399 | $0.06 |
| 12 | Brave news-search (company news) | $0.03675 | $0.05 |
| 13 | Brave news-search (funding) | $0.03675 | $0.05 |
| 14 | Diffbot KG enhance | $0.03675 | $0.05 |
| 15 | Clado contacts (email + phone flags) | $0.15015 | $0.20 |
| 16 | Apollo people-search | $0.00525 | $0.0075 |
| 17 | Hunter email-verifier | $0.0084 | $0.0125 |
| Total | ≈ $0.534 | sum of caps $0.7565 |
The top-level maxAmount ($0.06) is only the fallback cap for a step that
sets none; it is not a whole-run budget. The run-wide ceiling is the session
budget you arm with selat budget start.
Gotchas
- A found email can be a pattern guess. On accept-all (catch-all) domains,
Hunter's email finder returns
source_type: "generated"(built from the domain's email pattern, with no published source) yet still marks itverification.status: "valid". Ifsource_typeisgeneratedoraccept_allis true, report the address as an unconfirmed pattern guess, not a verified contact. - Fixed bundle, not a conditional waterfall.
selat skill runhas no step selector and executes all 17 manifest entries every time. It cannot stop after a match or skip premium calls. - No inter-step dataflow. Apollo's organization ID, Hunter's inferred email, and any discovered social link are not fed into later requests. That is why all eight coherent inputs are required before the run.
- Per-step caps are not cumulative. The manifest caps each call separately. The armed session budget is the only run-wide tripwire; calculate it from fresh quotes and explicit approval.
- Paid failures can still cost money. Providers may capture payment before validating the body. The runner then continues to later steps by default. Never retry automatically or treat a partial failure as zero spend.
- The final verifier checks the supplied
email. It does not consume the separate email-finder response. - The X/Twitter call requires a username, not a full name. Supply
xHandlewithout@; the skill does not infer it. - The Apollo job-postings call requires a supplied organization ID. It does not consume the earlier Apollo organization response.
- Clado contact enrichment explicitly requests email and phone. Both flags raise the quote from $0.045 to about $0.150; the free probe is the price source of truth.
- Result counts are fixed literals. Apollo org-search
per_page: 5, people-searchper_page: 5, job-postingsper_page: 10, and Bravecount: 10are numeric literals; do not turn them into params. - Diffbot sends arrays for
nameandurl. The manifest pins both shapes,size: 1, and disables paid refresh. - Dead routes are gone. Clado
/clado/linkedin-profile,/clado/scrape, and/clado/searchserve no 402 (re-checked 2026-10-04); LinkedIn reads use Scrape Creators and person search uses Apollo people-search. - Live quote is authoritative. Never reuse a price from this document as approval; run the free probe immediately before every paid session.
Validation
--chain basein the probe commands below is only the flagselat-payrequires 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.
Validate the target skill and then the repository:
selat skill validate ./skills/enrich-waterfall
npm run validateFree end-to-end quote validation uses all eight coherent inputs and
--live-probe as shown in Workflow Step 3. A passing receipt must show all 17
endpoints reachable and each quote within its per-step cap. Do not add --pay
without separate approval and an armed session budget.
Useful single-endpoint probes while debugging are free and never settle (run
with SELAT_ROUTER_URL=https://router.selat.ai). These optional commands
require a shell-callable selat-pay; the bundled copy is sufficient for the
full selat skill verify command even when it is not on PATH:
selat-pay GET "https://mpp.orthogonal.com/company-enrich/companies/enrich?domain=stripe.com" --chain base --max-amount 0.02 --probe-only --live-probeselat-pay GET "https://mpp.orthogonal.com/scrapecreators/v1/linkedin/profile?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fpatrickcollison" --chain base --max-amount 0.03 --probe-only --live-probeselat-pay POST "https://apollo.mpp.paywithlocus.com/apollo/people-search" --body '{"q_keywords":"Patrick Collison","q_organization_domains_list":["stripe.com"],"per_page":5,"page":1}' --chain base --max-amount 0.0075 --probe-only --live-probeselat-pay POST "https://clado.mpp.paywithlocus.com/clado/contacts" --body '{"linkedin_url":"https://www.linkedin.com/in/patrickcollison","email_enrichment":true,"phone_enrichment":true}' --chain base --max-amount 0.20 --probe-only --live-probeselat-pay POST "https://diffbot-kg.mpp.paywithlocus.com/diffbot-kg/enhance" --body '{"type":"Organization","name":["Stripe"],"url":["https://stripe.com"],"refresh":false,"size":1}' --chain base --max-amount 0.05 --probe-only --live-probe
References
manifest.json— the fixed, machine-readable 17-call recipe.references/endpoints.md— request schemas, free probe quotes, per-step caps, and input mapping.agent-skill-authoring-sop.md— authoring standard.evals/evals.json— trigger, control-flow, safety, and output-quality evals.- selat-pay — https://github.com/SELAT-AI/selat-pay
Third-party API names are trademarks of their respective owners; this skill only routes explicitly approved payments to their endpoints and is not affiliated with or endorsed by them.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

