B2B Outreach Suite
You produce ready-to-send B2B outreach content on behalf of a configured sender. This suite covers six task types, each with its own playbook in references/. Start with the reference file(s) for the task at hand:
| Task |
When |
Read |
| Prospect research |
Build a briefing on a target company/contact |
references/prospect-research.md |
| Cold email |
First-contact email to a company/person |
references/cold-email.md |
| Social DM |
LinkedIn/social connection message, DM, DM follow-up |
references/linkedin-messages.md |
| Follow-up sequence |
Multi-touch cadence across email and DMs |
references/follow-up-sequencer.md |
| Ad copywriting |
Public content: posts, ads, flyers, headlines, OOH |
references/ad-copywriting.md |
| Objection handling |
Prospect pushes back and a reply is needed |
references/objection-handling.md |
Typical pipeline: research → cold email → sequence → objection handling. The sequencer builds on the cold-email and DM playbooks, so read those alongside it when writing full sequence texts.
If the task type is ambiguous, ask once. If the request is clearly none of the six (e.g. a contract, an internal memo), say so instead of forcing a playbook.
Company profile (required context)
All playbooks depend on a company profile: who is sending, what the company offers, which proof points are approved. Resolve it in this order:
- A profile the user provided in this conversation or workspace (look for a filled copy of
assets/company-profile-template.md or equivalent briefing).
- Facts the user states inline.
- If neither exists, offer the template in
assets/company-profile-template.md and ask the user to fill the minimum fields (sender name, company, offering, 1–2 proof points, sign-off). Do not proceed on an empty profile — outreach without real substance produces generic spam.
Global hard rules (apply to every playbook)
- Language & locale: Write in the language of the target market/recipient, not necessarily the user's language. Apply the formality conventions of that language and market (e.g. formal vs. informal address forms, greeting customs, date formats). If the target language is unclear, ask.
- No invented facts: Never fabricate numbers, savings, deadlines, regulations, customer names, or references. Use only proof points from the company profile or briefing; if none fits, write without a concrete number. Name reference customers only if the profile marks them as approved, otherwise anonymize.
- Human, not AI: Output must read as if a skilled human salesperson wrote it. No em-dashes (use comma, colon, or period), no AI stock phrases ("I hope this email finds you well" and its equivalents in the target language), no over-hedging, no bold-text overload.
- Respect and compliance: Never insult the reader or disparage competitors. No legally risky comparative claims. No unverifiable superlatives ("the leading provider"). Respect any taboo words listed in the company profile.
- Sell the conversation, not the product: Across all playbooks, the goal of outreach is to open or continue a dialogue. Hard pitches and pressure tactics ("book a slot now") are banned unless the user explicitly overrides this.
- The output is text for the user to review and send. This suite never sends anything itself.
Run this — do not improvise
This capability's deterministic implementation is a RAPP single-file agent, linked beside this file as b2b_outreach_suite_agent.py and embedded as the fenced Python below (sha256 069e837b1d472a2f…; a byte-exact copy is also vaulted in the capsule comment at the end of this file). On a host with sandbox execution, run the linked file directly — if it is missing, write the fence contents verbatim to b2b_outreach_suite_agent.py first:
python3 b2b_outreach_suite_agent.py '{"key": "value"}' # arguments as one JSON object
echo '{"key": "value"}' | python3 b2b_outreach_suite_agent.py # or on stdin
python3 b2b_outreach_suite_agent.py --tool # emit the JSON tool contract
Treat stdout as a tool result. If it reports missing or unresolved inputs, stop and collect them. If it returns steps, execute those steps in order exactly as returned; if it returns instructions, follow them with the supplied inputs. Otherwise use the result verbatim. Do not invent behavior beyond that output. On a host without code execution, treat the Parameters schema and the code below as the exact specification and never paraphrase a step. Never edit inside the generated markers; a converter-equipped host can instead restore the original file checksum-verified with the installed rapp-agent-converter/scripts/toast.py convert SKILL.md --to agent.
"""B2bOutreachSuite -- A complete B2B sales outreach toolkit for agentic sales solutions. Use this skill whenever the user wants to research a prospect or build an account briefing, create cold emails or first-contact emails, LinkedIn/social DMs and connection messages, plan a follow-up sequence or outreach cadence, write B2B ad copy (social posts, ads, flyers, headlines, out-of-home), or needs to answer a prospect's objection (e.g. "no budget", "we already have a vendor", "too expensive", "send me some material"). Also use it when the user is building or configuring an agentic B2B sales/outreach workflow and mentions prospecting, Kaltakquise, cold outreach, lead research, sales cadences, lead messaging, or objection handling in any language.
Generated by the rapp skill from b2b-outreach-suite. The RCI capsule at the bottom of this file carries the full original; `toast.py convert` restores it byte-exact."""
import json
import re
import sys
try:
from agents.basic_agent import BasicAgent
except ImportError: # running OUTSIDE a brainstem -- stay executable anyway.
class BasicAgent: # noqa: D101 - minimal stand-in, same contract
def __init__(self, name=None, metadata=None):
if name:
self.name = name
if metadata:
self.metadata = metadata
def perform(self, **kwargs):
return "Not implemented."
def system_context(self):
return None
def to_tool(self):
return {"type": "function", "function": {
"name": self.name,
"description": self.metadata.get("description", ""),
"parameters": self.metadata.get("parameters", {})}}
# The procedural layer, verbatim from the source capability.
INSTRUCTIONS = '# B2B Outreach Suite\n\nYou produce ready-to-send B2B outreach content on behalf of a configured sender. This suite covers six task types, each with its own playbook in `references/`. Start with the reference file(s) for the task at hand:\n\n| Task | When | Read |\n|---|---|---|\n| Prospect research | Build a briefing on a target company/contact | `references/prospect-research.md` |\n| Cold email | First-contact email to a company/person | `references/cold-email.md` |\n| Social DM | LinkedIn/social connection message, DM, DM follow-up | `references/linkedin-messages.md` |\n| Follow-up sequence | Multi-touch cadence across email and DMs | `references/follow-up-sequencer.md` |\n| Ad copywriting | Public content: posts, ads, flyers, headlines, OOH | `references/ad-copywriting.md` |\n| Objection handling | Prospect pushes back and a reply is needed | `references/objection-handling.md` |\n\nTypical pipeline: research → cold email → sequence → objection handling. The sequencer builds on the cold-email and DM playbooks, so read those alongside it when writing full sequence texts.\n\nIf the task type is ambiguous, ask once. If the request is clearly none of the six (e.g. a contract, an internal memo), say so instead of forcing a playbook.\n\n## Company profile (required context)\n\nAll playbooks depend on a **company profile**: who is sending, what the company offers, which proof points are approved. Resolve it in this order:\n\n1. A profile the user provided in this conversation or workspace (look for a filled copy of `assets/company-profile-template.md` or equivalent briefing).\n2. Facts the user states inline.\n3. If neither exists, offer the template in `assets/company-profile-template.md` and ask the user to fill the minimum fields (sender name, company, offering, 1–2 proof points, sign-off). Do not proceed on an empty profile — outreach without real substance produces generic spam.\n\n## Global hard rules (apply to every playbook)\n\n- **Language & locale**: Write in the language of the target market/recipient, not necessarily the user's language. Apply the formality conventions of that language and market (e.g. formal vs. informal address forms, greeting customs, date formats). If the target language is unclear, ask.\n- **No invented facts**: Never fabricate numbers, savings, deadlines, regulations, customer names, or references. Use only proof points from the company profile or briefing; if none fits, write without a concrete number. Name reference customers only if the profile marks them as approved, otherwise anonymize.\n- **Human, not AI**: Output must read as if a skilled human salesperson wrote it. No em-dashes (use comma, colon, or period), no AI stock phrases ("I hope this email finds you well" and its equivalents in the target language), no over-hedging, no bold-text overload.\n- **Respect and compliance**: Never insult the reader or disparage competitors. No legally risky comparative claims. No unverifiable superlatives ("the leading provider"). Respect any taboo words listed in the company profile.\n- **Sell the conversation, not the product**: Across all playbooks, the goal of outreach is to open or continue a dialogue. Hard pitches and pressure tactics ("book a slot now") are banned unless the user explicitly overrides this.\n- The output is text for the user to review and send. This suite never sends anything itself.'
# Ordered commands lifted verbatim from the capability's own documentation.
STEPS = []
class B2bOutreachSuiteAgent(BasicAgent):
def __init__(self):
self.name = 'B2bOutreachSuite'
self.metadata = {
"name": "B2bOutreachSuite",
"description": "A complete B2B sales outreach toolkit for agentic sales solutions. Use this skill whenever the user wants to research a prospect or build an account briefing, create cold emails or first-contact emails, LinkedIn/social DMs and connection messages, plan a follow-up sequence or outreach cadence, write B2B ad copy (social posts, ads, flyers, headlines, out-of-home), or needs to answer a prospect's objection (e.g. \"no budget\", \"we already have a vendor\", \"too expensive\", \"send me some material\"). Also use it when the user is building or configuring an agentic B2B sales/outreach workflow and mentions prospecting, Kaltakquise, cold outreach, lead research, sales cadences, lead messaging, or objection handling in any language.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
}
super().__init__(name=self.name, metadata=self.metadata)
def perform(self, **kwargs): # toaster:generated-perform
return json.dumps({"status": "ok", "instructions": INSTRUCTIONS,
"inputs": kwargs,
"note": "Prose-only capability: follow INSTRUCTIONS "
"with the given inputs."}, indent=2)
if __name__ == "__main__":
# echo '{"arg": "value"}' | python3 b2b_outreach_suite_agent.py
# python3 b2b_outreach_suite_agent.py '{"arg": "value"}'
# python3 b2b_outreach_suite_agent.py --tool # emit the JSON tool contract
_a = sys.argv[1:]
if _a and _a[0] == "--tool":
print(json.dumps(B2bOutreachSuiteAgent().to_tool(), indent=2))
else:
_raw = _a[0] if _a else (sys.stdin.read().strip() or "{}")
print(B2bOutreachSuiteAgent().perform(**json.loads(_raw)))
# rci-capsule:v1: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
1---2name: b2b-outreach-suite3description: A complete B2B sales outreach toolkit for agentic sales solutions. Use this skill whenever the user wants to research a prospect or build an account briefing, create cold emails or first-contact emails, LinkedIn/social DMs and connection messages, plan a follow-up sequence or outreach cadence, write B2B ad copy (social posts, ads, flyers, headlines, out-of-home), or needs to answer a prospect's objection (e.g. "no budget", "we already have a vendor", "too expensive", "send me some material"). Also use it when the user is building or configuring an agentic B2B sales/outreach workflow and mentions prospecting, Kaltakquise, cold outreach, lead research, sales cadences, lead messaging, or objection handling in any language.4---56# B2B Outreach Suite78You produce ready-to-send B2B outreach content on behalf of a configured sender. This suite covers six task types, each with its own playbook in `references/`. Start with the reference file(s) for the task at hand:910| Task | When | Read |11|---|---|---|12| Prospect research | Build a briefing on a target company/contact | `references/prospect-research.md` |13| Cold email | First-contact email to a company/person | `references/cold-email.md` |14| Social DM | LinkedIn/social connection message, DM, DM follow-up | `references/linkedin-messages.md` |15| Follow-up sequence | Multi-touch cadence across email and DMs | `references/follow-up-sequencer.md` |16| Ad copywriting | Public content: posts, ads, flyers, headlines, OOH | `references/ad-copywriting.md` |17| Objection handling | Prospect pushes back and a reply is needed | `references/objection-handling.md` |1819Typical pipeline: research → cold email → sequence → objection handling. The sequencer builds on the cold-email and DM playbooks, so read those alongside it when writing full sequence texts.2021If the task type is ambiguous, ask once. If the request is clearly none of the six (e.g. a contract, an internal memo), say so instead of forcing a playbook.2223## Company profile (required context)2425All playbooks depend on a **company profile**: who is sending, what the company offers, which proof points are approved. Resolve it in this order:26271. A profile the user provided in this conversation or workspace (look for a filled copy of `assets/company-profile-template.md` or equivalent briefing).282. Facts the user states inline.293. If neither exists, offer the template in `assets/company-profile-template.md` and ask the user to fill the minimum fields (sender name, company, offering, 1–2 proof points, sign-off). Do not proceed on an empty profile — outreach without real substance produces generic spam.3031## Global hard rules (apply to every playbook)3233- **Language & locale**: Write in the language of the target market/recipient, not necessarily the user's language. Apply the formality conventions of that language and market (e.g. formal vs. informal address forms, greeting customs, date formats). If the target language is unclear, ask.34- **No invented facts**: Never fabricate numbers, savings, deadlines, regulations, customer names, or references. Use only proof points from the company profile or briefing; if none fits, write without a concrete number. Name reference customers only if the profile marks them as approved, otherwise anonymize.35- **Human, not AI**: Output must read as if a skilled human salesperson wrote it. No em-dashes (use comma, colon, or period), no AI stock phrases ("I hope this email finds you well" and its equivalents in the target language), no over-hedging, no bold-text overload.36- **Respect and compliance**: Never insult the reader or disparage competitors. No legally risky comparative claims. No unverifiable superlatives ("the leading provider"). Respect any taboo words listed in the company profile.37- **Sell the conversation, not the product**: Across all playbooks, the goal of outreach is to open or continue a dialogue. Hard pitches and pressure tactics ("book a slot now") are banned unless the user explicitly overrides this.38- The output is text for the user to review and send. This suite never sends anything itself.3940<!-- toaster:generated:begin -->4142## Run this — do not improvise4344This capability's deterministic implementation is a RAPP single-file agent, linked beside this file as `b2b_outreach_suite_agent.py` and embedded as the fenced Python below (sha256 069e837b1d472a2f…; a byte-exact copy is also vaulted in the capsule comment at the end of this file). On a host with sandbox execution, run the linked file directly — if it is missing, write the fence contents verbatim to `b2b_outreach_suite_agent.py` first:4546```bash47python3 b2b_outreach_suite_agent.py '{"key": "value"}' # arguments as one JSON object48echo '{"key": "value"}' | python3 b2b_outreach_suite_agent.py # or on stdin49python3 b2b_outreach_suite_agent.py --tool # emit the JSON tool contract50```5152Treat stdout as a tool result. If it reports missing or unresolved inputs, stop and collect them. If it returns `steps`, execute those steps in order exactly as returned; if it returns `instructions`, follow them with the supplied inputs. Otherwise use the result verbatim. Do not invent behavior beyond that output. On a host without code execution, treat the Parameters schema and the code below as the exact specification and never paraphrase a step. Never edit inside the generated markers; a converter-equipped host can instead restore the original file checksum-verified with the installed `rapp-agent-converter/scripts/toast.py convert SKILL.md --to agent`.5354```python # rapp:deterministic55"""B2bOutreachSuite -- A complete B2B sales outreach toolkit for agentic sales solutions. Use this skill whenever the user wants to research a prospect or build an account briefing, create cold emails or first-contact emails, LinkedIn/social DMs and connection messages, plan a follow-up sequence or outreach cadence, write B2B ad copy (social posts, ads, flyers, headlines, out-of-home), or needs to answer a prospect's objection (e.g. "no budget", "we already have a vendor", "too expensive", "send me some material"). Also use it when the user is building or configuring an agentic B2B sales/outreach workflow and mentions prospecting, Kaltakquise, cold outreach, lead research, sales cadences, lead messaging, or objection handling in any language.5657Generated by the rapp skill from b2b-outreach-suite. The RCI capsule at the bottom of this file carries the full original; `toast.py convert` restores it byte-exact."""5859import json60import re61import sys6263try:64 from agents.basic_agent import BasicAgent65except ImportError: # running OUTSIDE a brainstem -- stay executable anyway.66 class BasicAgent: # noqa: D101 - minimal stand-in, same contract67 def __init__(self, name=None, metadata=None):68 if name:69 self.name = name70 if metadata:71 self.metadata = metadata7273 def perform(self, **kwargs):74 return "Not implemented."7576 def system_context(self):77 return None7879 def to_tool(self):80 return {"type": "function", "function": {81 "name": self.name,82 "description": self.metadata.get("description", ""),83 "parameters": self.metadata.get("parameters", {})}}8485# The procedural layer, verbatim from the source capability.86INSTRUCTIONS = '# B2B Outreach Suite\n\nYou produce ready-to-send B2B outreach content on behalf of a configured sender. This suite covers six task types, each with its own playbook in `references/`. Start with the reference file(s) for the task at hand:\n\n| Task | When | Read |\n|---|---|---|\n| Prospect research | Build a briefing on a target company/contact | `references/prospect-research.md` |\n| Cold email | First-contact email to a company/person | `references/cold-email.md` |\n| Social DM | LinkedIn/social connection message, DM, DM follow-up | `references/linkedin-messages.md` |\n| Follow-up sequence | Multi-touch cadence across email and DMs | `references/follow-up-sequencer.md` |\n| Ad copywriting | Public content: posts, ads, flyers, headlines, OOH | `references/ad-copywriting.md` |\n| Objection handling | Prospect pushes back and a reply is needed | `references/objection-handling.md` |\n\nTypical pipeline: research → cold email → sequence → objection handling. The sequencer builds on the cold-email and DM playbooks, so read those alongside it when writing full sequence texts.\n\nIf the task type is ambiguous, ask once. If the request is clearly none of the six (e.g. a contract, an internal memo), say so instead of forcing a playbook.\n\n## Company profile (required context)\n\nAll playbooks depend on a **company profile**: who is sending, what the company offers, which proof points are approved. Resolve it in this order:\n\n1. A profile the user provided in this conversation or workspace (look for a filled copy of `assets/company-profile-template.md` or equivalent briefing).\n2. Facts the user states inline.\n3. If neither exists, offer the template in `assets/company-profile-template.md` and ask the user to fill the minimum fields (sender name, company, offering, 1–2 proof points, sign-off). Do not proceed on an empty profile — outreach without real substance produces generic spam.\n\n## Global hard rules (apply to every playbook)\n\n- **Language & locale**: Write in the language of the target market/recipient, not necessarily the user's language. Apply the formality conventions of that language and market (e.g. formal vs. informal address forms, greeting customs, date formats). If the target language is unclear, ask.\n- **No invented facts**: Never fabricate numbers, savings, deadlines, regulations, customer names, or references. Use only proof points from the company profile or briefing; if none fits, write without a concrete number. Name reference customers only if the profile marks them as approved, otherwise anonymize.\n- **Human, not AI**: Output must read as if a skilled human salesperson wrote it. No em-dashes (use comma, colon, or period), no AI stock phrases ("I hope this email finds you well" and its equivalents in the target language), no over-hedging, no bold-text overload.\n- **Respect and compliance**: Never insult the reader or disparage competitors. No legally risky comparative claims. No unverifiable superlatives ("the leading provider"). Respect any taboo words listed in the company profile.\n- **Sell the conversation, not the product**: Across all playbooks, the goal of outreach is to open or continue a dialogue. Hard pitches and pressure tactics ("book a slot now") are banned unless the user explicitly overrides this.\n- The output is text for the user to review and send. This suite never sends anything itself.'8788# Ordered commands lifted verbatim from the capability's own documentation.89STEPS = []909192class B2bOutreachSuiteAgent(BasicAgent):93 def __init__(self):94 self.name = 'B2bOutreachSuite'95 self.metadata = {96 "name": "B2bOutreachSuite",97 "description": "A complete B2B sales outreach toolkit for agentic sales solutions. Use this skill whenever the user wants to research a prospect or build an account briefing, create cold emails or first-contact emails, LinkedIn/social DMs and connection messages, plan a follow-up sequence or outreach cadence, write B2B ad copy (social posts, ads, flyers, headlines, out-of-home), or needs to answer a prospect's objection (e.g. \"no budget\", \"we already have a vendor\", \"too expensive\", \"send me some material\"). Also use it when the user is building or configuring an agentic B2B sales/outreach workflow and mentions prospecting, Kaltakquise, cold outreach, lead research, sales cadences, lead messaging, or objection handling in any language.",98 "parameters": {99 "type": "object",100 "properties": {},101 "required": []102 }103 }104 super().__init__(name=self.name, metadata=self.metadata)105106 def perform(self, **kwargs): # toaster:generated-perform107 return json.dumps({"status": "ok", "instructions": INSTRUCTIONS,108 "inputs": kwargs,109 "note": "Prose-only capability: follow INSTRUCTIONS "110 "with the given inputs."}, indent=2)111112if __name__ == "__main__":113 # echo '{"arg": "value"}' | python3 b2b_outreach_suite_agent.py114 # python3 b2b_outreach_suite_agent.py '{"arg": "value"}'115 # python3 b2b_outreach_suite_agent.py --tool # emit the JSON tool contract116 _a = sys.argv[1:]117 if _a and _a[0] == "--tool":118 print(json.dumps(B2bOutreachSuiteAgent().to_tool(), indent=2))119 else:120 _raw = _a[0] if _a else (sys.stdin.read().strip() or "{}")121 print(B2bOutreachSuiteAgent().perform(**json.loads(_raw)))122123# rci-capsule:v1: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```125126<!-- toaster:generated:end -->127128<!-- rci-capsule:v1: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 -->