Auto research public skill

Autonomous cold email campaign launcher.

by growthenginenowoslawski·MIT license·★ 736 Stars on the repo·GitHub ↗

Use now

Files of Auto research public

growthenginenowoslawski/main1 file shown
SKILL.md
Show the full text288 lines

Auto Research (Public)

Automated end-to-end campaign launcher. Feed it one target company domain, get back a live Smartlead campaign with per-lead personalization — in about 20 minutes.

This is the beginner-friendly version of the GEX internal auto-research-v2. All state lives in local JSON files; no Supabase, no Trigger.dev.

What you get

  • Input: one target company domain + your client-profile.yaml
  • Output: a running Smartlead campaign with:
    • 200-1,000 leads (depending on targeting tightness)
    • Per-lead personalization: 9 custom variables (situation, value, CTA × 3 variants)
    • A/B/C subject + body variants tested in parallel
    • Campaign assigned to your available inboxes
    • Schedule: Mon-Fri 8am-5pm your timezone

Prerequisites

Before running:

  • client-profile.yaml exists (run /icp-onboarding if not)
  • SMARTLEAD_API_KEY in env
  • PROSPEO_API_KEY in env
  • MILLIONVERIFIER_API_KEY in env (for email validation)
  • At least 20 Smartlead inboxes tagged "active" (run /smartlead-inbox-manager first)
  • At least 1 campaign template in Smartlead (or the script creates a fresh one)

The orchestration (Claude Code runs this)

Unlike the other skills, this skill orchestrates through the Claude Code conversation itself — Claude does the reasoning (ICP generation, copy writing, personalization), and phase scripts do the heavy API I/O. This is the pattern from the GEX v2 internal.

Phase 1: Scrape the target company
npx tsx scripts/phase-scrape.ts --domain=<target.com> --out=/tmp/auto/scrape.json

Output: JSON with domain + text content from homepage, /about, /product, /pricing, /customers.

Claude reads the output and writes a short analysis to /tmp/auto/company-analysis.md:

  • What the company does
  • Who their likely customers are
  • Social proof signals
  • Potential angles for outreach
Phase 2: Claude generates ICP filters

Reading /tmp/auto/scrape.json + ~/cold-email-ai-skills/profiles/<slug>/client-profile.yaml, Claude writes Prospeo filters to /tmp/auto/filters.json:

{
  "job_titles": ["VP Marketing", "Head of Marketing", ...],
  "seniorities": ["Vice President", "Head", "Director"],
  "industries": ["Software Development", "Financial Services"],
  "company_size_min": 50,
  "company_size_max": 500,
  "countries": ["US"],
  "excluded_industries": ["Religious Institutions", "Government Administration"]
}

Claude MUST use exact Prospeo industry names from ~/cold-email-ai-skills/skills/icp-onboarding/references/prospeo-industries.md.

npx tsx scripts/phase-prospeo.ts --filters-file=/tmp/auto/filters.json --max-leads=1000 --out=/tmp/auto/leads.json

Output: JSON with leads array. Each lead has: first_name, last_name, email (may be empty), linkedin_url, job_title, company_name, company_domain, company_industry, company_headcount, company_description.

Phase 4: Email waterfall + description enrichment
npx tsx scripts/phase-enrich.ts --leads-file=/tmp/auto/leads.json --out=/tmp/auto/enriched.json

The script:

  1. Checks each lead for email; if missing, hits Prospeo's enrich-person endpoint
  2. If company_description is thin (<50 chars), scrapes company_domain homepage
  3. Runs MillionVerifier on every candidate email
  4. Writes enriched leads (only those with valid email) to output

Expect hit rates:

  • Retail/SMB: ~99% email found
  • B2B tech: ~65-80%
  • Healthcare/public sector: ~25-40%
  • MV rejection: ~20-30% of found emails
Phase 5: Copy writing (Claude)

