---
name: 0xjitsu/template-personalizer
source: https://app.decimal.ai/s/0xjitsu-template-personalizer@1/SKILL.md
source_sha256: 63fccd07b1a1
---

# Template Personalizer

Merge-field personalization engine for outreach messages.

## When to Trigger

Activate this skill when the user:

- Asks to personalize messages or outreach emails
- Wants to customize templates with contact data
- Needs to write tailored cold emails, DMs, or Slack messages
- Provides a template with placeholder fields and a contact list
- Says "personalize", "merge fields", "customize template", or "tailor outreach"

## Template Syntax

Use double-brace merge fields in all templates. These are the supported fields:

| Merge Field              | Source                   | Example Value                          |
|--------------------------|--------------------------|----------------------------------------|
| `{{first_name}}`         | Contact record           | "Alex"                                 |
| `{{last_name}}`          | Contact record           | "Chen"                                 |
| `{{company}}`            | Clay enrichment          | "Acme Protocol"                        |
| `{{role}}`               | Clay enrichment          | "Head of Developer Relations"          |
| `{{tech_stack}}`         | Clay enrichment          | "Solidity, TypeScript, Foundry"        |
| `{{mutual_connection}}`  | Clay enrichment          | "Jordan from Paradigm"                 |
| `{{recent_achievement}}` | Clay enrichment          | "launched v2 mainnet last week"        |
| `{{company_size}}`       | Clay enrichment          | "50-100 employees"                     |
| `{{funding_stage}}`      | Clay enrichment          | "Series A ($12M)"                      |
| `{{industry}}`           | Clay enrichment          | "DeFi infrastructure"                  |
| `{{social_handle}}`      | Clay enrichment          | "@alexchen"                            |
| `{{custom_hook}}`        | Generated per contact    | Unique opener based on research        |

## Data Source: Clay MCP to Merge Field Mapping

Pull enrichment data and map it to merge fields:

1. Call `find-and-enrich-company` with the company domain
   - Maps to: `{{company}}`, `{{company_size}}`, `{{funding_stage}}`, `{{industry}}`

2. Call `find-and-enrich-contacts-at-company` with the contact name
   - Maps to: `{{role}}`, `{{tech_stack}}`, `{{social_handle}}`

3. Call `ask-question-about-accounts` with targeted queries
   - "What recent news or achievements does this company have?" maps to `{{recent_achievement}}`
   - "Who are mutual connections?" maps to `{{mutual_connection}}`

4. Generate `{{custom_hook}}` by synthesizing the above into a one-sentence opener unique to the contact.

## Tone Controls

Set the tone before generating any messages. The user specifies one of four modes:

### Formal (Enterprise)

- Full sentences, proper grammar, no contractions
- Professional sign-off ("Best regards", "Looking forward to connecting")
- Title-case subject lines
- Example: "Dear Alex, I wanted to reach out regarding a potential collaboration between our organizations."

### Casual (Startup)

- Contractions, conversational flow, short paragraphs
- Friendly sign-off ("Cheers", "Talk soon")
- Sentence-case subject lines
- Example: "Hey Alex, saw what you're building at Acme -- super cool stuff."

### CT-Style (Crypto / 0xJitsu)

- Lowercase preference, abbreviations welcome
- Community-native language ("shipping", "based", "wagmi")
- No formal sign-off, just a call to action
- Example: "hey alex -- your v2 launch was legit. building something adjacent, think there's overlap."

### Technical (Dev-Focused)

- Lead with technical specifics, reference repos or tooling
- Include concrete technical value proposition
- Minimal fluff, direct to the point
- Example: "Alex, noticed your Foundry test suite on the v2 contracts. We built a gas optimization plugin that could cut your deployment costs by 40%."

## Personalization Depth Levels

### L1: Basic (Name + Company)

Fields used: `{{first_name}}`, `{{company}}`

Best for: Cold leads (score < 50), high-volume outreach, initial list validation.

```
Hey {{first_name}},

I came across {{company}} and wanted to connect.
We help teams like yours with [value prop].

Worth a quick chat?
```

### L2: Targeted (Role + Tech Stack + Company Size)

Fields used: `{{first_name}}`, `{{company}}`, `{{role}}`, `{{tech_stack}}`, `{{company_size}}`, `{{funding_stage}}`

Best for: Warm leads (score 50-79), mid-funnel nurture, segment-specific campaigns.

```
Hey {{first_name}},

As {{role}} at {{company}}, you're probably dealing with
[problem relevant to {{tech_stack}}] as you scale past
{{company_size}}.

We built [solution] specifically for {{funding_stage}}
companies in your space. [Specific benefit].

Open to a 15-min walkthrough?
```

### L3: Hyper-Personalized (Recent News + Mutual Connections + Custom Hook)

Fields used: All fields including `{{recent_achievement}}`, `{{mutual_connection}}`, `{{custom_hook}}`

Best for: Hot leads (score 80+), strategic accounts, executive outreach.

```
{{custom_hook}}

{{first_name}}, your {{recent_achievement}} stood out --
{{mutual_connection}} actually mentioned your team when we
were discussing {{industry}} trends last week.

Given your work with {{tech_stack}}, I think there's a
natural fit with what we're building. [Highly specific
value prop tied to their achievement].

Would love to compare notes. Free Thursday afternoon?
```

## Output Format

For each contact, output:

1. **Contact**: Name, company, score, tier
2. **Tone**: Which tone mode was applied
3. **Depth**: L1, L2, or L3
4. **Subject Line**: Personalized email subject (if channel is email)
5. **Message Body**: Full personalized message text
6. **Merge Fields Used**: List of fields that were populated vs. fell back to defaults
7. **Confidence**: High/Medium/Low based on how many fields had real data vs. placeholders

If a merge field has no data from Clay, flag it and either:
- Use a graceful fallback ("your team" instead of `{{company}}`)
- Skip the sentence that depends on it
- Never leave raw `{{field_name}}` in the output

## Anti-Patterns

These are hard rules. Reject any output that contains them.

| Anti-Pattern                     | Why It Fails                                        | What to Do Instead                          |
|----------------------------------|-----------------------------------------------------|---------------------------------------------|
| "Hope this finds you well"       | Generic opener, signals mass email                  | Lead with a specific observation about them  |
| "I'd love to pick your brain"    | One-sided value extraction                          | Offer value first, then ask                  |
| "Just circling back"             | Passive-aggressive, adds no new information         | Add new context or value in each follow-up   |
| "As a fellow [X]"               | Fake familiarity if not actually shared              | Only reference real mutual attributes         |
| "Quick question"                 | Subject line clickbait, erodes trust                | Write a subject that reflects actual content  |
| "I know you're busy, but..."    | Self-defeating opener, assumes rejection             | Be direct and confident                      |
| Exclamation marks in subject     | Spam trigger and reads as desperate                  | Use periods or no punctuation                |
| ALL CAPS in subject              | Spam filter trigger                                  | Sentence case only                           |
| More than 150 words in cold email| Too long, won't get read                            | Keep to 80-120 words max for initial outreach|
| Sending without opt-out footer   | Legal and ethical violation                          | Always append opt-out line                   |