email-campaign
Skill2 starsChanged 40 days agoApache-2.0View on GitHub
Use this skill for one fixed, read-only email-campaign preparation bundle when the user has a complete target with a supported industry, company domain and name, target person's first and last name, and a matching known work email. Triggers on "prepare an outreach research bundle", "build a verified campaign seed list around this lead", or "cross-check this work email and company before outreach". It discovers 10 similar-size industry companies, retrieves domain email patterns, infers the target's email from name and domain, separately verifies the supplied email, enriches the person, and adds company context. It does not draft or send email. The CLI runs all six paid MPP steps; verification-only, discovery-only, and subset requests should use a smaller workflow.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- StephanMeijer/skillstheir own version, first seen Nov 8, 2026
- adityareddy-dev/deskstudiotheir own version, first seen Oct 25, 2026
- munnam77/claude-for-solopreneurstheir own version, first seen Oct 20, 2026
- sidchaudhary/gtm-skillstheir own version, first seen Aug 21, 2026
- clawdbartell-wq/owl-skillstheir own version, first seen May 18, 2026
- BlackBlazeXXX/claude-skills-marketingtheir own version, first seen Mar 31, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- adityareddy-dev/deskstudio★ 43same name
- BlackBlazeXXX/claude-skills-marketing★ 1same name
- clawdbartell-wq/owl-skills★ 1same name
- sidchaudhary/gtm-skills★ 1same name
- anshul-garg27/claude-enhancement-suite★ 0same name
- munnam77/claude-for-solopreneurs★ 0same name
- StephanMeijer/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- account-intelSkill
- comprehensive-enrichmentSkill
- enrich-waterfallSkill
- 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
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Use this skill to prepare a research and verification bundle for one known business lead and a small prospect-company seed list.
- Distinctive: line 64
Only after approval and a spendable Gateway balance, arm the approved cumulative cap, run the bundle once, and disarm the budget after …
- Distinctive: line 125
Campaign preparation only: No manifest step drafts or sends email.
- Very specific: line 135
Fiber request shape matters: Use industriesV2.anyOf and employeeCountV2 bounds.
- Very specific: line 142
Per-step caps are not cumulative: Every step sets its own maxAmount (about 1.4–1.6x its live quote).
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
email-campaign
When To Use
Use this skill to prepare a research and verification bundle for one known business lead and a small prospect-company seed list. It combines:
- ten companies matching an industry and 50–500 employee filter;
- domain-level email patterns and addresses;
- one target person's inferred work email;
- technical deliverability verification of a supplied work email;
- person enrichment for personalization; and
- company firmographic context.
This skill does not compose, schedule, or send messages. It does not prove that the recipient consented to contact. Use the results only for lawful, targeted business outreach; honor suppression lists and opt-outs, and do not use it for phishing, harassment, sensitive targeting, or bulk unsolicited spam.
The manifest is a fixed six-call pipeline. If the user wants only email verification, only company discovery, or a cheaper subset, use a smaller direct workflow instead of running this skill.
Workflow
Install the vetted recipe:
selat skill install email-campaign- Collect all six inputs and check that
email,firstName,lastName,company, anddomaindescribe the same target. Use a supported Fiber industry value such asSoftware. Probe all six payment challenges for free before wallet setup or spending:
selat skill verify ~/.config/selat/skills/email-campaign \ --industry Software \ --domain <bare-domain> \ --firstName <first-name> \ --lastName <last-name> \ --company "<company-name>" \ --email <known-work-email> \ --live-probe- Show every live quote, the expected cumulative total, and a proposed absolute session cap. Obtain explicit approval for that exact workload.
Only after approval and a spendable Gateway balance, arm the approved cumulative cap, run the bundle once, and disarm the budget after success or failure:
selat budget start --amount <approved-cumulative-cap> selat skill run email-campaign \ --industry Software \ --domain <bare-domain> \ --firstName <first-name> \ --lastName <last-name> \ --company "<company-name>" \ --email <known-work-email> selat budget stop
The CLI compiles each manifest entry into an independently capped selat-pay
call and continues across steps by default. Check the per-step result and
payment history before reporting success or considering a retry.
Fixed steps
- Fiber company search — return up to ten companies using the supplied industry and a fixed 50–500 employee range.
- Hunter domain search — retrieve domain-level email patterns and results.
- Hunter email finder — infer the named target's work email from domain and name.
- Hunter email verifier — evaluate technical deliverability for the
separately supplied
emailonce. - Apollo people enrichment — add person and employer context.
- Company Enrich lookup — add company firmographics by domain.
Inputs And Outputs
| Param | Required | Default | Description |
industry | yes | none | Supported Fiber industry value, such as Software. |
domain | yes | none | Bare target company domain matching company and email. |
firstName | yes | none | Target person's first name. |
lastName | yes | none | Target person's last name. |
company | yes | none | Target company name corresponding to the domain. |
email | yes | none | Known work email to verify; must match the target identity. |
Return a source-labelled preparation report, not a raw-data dump:
- target identity and company consistency check;
- supplied email verdict versus the separately inferred email;
- person/company fields useful for careful personalization;
- ten-company discovery results as a seed list, not automatically approved recipients;
- provider disagreements, missing data, and confidence limits; and
- per-step success/failure and final spend.
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. - Campaign preparation only. No manifest step drafts or sends email.
- Fixed pipeline, not a menu. The current CLI has no step selector and runs
all six calls. Do not promise that Fiber, domain search, or enrichment can be
skipped within
selat skill run. - No inter-step dataflow. Fiber results are not fed into Hunter; Hunter's
inferred email is not automatically passed to the verifier. The verifier
checks the user-supplied
email, which is why all inputs are required. - One verifier call only. Hunter's verifier already reports deliverability, bounce risk, and catch-all status. Paying for the identical request twice does not create independent confirmation.
- Fiber request shape matters. Use
industriesV2.anyOfandemployeeCountV2bounds. The olderindustriesandemployee_count_min/maxfields are not the current schema. This manifest pinspageSizeto ten. - Pagination is not in this skill. A continuation needs the first response's
billing.requestIdasparentRequestIdwith unchanged filters. Handle that as a separately reviewed operation. - Per-step caps are not cumulative. Every step sets its own
maxAmount(about 1.4–1.6x its live quote). The top-levelmaxAmount($0.30) is only the fallback for a step that declares no cap — it is not a full-run cap. The separately armed session budget is the only run-wide ceiling. - Live quote is authoritative. Free live probes on 2026-10-04 quoted Fiber $0.21 + Hunter domain-search $0.01365 + email-finder $0.01365 + email-verifier $0.0084 + Apollo $0.0399 + Company Enrich $0.012862 ≈ $0.298 for all six calls (sum of per-step caps $0.432). Fiber prices by result count, so it dominates the total. Re-probe before every approval because prices can change.
- Paid failure can still cost money. The runner continues to later steps by default. Never retry a charged failure without a fresh quote and approval.
- Deliverability is not permission. A technically valid address does not establish consent or make outreach lawful.
Validation
Validate structure locally:
selat skill validate ./skills/email-campaign
npm run validateFree end-to-end quote validation uses all six coherent inputs and --live-probe
as shown in Workflow Step 3. A passing receipt must report six reachable
routed-mpp calls, each within its per-step cap. Do not add --pay without
separate approval and an armed session budget.
Useful single-endpoint probes while debugging (free; never settle):
--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.
selat-pay POST "https://mpp.orthogonal.com/fiber/v1/company-search" --body '{"searchParams":{"industriesV2":{"anyOf":["Software"]},"employeeCountV2":{"lowerBoundExclusive":50,"upperBoundInclusive":500}},"pageSize":10}' --chain base --max-amount 0.30 --probe-only --live-probeselat-pay POST "https://hunter.mpp.paywithlocus.com/hunter/email-verifier" --body '{"email":"john@stripe.com"}' --chain base --max-amount 0.012 --probe-only --live-probeselat-pay GET "https://mpp.orthogonal.com/company-enrich/companies/enrich?domain=stripe.com" --chain base --max-amount 0.02 --probe-only --live-probe
References
manifest.json— the fixed, machine-readable six-call payment recipe.references/endpoints.md— pinned endpoints, request shapes, current quotes, and caps.references/agent-skill-authoring-sop.md— authoring standard.evals/evals.json— routing, safety, and approval-behavior evals.- Fiber company-search schema — https://docs.fiber.ai/build/sdks
- selat-pay — https://github.com/SELAT-AI/selat-pay
Third-party API names are trademarks of their respective owners; this skill only routes approved payments to their MPP endpoints.
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.