Claude generates 3 copy variants (A, B, C) and writes to /tmp/auto/variants.json:

[
  {
    "variant": "A",
    "subject": "<concrete, specific, <60 chars>",
    "angle": "<pain observation>",
    "body_template": "Hi {{first_name}},\n\n{{situation_line_a}}\n\n{{value_line_a}}\n\n{{cta_line_a}}\n\n%signature%\n\nP.S. If this isn't relevant, just let me know and I won't reach out again."
  },
  {
    "variant": "B",
    "subject": "<different angle>",
    "angle": "<compliment + transition>",
    "body_template": "..."
  },
  {
    "variant": "C",
    "subject": "<third angle>",
    "angle": "<question>",
    "body_template": "..."
  }
]

Rules Claude MUST follow (run /spam-word-checker on output):

  • No em dashes (—). Use commas or periods.
  • No "leverage", "synergy", "solutions", "world-class", "cutting-edge".
  • Body: 50-90 words max.
  • Subject: under 60 chars, specific, no clickbait.
  • End with %signature% on its own line.
Phase 6: Personalization via Task sub-agents

Claude fans out to parallel Task sub-agents (one per variant × batch of 20-30 leads). See /personalization-subagent-pattern for the full pattern.

Per lead, each sub-agent writes to /tmp/auto/personalization-<batch>-variant-<X>.json:

[
  {
    "lead_id": "...",
    "situation_line": "One sentence about the company.",
    "value_line": "One sentence connecting to our offer.",
    "cta_soft": "One soft ask sentence."
  }
]

After all sub-agents finish, Claude merges by lead_id into /tmp/auto/personalized.json. Each lead now has 9 personalization fields.

Phase 7: Upload to Smartlead
npx tsx scripts/phase-upload.ts \
  --leads-file=/tmp/auto/personalized.json \
  --variants-file=/tmp/auto/variants.json \
  --domain=<target.com> \
  --inboxes-tag=active \
  --inbox-count=10 \
  --activate

This script:

  1. Creates a new Smartlead campaign named [AUTO] <date> <target> Auto
  2. Saves the 3-variant sequence with campaign-ID-scoped custom vars ({{situation_line_a_{campaign_id}}})
  3. Selects N inboxes tagged "active" from Smartlead (LRU — least recently used first)
  4. Uploads leads in batches of 100 with custom fields mapped to their personalization
  5. Sets schedule (Mon-Fri 8am-5pm EST) and settings (tracking off, stop on reply)
  6. Activates the campaign

Outputs: { campaignId, inboxCount, leadsUploaded } to stdout.

Phase 8: Save experiment state (local JSON)

Write to ~/cold-email-ai-skills/profiles/<slug>/experiments/<YYYY-MM-DD>-<target>.json:

{
  "date": "2026-04-17",
  "target_domain": "example.com",
  "smartlead_campaign_id": 123456,
  "inboxes_assigned": [...],
  "icp_filters": {...},
  "variants": [...],
  "lead_count_uploaded": 347,
  "launched_at": "2026-04-17T14:23:00Z",
  "status": "launched"
}

This is your experiment log. /experiment-design reads from here to compare runs. /positive-reply-scoring writes results back to this file after 21 days.

Running the full loop

To run all 8 phases in one command (with Claude orchestrating):

/auto-research-public --domain=<target.com>

Claude Code will execute each phase in order, pausing before phase 5 (copy) and phase 7 (upload) so you can review.

Daily / scheduled runs

Once comfortable, wrap it in a cron or use Claude Code's /loop skill to run daily:

/loop 1d /auto-research-public --domain=$(cat /tmp/auto/next-target.txt)

You need a way to pick the next target each day. Options:

  • Maintain a targets.txt list and pop one per day
  • Let Claude pick based on TAM research (see /GEX:Full-TAM-Waterfall for inspiration)
  • Rotate through a list of competitors/lookalikes

State files (local JSON, no database)

