agentleFS
SELAT-AISELAT-AI/selat-skills/skills/sales-prospecting/SKILL.md

sales-prospecting

Skill2 starsChanged 40 days agoApache-2.0View on GitHub

Use this skill when the user needs a bounded, read-only B2B prospecting brief that combines an ICP company search with research on one known target company and one known professional—for example, 'find ten SaaS companies and check the VP Sales at example.com', 'research decision-makers at this company', or 'cross-check this prospect's work email'. It runs five independent, keyless reads through the SELAT Router: company search, people search, privacy-limited professional enrichment, user-supplied work-email verification, and company enrichment. It does not retrieve personal emails or phone numbers, send outreach, or create a CRM list automatically.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 7

    Distinctive

    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
  1. Distinctive:

    Use for a small, bounded B2B prospecting research bundle when the requester has a legitimate business purpose and can supply both an ICP …

    line 17
  2. Distinctive:

    Do not use this skill for private individuals, personal-email or phone discovery, bulk harvesting, automated outreach, or CRM mutation.

    line 29
  3. Distinctive:

    Run the free live verification before wallet setup or payment:

    line 58
  4. Distinctive:

    Only after approval and a spendable Gateway balance, arm the approved session budget, run once, and stop the budget after success or …

    line 86
  5. Distinctive:

    Do not invent a unique person match, claim exhaustive coverage, or initiate outreach.

    line 145
  6. Distinctive:

    No defaults: all nine inputs are required.

    line 152
  7. Distinctive:

    Paid failures may charge: never auto-retry. Inspect history, re-probe, and obtain fresh approval first.

    line 165

“Common” is measured: kept by at least 6 in 10 of the 3 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

sales-prospecting

When To Use

Use for a small, bounded B2B prospecting research bundle when the requester has a legitimate business purpose and can supply both an ICP and one coherent known target company/person. The skill returns up to ten ICP company candidates, up to ten public professional candidates at the supplied company domain, one named professional cross-check, an independent deliverability verdict for a user-supplied work email, and company context.

This is a fixed five-read bundle, not an output-chained pipeline. Every step runs independently from the supplied parameters. In particular, the email verifier does not automatically consume an address returned by the professional enrichment step.

Do not use this skill for private individuals, personal-email or phone discovery, bulk harvesting, automated outreach, or CRM mutation.

Workflow

  1. Collect all nine required inputs:

    • companyKeywords: concise ICP keywords, such as B2B SaaS;
    • location: one target geography used by both searches;
    • employeeRange: one provider-format range such as 51,200;
    • jobTitle: one target role, such as VP Sales;
    • seniority: one supported value: founder, c_suite, partner, vp, head, director, manager, senior, entry, or intern;
    • companyDomain: one bare company domain, with no scheme or path;
    • firstName and lastName: one known professional at that company;
    • workEmail: one work email the requester is authorized to validate.

    Confirm that the domain, named professional, work email, role, and ICP form one coherent business-research target. The work-email domain should match the company domain unless the requester explains a legitimate corporate-domain relationship. Stop before any probe if an input is missing, malformed, or incoherent.

  2. Install the vetted recipe:

    selat skill install sales-prospecting
  3. Run the free live verification before wallet setup or payment:

    SELAT_ROUTER_URL=https://router.selat.ai \
      selat skill verify ~/.config/selat/skills/sales-prospecting \
      --companyKeywords "B2B SaaS" \
      --location "San Francisco" \
      --employeeRange "51,200" \
      --jobTitle "VP Sales" \
      --seniority "vp" \
      --companyDomain "example.com" \
      --firstName "Research" \
      --lastName "Lead" \
      --workEmail "research@example.com" \
      --live-probe
  4. Show the user each live quote, the expected total, every underlying per-call cap, and the proposed session cap. Live quotes on 2026-10-04 (free probe, routed-mpp): Apollo org search $0.0399, Apollo people search $0.00525, Apollo people enrichment $0.0399, Hunter email verifier $0.0084, Hunter company enrichment $0.01365; expected total $0.1071, sum of step caps $0.140. The top-level maxAmount ($0.050) is only the fallback cap for a step that omits its own; it is not a full-run cap, so propose a session budget from the step quotes, no higher than the $0.140 cap sum. Explain that all five independent steps execute and that a paid application error may still charge. Wait for explicit approval.
  5. Only after approval and a spendable Gateway balance, arm the approved session budget, run once, and stop the budget after success or failure:

    selat budget start --amount <approved-session-cap>
    selat skill run sales-prospecting \
      --companyKeywords "<ICP-keywords>" \
      --location "<target-location>" \
      --employeeRange "<lower,upper>" \
      --jobTitle "<one-job-title>" \
      --seniority "<supported-seniority>" \
      --companyDomain "<company-domain>" \
      --firstName "<first-name>" \
      --lastName "<last-name>" \
      --workEmail "<authorized-work-email>"
    selat budget stop

