Install
$ agentstack add skill-celina-create-x-studio-personalized-cold-outreach ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
personalized-cold-outreach
Purpose — Generate 1-to-1 personalized outreach messages at batch scale. Each message quotes the recipient's own words back to them, references a specific pain they've expressed, and offers a concrete next step.
Triggers — "personalize cold emails for ", "write outreach for this CSV", "1-to-1 message for each row in "
Why this beats a mailmerge — Standard mailmerge replaces {{name}}. This skill generates 3–5 personalized sentences per recipient referencing their actual public pain statements. Reply rates are typically 3–10× standard cold email.
Inputs
- Seed CSV from [
competitive-intel-mining](../competitive-intel-mining) — must includehandle,source_url,exact_quote,pain_category - Your pitch — 2–3 sentences describing what you'd show the recipient if they replied (not your full product tour)
- Message channel — email / X DM / GitHub issue / LinkedIn
- CTA — what action you want them to take (reply / book call / click pre-filled issue / watch 3-min Loom)
Outputs
- A CSV enriched with columns:
subject,opening,pain_mirror,pitch_line,cta,pre_filled_url(if applicable),send_batch - A review list of the 5 best and 5 worst generated messages for manual tuning before batch send
Steps
- Read row + source URL — For each recipient, pull the
exact_quoteand (optionally) re-open the source URL for 1–2 adjacent sentences of context. - Draft opening — 1 sentence referring to the specific place you found them ("saw your Paperclip #447 thread"). Never generic ("I noticed you").
- Draft pain mirror — 1–2 sentences quoting their own words and naming the underlying pain ("you said 'agent panics when sandbox rejects bash' — that's the class of bug that comes from X").
- Draft pitch line — 1 sentence only. What you'd show them if they replied. Concrete, not abstract.
- Draft CTA — 1 specific next step with near-zero friction. Examples:
- "Want a 3-min Loom tailored to your case? Reply y/n."
- "Open a pre-filled issue with what breaks today — "
- "Reply with a screenshot of your current agent config"
- Sign-off — First name only. No title, no links in signature.
- Quality check each message against the rules below. Regenerate if any fail.
- Batch output — Group into send batches of ≤10 per day per channel to avoid spam filters / rate limits.
Quality bar (per message)
- [ ] ≤120 words total
- [ ] Zero generic phrases ("I hope this finds you well", "I came across your profile")
- [ ] Exact quote from their words appears verbatim once
- [ ] Subject line is
Hey {{name}},
Saw your {{source}} where you wrote: "{{exact_quote}}"
That's the class of pain that happens because {{one-line technical/strategic take}}.
I've been working on {{one-line pitch}} — here's what I'd show you if it helps: {{prefilledurl}} (30 seconds, no signup)
Worth a look?
—{{yourfirstname}}
## Anti-patterns
- **Don't use "I think" or "I believe"** — they read as low-confidence. State the observation.
- **Don't close with "let me know if you're interested"** — it's a weak CTA. Use a specific verb.
- **Don't send on Monday morning** — inbox is overloaded. Tuesday–Thursday 10am recipient local time performs best.
- **Don't A/B 10 variants** — pick one good message, iterate after 20 replies.
## Related
- Skill: [`competitive-intel-mining`](../competitive-intel-mining) — source of the input CSV
- Skill: [`landing-to-issue-funnel`](../landing-to-issue-funnel) — for the `pre_filled_url` pattern
- Template: [`templates/cold-email/`](../../templates/cold-email) — raw message templates
- Playbook: [`01-cold-email-campaign`](../../playbooks/01-cold-email-campaign.md)
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [Celina-create](https://github.com/Celina-create)
- **Source:** [Celina-create/X-Studio](https://github.com/Celina-create/X-Studio)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.