Everything the skill needs lives under ~/cold-email-ai-skills/profiles/<slug>/:

profiles/
  <business-slug>/
    client-profile.yaml          # from /icp-onboarding
    lead-magnets.md              # from /lead-magnet-brainstorm
    experiments/
      2026-04-16-targetco.json   # per-campaign experiment log
      2026-04-17-othertarget.json
    scores/
      123456-2026-05-07.json     # from /positive-reply-scoring

Inbox assignment (no Supabase)

The GEX v2 uses a Supabase table auto_research_inbox_assignments to track which inboxes are assigned to which campaigns (to spread load). This public version:

  1. Queries Smartlead for inboxes tagged "active"
  2. Pulls each inbox's daily_sent_count as a proxy for "how recently used"
  3. Sorts ascending, picks the first N (least-sent-today = least recently used)
  4. Records the assignment in the local experiment JSON (not a database)

Works for <1000 inboxes. If you scale beyond that, migrate to a real DB.

Common issues

  • Prospeo INVALID_FILTERS — Usually "industry name not in the 256 list." Check /icp-onboarding references/prospeo-industries.md for exact matches.
  • Low email hit rate — If <30%, your list is targeting hard-to-find people (niche titles, small companies). Widen ICP or accept the cost.
  • Sub-agent personalization repetitive — If you see the same phrasing across leads, rerun that batch with a diversity prompt. See /personalization-subagent-pattern references/failure-modes.md.
  • Smartlead "inbox not allowed" on upload — Inbox is flagged/blocked. The script skips and continues.
  • Campaign stuck at 0 sends — Check campaign schedule, inbox warmup status (via /smartlead-inbox-manager list-health), and that leads actually uploaded.

Cost per run

Typical run (1 target, 1000 leads pulled):

  • Prospeo search: ~40 pages × search = ~$0.20
  • Prospeo enrich-person (email finding for ~500 leads missing email): ~$5
  • MillionVerifier validation: ~$0.50
  • Smartlead send cost: ~$0.001/email sent over time
  • Claude Code Task sub-agents: (uses your Claude Code plan — no extra API spend)

Total: ~$6-10 per campaign to reach 300-500 valid emails.

Scripts

  • scripts/phase-scrape.ts — website scrape
  • scripts/phase-prospeo.ts — Prospeo paginated search
  • scripts/phase-enrich.ts — email waterfall + description enrichment + MillionVerifier
  • scripts/phase-upload.ts — Smartlead campaign creation + upload
  • scripts/_lib.ts — shared API helpers

References

  • references/orchestration-checklist.md — full step-by-step for running the loop manually
  • references/icp-to-prospeo.md — how to translate client-profile.yaml into Prospeo filter JSON
  • references/copy-variant-guide.md — how to write 3 distinct A/B/C variants

What to do next

Wait 21 days for the campaign to accumulate reply data, then run /positive-reply-scoring on the launched campaign.

Meanwhile: continue the weekly rhythm via /cold-email-weekly-rhythm. Every Monday, /email-deliverability-audit on the new campaign to catch infrastructure issues early.

Or wait: this skill IS the automation loop. Next action can be "run again tomorrow with a different target domain" or integrate with /schedule skill to run daily.

  • /icp-onboarding — produces client-profile.yaml (required input)
  • /lead-magnet-brainstorm — produces the offer/CTA this campaign asks about
  • /personalization-subagent-pattern — the fan-out pattern used in phase 6
  • /smartlead-inbox-manager — must run BEFORE so inboxes are tagged/warmed
  • /positive-reply-scoring — run AFTER 21 days to score the campaign
  • /experiment-design — how to plan which target to try next