Inspect payment history before any retry. A changed target, email, or search scope is a new paid run and requires a fresh probe and separate approval.

Inputs And Outputs

ParamRequiredDefaultStepsDescription
companyKeywordsyesnone1ICP keywords for bounded company discovery.
locationyesnone1, 2One geography for company and professional searches.
employeeRangeyesnone1One employee-count range in lower,upper form.
jobTitleyesnone2One target professional title.
seniorityyesnone2One supported seniority enum.
companyDomainyesnone2, 3, 5Known target domain for professional and company research.
firstNameyesnone3Known target professional's first name.
lastNameyesnone3Known target professional's last name.
workEmailyesnone4Authorized work email independently checked for deliverability.

Steps always run in this order:

  1. Bounded ICP company search with a fixed ten-result first page.
  2. Bounded professional search at the supplied company domain with a fixed ten-result first page.
  3. Named-professional enrichment with personal-email and phone revelation fixed to false.
  4. Independent deliverability verification of the supplied workEmail.
  5. Company enrichment for the supplied domain.

Distill the raw responses into:

  1. The supplied ICP, known target, retrieval time, and five-step status.
  2. Up to ten ICP company candidates and why each matches the returned evidence.
  3. Up to ten professional candidates at the target domain, preserving title, seniority, location, and public professional links only when returned.
  4. A separate named-professional cross-check, without personal emails or phone.
  5. The supplied work email's deliverability verdict and confidence only as returned—never claim it was generated by step 3.
  6. Company industry, size, location, description, technology, and public social profiles only when actually returned.
  7. Conflicts, missing fields, ambiguous identities, final observed cost per step, and total cost.

Do not invent a unique person match, claim exhaustive coverage, or initiate outreach. Keep raw JSON and endpoint URLs out of the user-facing answer.

Gotchas

  • Five fixed independent calls: selat skill run executes all steps. This is not a conditional menu and no step consumes another step's output.
  • No defaults: all nine inputs are required. Missing input must fail before any endpoint call.
  • Validate enum and format before paying: invalid seniority or employeeRange may produce a paid application error because a free payment probe checks price and reachability before upstream input validation.
  • Work email only: personal-email and phone-revelation flags are fixed to false. Reject consumer mailbox domains or unrelated addresses unless the requester establishes an authorized business use.
  • Bounded scope: both searches request only the first ten results. A larger list or another page is a separate workflow and needs a fresh scope review.
  • Candidate search is not identity proof: preserve ambiguity and provenance.
  • Top-level maxAmount is not a session cap: it is a per-step fallback only. The cumulative tripwire is the separately approved selat budget.
  • Paid failures may charge: never auto-retry. Inspect history, re-probe, and obtain fresh approval first.

Validation

  • Static:

    selat skill validate ./skills/sales-prospecting
  • Free live gate:

    SELAT_ROUTER_URL=https://router.selat.ai \
      selat skill verify ./skills/sales-prospecting \
      --companyKeywords "B2B SaaS" \
      --location "San Francisco" \
      --employeeRange "51,200" \
      --jobTitle "VP Sales" \
      --seniority "vp" \
      --companyDomain "example.com" \
      --firstName "Research" \
      --lastName "Lead" \
      --workEmail "research@example.com" \
      --live-probe
  • Missing-input gate: omit each required parameter in turn and confirm the command fails before a network call.
  • Privacy gate: confirm the manifest fixes both personal-email and phone revelation to false.
  • Paid smoke test: use one requester-approved, legitimate B2B target only after a fresh quote, explicit approval, a spendable Gateway balance, and an armed session budget.

References

  • manifest.json — machine-readable five-read payment recipe.
  • references/endpoints.md — request schemas, prices, caps, live reliability signals, and free probe.
  • ../../references/agent-skill-authoring-sop.md — authoring standard.
  • selat-pay — https://github.com/SELAT-AI/selat-pay

"Apollo" and "Hunter" are trademarks of their respective owners and are used only for endpoint identification. This skill is not affiliated with or endorsed by either provider.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.