Permission Setup Review
python scripts/_wildcard_placeholder.py is an optional setup helper for the Outreach Demo skill. It may apply broad filesystem permissions for compatibility. Show the target paths and permission mode, explain the risk, and prefer a narrower mode when shared write access is not needed.
Outreach Demo
Build a draft-first outreach package from three inputs: business name, website URL, and contact email.
Keep the workflow evidence-based, concise, and approval-gated for any email send.
Workflow
Intake
- Collect:
- business name
- contact name if available
- contact email
- website URL
- optional business notes
- If website URL or email is missing, ask only for the missing field.
Website research
- Inspect the public website only.
- Prefer homepage, about, services/products, contact, and selected blog/resources pages.
- Extract only visible, supportable observations.
- Do not guess internal systems, revenue, staffing, or pain points.
OpenClaw fit analysis
- Propose up to 3 concrete OpenClaw use cases.
- Rank them by:
- visible fit
- likely business value
- lowest-friction starting point
- Also produce:
- one
priority_move
- a short
why_it_matters[] list
- Phrase uncertain conclusions as “likely”, “appears”, or “suggests”.
Report generation
- Use
references/report-format.md for section shape.
- For plain operator review, render markdown with:
scripts/render_outreach_report.py --input <json> --output <md>
- For visually stronger delivery, render a polished HTML one-page brief with:
scripts/render_outreach_report_html.py --input <json> --output <html>
- Preferred showcase artifact: convert the HTML brief to PDF with:
scripts/render_outreach_report_pdf.sh --input <html> --output <pdf>
- Prefer PDF for live outreach when visual impact matters.
Email draft generation
- Default to the value-first / “free doughnut” framing: give the prospect a small concrete asset before asking for time.
- Use
references/email-template.md for default tone and structure.
- Read
references/value-first-outreach.md when you need to optimize for scannability, subject lines, or a more enticing value-first CTA.
- Render a plain-text draft with:
scripts/render_outreach_email.py --input <json> --output <txt>
- Render lightweight HTML with:
scripts/render_outreach_email_html.py --input <json> --output <html>
- Preferred showcase send mode: HTML email + attached brief.
- Keep email short, specific, and visually scannable.
- Default to draft-only.
Approval gate
- Do not send email automatically.
- Sending is allowed only after explicit user approval for that recipient/message.
- Build a preview manifest with:
scripts/render_outreach_preview.py --input <json> --subject <subject> --email-text <txt> --email-html <html> --brief <brief.html> --output <preview.json>
- Before send, preview or summarize:
- recipient
- subject
- plain-text fallback body
- HTML body when used
- attached brief filename/format when used
- For actual HTML+brief send, use:
scripts/send_outreach_package.sh --to <email> --subject <subject> --text <txt> --html <html> --attach <brief.pdf>
- Use a client-facing attachment name such as:
<Business-Name>-OpenClaw-Brief.pdf
Output standard
Produce three artifacts when possible:
- structured JSON summary
- markdown report
- plain-text email draft
Recommended JSON fields:
business_name
contact_name
contact_email
website_url
business_summary
likely_audience
website_observations[]
openclaw_fits[] with:
use_case
why_it_fits
likely_value
starting_point
priority_move with:
move
why_first
expected_benefit
why_it_matters[]
demo_angle
outreach_summary
Guardrails
- Research public website content only unless the user supplies additional material.
- Do not claim verified need where only a hypothesis exists.
- Do not overpromise outcomes.
- Do not send email without explicit approval.
- Use the configured sender account and sender identity for outbound workflows; do not hardcode personal branding into public distributions.
Resources
references/
references/report-format.md — required report structure
references/email-template.md — default email draft shape and constraints
references/value-first-outreach.md — value-first / “free doughnut” outreach framing, scannability rules, and CTA guidance
references/visual-delivery.md — HTML email + one-page brief delivery guidance and approval-preview checklist
references/follow-up-sequence.md — optional follow-up templates and cadence after the initial brief send
scripts/
scripts/render_outreach_report.py — render markdown report from structured JSON
scripts/render_outreach_report_html.py — render polished HTML one-page brief from structured JSON
scripts/render_outreach_report_pdf.sh — convert the HTML brief into a client-facing PDF artifact
scripts/render_outreach_email.py — render plain-text outreach email from structured JSON
scripts/render_outreach_email_html.py — render lightweight HTML outreach email from structured JSON
scripts/render_outreach_preview.py — render approval preview manifest for the actual outbound package
scripts/send_outreach_package.sh — send HTML email plus attached brief via Gmail after approval
scripts/config.example.json — example config with sender account and output defaults
1---2name: outreach-demo-33description: Research a business website, produce a concise prospect report, recommend concrete OpenClaw use cases, and draft a tailored outreach email. Use when demonstrating OpenClaw to a business owner, preparing personalized prospecting materials from a website URL + contact email, or turning website research into an approval-gated email draft.4---56789### Permission Setup Review1011`python scripts/_wildcard_placeholder.py` is an optional setup helper for the `Outreach Demo` skill. It may apply broad filesystem permissions for compatibility. Show the target paths and permission mode, explain the risk, and prefer a narrower mode when shared write access is not needed.1213# Outreach Demo1415Build a draft-first outreach package from three inputs: business name, website URL, and contact email.1617Keep the workflow evidence-based, concise, and approval-gated for any email send.1819## Workflow20211. **Intake**22 - Collect:23 - business name24 - contact name if available25 - contact email26 - website URL27 - optional business notes28 - If website URL or email is missing, ask only for the missing field.29302. **Website research**31 - Inspect the public website only.32 - Prefer homepage, about, services/products, contact, and selected blog/resources pages.33 - Extract only visible, supportable observations.34 - Do not guess internal systems, revenue, staffing, or pain points.35363. **OpenClaw fit analysis**37 - Propose up to 3 concrete OpenClaw use cases.38 - Rank them by:39 - visible fit40 - likely business value41 - lowest-friction starting point42 - Also produce:43 - one `priority_move`44 - a short `why_it_matters[]` list45 - Phrase uncertain conclusions as “likely”, “appears”, or “suggests”.46474. **Report generation**48 - Use `references/report-format.md` for section shape.49 - For plain operator review, render markdown with:50 - `scripts/render_outreach_report.py --input <json> --output <md>`51 - For visually stronger delivery, render a polished HTML one-page brief with:52 - `scripts/render_outreach_report_html.py --input <json> --output <html>`53 - Preferred showcase artifact: convert the HTML brief to PDF with:54 - `scripts/render_outreach_report_pdf.sh --input <html> --output <pdf>`55 - Prefer PDF for live outreach when visual impact matters.56575. **Email draft generation**58 - Default to the value-first / “free doughnut” framing: give the prospect a small concrete asset before asking for time.59 - Use `references/email-template.md` for default tone and structure.60 - Read `references/value-first-outreach.md` when you need to optimize for scannability, subject lines, or a more enticing value-first CTA.61 - Render a plain-text draft with:62 - `scripts/render_outreach_email.py --input <json> --output <txt>`63 - Render lightweight HTML with:64 - `scripts/render_outreach_email_html.py --input <json> --output <html>`65 - Preferred showcase send mode: **HTML email + attached brief**.66 - Keep email short, specific, and visually scannable.67 - Default to draft-only.68696. **Approval gate**70 - Do not send email automatically.71 - Sending is allowed only after explicit user approval for that recipient/message.72 - Build a preview manifest with:73 - `scripts/render_outreach_preview.py --input <json> --subject <subject> --email-text <txt> --email-html <html> --brief <brief.html> --output <preview.json>`74 - Before send, preview or summarize:75 - recipient76 - subject77 - plain-text fallback body78 - HTML body when used79 - attached brief filename/format when used80 - For actual HTML+brief send, use:81 - `scripts/send_outreach_package.sh --to <email> --subject <subject> --text <txt> --html <html> --attach <brief.pdf>`82 - Use a client-facing attachment name such as:83 - `<Business-Name>-OpenClaw-Brief.pdf`8485## Output standard8687Produce three artifacts when possible:88- structured JSON summary89- markdown report90- plain-text email draft9192Recommended JSON fields:93- `business_name`94- `contact_name`95- `contact_email`96- `website_url`97- `business_summary`98- `likely_audience`99- `website_observations[]`100- `openclaw_fits[]` with:101 - `use_case`102 - `why_it_fits`103 - `likely_value`104 - `starting_point`105- `priority_move` with:106 - `move`107 - `why_first`108 - `expected_benefit`109- `why_it_matters[]`110- `demo_angle`111- `outreach_summary`112113## Guardrails114115- Research public website content only unless the user supplies additional material.116- Do not claim verified need where only a hypothesis exists.117- Do not overpromise outcomes.118- Do not send email without explicit approval.119- Use the configured sender account and sender identity for outbound workflows; do not hardcode personal branding into public distributions.120121## Resources122123### references/124- `references/report-format.md` — required report structure125- `references/email-template.md` — default email draft shape and constraints126- `references/value-first-outreach.md` — value-first / “free doughnut” outreach framing, scannability rules, and CTA guidance127- `references/visual-delivery.md` — HTML email + one-page brief delivery guidance and approval-preview checklist128- `references/follow-up-sequence.md` — optional follow-up templates and cadence after the initial brief send129130### scripts/131- `scripts/render_outreach_report.py` — render markdown report from structured JSON132- `scripts/render_outreach_report_html.py` — render polished HTML one-page brief from structured JSON133- `scripts/render_outreach_report_pdf.sh` — convert the HTML brief into a client-facing PDF artifact134- `scripts/render_outreach_email.py` — render plain-text outreach email from structured JSON135- `scripts/render_outreach_email_html.py` — render lightweight HTML outreach email from structured JSON136- `scripts/render_outreach_preview.py` — render approval preview manifest for the actual outbound package137- `scripts/send_outreach_package.sh` — send HTML email plus attached brief via Gmail after approval138- `scripts/config.example.json` — example config with sender account and output defaults