1---
2name: auto-research-public
3description: Autonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".
4---
5 
6# Auto Research (Public)
7 
8Automated end-to-end campaign launcher. Feed it one target company domain, get back a live Smartlead campaign with per-lead personalization — in about 20 minutes.
9 
10This is the beginner-friendly version of the GEX internal `auto-research-v2`. All state lives in local JSON files; no Supabase, no Trigger.dev.
11 
12## What you get
13 
14- **Input:** one target company domain + your `client-profile.yaml`
15- **Output:** a running Smartlead campaign with:
16 - 200-1,000 leads (depending on targeting tightness)
17 - Per-lead personalization: 9 custom variables (situation, value, CTA × 3 variants)
18 - A/B/C subject + body variants tested in parallel
19 - Campaign assigned to your available inboxes
20 - Schedule: Mon-Fri 8am-5pm your timezone
21 
22## Prerequisites
23 
24Before running:
25- [ ] `client-profile.yaml` exists (run `/icp-onboarding` if not)
26- [ ] `SMARTLEAD_API_KEY` in env
27- [ ] `PROSPEO_API_KEY` in env
28- [ ] `MILLIONVERIFIER_API_KEY` in env (for email validation)
29- [ ] At least 20 Smartlead inboxes tagged "active" (run `/smartlead-inbox-manager` first)
30- [ ] At least 1 campaign template in Smartlead (or the script creates a fresh one)
31 
32## The orchestration (Claude Code runs this)
33 
34Unlike the other skills, this skill orchestrates through the Claude Code conversation itself — Claude does the reasoning (ICP generation, copy writing, personalization), and phase scripts do the heavy API I/O. This is the pattern from the GEX v2 internal.
35 
36### Phase 1: Scrape the target company
37 
38```bash
39npx tsx scripts/phase-scrape.ts --domain=<target.com> --out=/tmp/auto/scrape.json
40```
41 
42Output: JSON with `domain` + text content from homepage, /about, /product, /pricing, /customers.
43 
44Claude reads the output and writes a short analysis to `/tmp/auto/company-analysis.md`:
45- What the company does
46- Who their likely customers are
47- Social proof signals
48- Potential angles for outreach
49 
50### Phase 2: Claude generates ICP filters
51 
52Reading `/tmp/auto/scrape.json` + `~/cold-email-ai-skills/profiles/<slug>/client-profile.yaml`, Claude writes Prospeo filters to `/tmp/auto/filters.json`:
53 
54```json
55{
56 "job_titles": ["VP Marketing", "Head of Marketing", ...],
57 "seniorities": ["Vice President", "Head", "Director"],
58 "industries": ["Software Development", "Financial Services"],
59 "company_size_min": 50,
60 "company_size_max": 500,
61 "countries": ["US"],
62 "excluded_industries": ["Religious Institutions", "Government Administration"]
63}
64```
65 
66Claude MUST use exact Prospeo industry names from `~/cold-email-ai-skills/skills/icp-onboarding/references/prospeo-industries.md`.
67 
68### Phase 3: Prospeo search
69 
70```bash
71npx tsx scripts/phase-prospeo.ts --filters-file=/tmp/auto/filters.json --max-leads=1000 --out=/tmp/auto/leads.json
72```
73 
74Output: JSON with `leads` array. Each lead has: `first_name`, `last_name`, `email` (may be empty), `linkedin_url`, `job_title`, `company_name`, `company_domain`, `company_industry`, `company_headcount`, `company_description`.
75 
76### Phase 4: Email waterfall + description enrichment
77 
78```bash
79npx tsx scripts/phase-enrich.ts --leads-file=/tmp/auto/leads.json --out=/tmp/auto/enriched.json
80```
81 
82The script:
831. Checks each lead for email; if missing, hits Prospeo's `enrich-person` endpoint
842. If company_description is thin (<50 chars), scrapes company_domain homepage
853. Runs MillionVerifier on every candidate email
864. Writes enriched leads (only those with valid email) to output
87 
88Expect hit rates:
89- Retail/SMB: ~99% email found
90- B2B tech: ~65-80%
91- Healthcare/public sector: ~25-40%
92- MV rejection: ~20-30% of found emails
93 
94### Phase 5: Copy writing (Claude)
95 
96Claude generates 3 copy variants (A, B, C) and writes to `/tmp/auto/variants.json`:
97 
98```json
99[
100 {
101 "variant": "A",
102 "subject": "<concrete, specific, <60 chars>",
103 "angle": "<pain observation>",
104 "body_template": "Hi {{first_name}},\n\n{{situation_line_a}}\n\n{{value_line_a}}\n\n{{cta_line_a}}\n\n%signature%\n\nP.S. If this isn't relevant, just let me know and I won't reach out again."
105 },
106 {
107 "variant": "B",
108 "subject": "<different angle>",
109 "angle": "<compliment + transition>",
110 "body_template": "..."
111 },
112 {
113 "variant": "C",
114 "subject": "<third angle>",
115 "angle": "<question>",
116 "body_template": "..."
117 }
118]
119```
120 
121Rules Claude MUST follow (run `/spam-word-checker` on output):
122- No em dashes (—). Use commas or periods.
123- No "leverage", "synergy", "solutions", "world-class", "cutting-edge".
124- Body: 50-90 words max.
125- Subject: under 60 chars, specific, no clickbait.
126- End with `%signature%` on its own line.
127 
128### Phase 6: Personalization via Task sub-agents
129 
130Claude fans out to parallel Task sub-agents (one per variant × batch of 20-30 leads). See `/personalization-subagent-pattern` for the full pattern.
131 
132Per lead, each sub-agent writes to `/tmp/auto/personalization-<batch>-variant-<X>.json`:
133 
134```json
135[
136 {
137 "lead_id": "...",
138 "situation_line": "One sentence about the company.",
139 "value_line": "One sentence connecting to our offer.",
140 "cta_soft": "One soft ask sentence."
141 }
142]
143```
144 
145After all sub-agents finish, Claude merges by lead_id into `/tmp/auto/personalized.json`. Each lead now has 9 personalization fields.
146 
147### Phase 7: Upload to Smartlead
148 
149```bash
150npx tsx scripts/phase-upload.ts \
151 --leads-file=/tmp/auto/personalized.json \
152 --variants-file=/tmp/auto/variants.json \
153 --domain=<target.com> \
154 --inboxes-tag=active \
155 --inbox-count=10 \
156 --activate
157```
158 
159This script:
1601. Creates a new Smartlead campaign named `[AUTO] <date> <target> Auto`
1612. Saves the 3-variant sequence with campaign-ID-scoped custom vars (`{{situation_line_a_{campaign_id}}}`)
1623. Selects N inboxes tagged "active" from Smartlead (LRU — least recently used first)
1634. Uploads leads in batches of 100 with custom fields mapped to their personalization
1645. Sets schedule (Mon-Fri 8am-5pm EST) and settings (tracking off, stop on reply)
1656. Activates the campaign
166 
167Outputs: `{ campaignId, inboxCount, leadsUploaded }` to stdout.
168 
169### Phase 8: Save experiment state (local JSON)
170 
171Write to `~/cold-email-ai-skills/profiles/<slug>/experiments/<YYYY-MM-DD>-<target>.json`:
172 
173```json
174{
175 "date": "2026-04-17",
176 "target_domain": "example.com",
177 "smartlead_campaign_id": 123456,
178 "inboxes_assigned": [...],
179 "icp_filters": {...},
180 "variants": [...],
181 "lead_count_uploaded": 347,
182 "launched_at": "2026-04-17T14:23:00Z",
183 "status": "launched"
184}
185```
186 
187This is your experiment log. `/experiment-design` reads from here to compare runs. `/positive-reply-scoring` writes results back to this file after 21 days.
188 
189## Running the full loop
190 
191To run all 8 phases in one command (with Claude orchestrating):
192 
193```
194/auto-research-public --domain=<target.com>
195```
196 
197Claude Code will execute each phase in order, pausing before phase 5 (copy) and phase 7 (upload) so you can review.
198 
199## Daily / scheduled runs
200 
201Once comfortable, wrap it in a cron or use Claude Code's `/loop` skill to run daily:
202 
203```
204/loop 1d /auto-research-public --domain=$(cat /tmp/auto/next-target.txt)
205```
206 
207You need a way to pick the next target each day. Options:
208- Maintain a `targets.txt` list and pop one per day
209- Let Claude pick based on TAM research (see `/GEX:Full-TAM-Waterfall` for inspiration)
210- Rotate through a list of competitors/lookalikes
211 
212## State files (local JSON, no database)
213 
214Everything the skill needs lives under `~/cold-email-ai-skills/profiles/<slug>/`:
215 
216```
217profiles/
218 <business-slug>/
219 client-profile.yaml # from /icp-onboarding
220 lead-magnets.md # from /lead-magnet-brainstorm
221 experiments/
222 2026-04-16-targetco.json # per-campaign experiment log
223 2026-04-17-othertarget.json
224 scores/
225 123456-2026-05-07.json # from /positive-reply-scoring
226```
227 
228## Inbox assignment (no Supabase)
229 
230The GEX v2 uses a Supabase table `auto_research_inbox_assignments` to track which inboxes are assigned to which campaigns (to spread load). This public version:
231 
2321. Queries Smartlead for inboxes tagged "active"
2332. Pulls each inbox's `daily_sent_count` as a proxy for "how recently used"
2343. Sorts ascending, picks the first N (least-sent-today = least recently used)
2354. Records the assignment in the local experiment JSON (not a database)
236 
237Works for <1000 inboxes. If you scale beyond that, migrate to a real DB.
238 
239## Common issues
240 
241- **Prospeo INVALID_FILTERS** — Usually "industry name not in the 256 list." Check `/icp-onboarding` references/prospeo-industries.md for exact matches.
242- **Low email hit rate** — If <30%, your list is targeting hard-to-find people (niche titles, small companies). Widen ICP or accept the cost.
243- **Sub-agent personalization repetitive** — If you see the same phrasing across leads, rerun that batch with a diversity prompt. See `/personalization-subagent-pattern` references/failure-modes.md.
244- **Smartlead "inbox not allowed" on upload** — Inbox is flagged/blocked. The script skips and continues.
245- **Campaign stuck at 0 sends** — Check campaign schedule, inbox warmup status (via `/smartlead-inbox-manager list-health`), and that leads actually uploaded.
246 
247## Cost per run
248 
249Typical run (1 target, 1000 leads pulled):
250- Prospeo search: ~40 pages × search = ~$0.20
251- Prospeo enrich-person (email finding for ~500 leads missing email): ~$5
252- MillionVerifier validation: ~$0.50
253- Smartlead send cost: ~$0.001/email sent over time
254- Claude Code Task sub-agents: (uses your Claude Code plan — no extra API spend)
255 
256Total: **~$6-10 per campaign** to reach 300-500 valid emails.
257 
258## Scripts
259 
260- `scripts/phase-scrape.ts` — website scrape
261- `scripts/phase-prospeo.ts` — Prospeo paginated search
262- `scripts/phase-enrich.ts` — email waterfall + description enrichment + MillionVerifier
263- `scripts/phase-upload.ts` — Smartlead campaign creation + upload
264- `scripts/_lib.ts` — shared API helpers
265 
266## References
267 
268- `references/orchestration-checklist.md` — full step-by-step for running the loop manually
269- `references/icp-to-prospeo.md` — how to translate client-profile.yaml into Prospeo filter JSON
270- `references/copy-variant-guide.md` — how to write 3 distinct A/B/C variants
271 
272## What to do next
273 
274**Wait 21 days** for the campaign to accumulate reply data, then run `/positive-reply-scoring` on the launched campaign.
275 
276**Meanwhile:** continue the weekly rhythm via `/cold-email-weekly-rhythm`. Every Monday, `/email-deliverability-audit` on the new campaign to catch infrastructure issues early.
277 
278**Or wait:** this skill IS the automation loop. Next action can be "run again tomorrow with a different target domain" or integrate with `/schedule` skill to run daily.
279 
280## Related skills
281 
282- `/icp-onboarding` — produces client-profile.yaml (required input)
283- `/lead-magnet-brainstorm` — produces the offer/CTA this campaign asks about
284- `/personalization-subagent-pattern` — the fan-out pattern used in phase 6
285- `/smartlead-inbox-manager` — must run BEFORE so inboxes are tagged/warmed
286- `/positive-reply-scoring` — run AFTER 21 days to score the campaign
287- `/experiment-design` — how to plan which target to try next
288 

Discussion

Alternatives

AI Sales Team — Main OrchestratorYou are a comprehensive AI sales intelligence and outreach system for Claude Code. You help founders, sales teams, agency owners, and…Sales & ecommerce · MITCold email outreachRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.Sales & ecommerce · MITBuild a system for handling sales leadsTell us how leads reach your team today and you get back a written playbook for scoring, routing, and following up on every lead fast.Business & ops · MITSales engineerUse this agent when you need to conduct technical pre-sales activities including solution architecture, proof-of-concept development, and technical demonstrations for complex sales deals. Specifically:\\n\\n<example>\\nContext: A prospect with complex technical requirements needs a custom solution designed and demonstrated before committing to evaluation.\\nuser: "We have a potential customer with high technical requirements: 10k+ transaction throughput, sub-100ms latency, and complex integrations. They want to see this works before signing an evaluation agreement."\\nassistant: "I'll conduct discovery to understand their technical landscape, design a solution architecture that addresses their requirements, create a POC environment demonstrating feasibility, and prepare a technical walkthrough addressing their integration needs and performance expectations."\\n<commentary>\\nUse the sales-engineer agent when you need to design and demonstrate technical solutions that address specific prospect requirements. This agent bridges technical capabilities with sales objectives, particularly for complex enterprise deals requiring proof of concept.\\n</commentary>\\n</example>\\n\\n<example>\\nContext: Sales team is facing technical objections from a qualified prospect and needs expert help addressing security, scalability, or integration concerns.\\nuser: "The prospect's security team is concerned about our compliance posture and data residency. They also want to know how we handle failover and disaster recovery. Can someone address these concerns technically?"\\nassistant: "I'll prepare a comprehensive technical response covering our security architecture, compliance mappings, data residency options, and disaster recovery procedures. I'll create documentation showing how our solution meets their requirements and schedule a technical discussion with their team to answer detailed questions."\\n<commentary>\\nInvoke sales-engineer when technical objections or deep architectural questions need expert answers that build prospect confidence and move the deal forward.\\n</commentary>\\n</example>\\n\\n<example>\\nContext: A prospect is ready to move forward and needs a detailed RFP response with technical specifications, architecture diagrams, and implementation roadmap.\\nuser: "We received an RFP from a high-value prospect. They need detailed technical specifications, security documentation, performance benchmarks, and a proposed implementation timeline. This needs to be thorough and competitive."\\nassistant: "I'll build a comprehensive RFP response including detailed architecture diagrams, security and compliance analysis, performance specifications with benchmarks, integration capabilities assessment, customization options, implementation roadmap with milestones, and risk mitigation strategies. I'll ensure the response is competitive and positions our solution as the best technical fit."\\n<commentary>\\nUse this agent for RFP/RFI responses and formal technical proposals when you need professional documentation that demonstrates technical fit and differentiates against competitors.\\n</commentary>\\n</example>\\n\\nDoes not own pricing/discount decisions or contract negotiation — hand off to the account team. Does not draft compliance/legal certification language — hand off to legal-advisor.Sales & ecommerce · MIT