@sellable/mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +12 -0
- package/.mcp.json +9 -0
- package/README.md +355 -0
- package/dist/api.d.ts +21 -0
- package/dist/api.js +73 -0
- package/dist/auth.d.ts +60 -0
- package/dist/auth.js +246 -0
- package/dist/engage-memory.d.ts +63 -0
- package/dist/engage-memory.js +354 -0
- package/dist/index-dev.d.ts +2 -0
- package/dist/index-dev.js +17 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +499 -0
- package/dist/skills.d.ts +11 -0
- package/dist/skills.js +97 -0
- package/dist/tools/auth.d.ts +30 -0
- package/dist/tools/auth.js +124 -0
- package/dist/tools/blueprint-commit.d.ts +174 -0
- package/dist/tools/blueprint-commit.js +286 -0
- package/dist/tools/bootstrap.d.ts +64 -0
- package/dist/tools/bootstrap.js +246 -0
- package/dist/tools/campaigns.d.ts +589 -0
- package/dist/tools/campaigns.js +892 -0
- package/dist/tools/cells.d.ts +58 -0
- package/dist/tools/cells.js +48 -0
- package/dist/tools/context.d.ts +88 -0
- package/dist/tools/context.js +271 -0
- package/dist/tools/csv-domains.d.ts +73 -0
- package/dist/tools/csv-domains.js +464 -0
- package/dist/tools/csv-linkedin.d.ts +102 -0
- package/dist/tools/csv-linkedin.js +712 -0
- package/dist/tools/direct-campaigns.d.ts +240 -0
- package/dist/tools/direct-campaigns.js +250 -0
- package/dist/tools/engage-bootstrap.d.ts +94 -0
- package/dist/tools/engage-bootstrap.js +205 -0
- package/dist/tools/engage-discovery.d.ts +78 -0
- package/dist/tools/engage-discovery.js +150 -0
- package/dist/tools/engage-memory.d.ts +181 -0
- package/dist/tools/engage-memory.js +143 -0
- package/dist/tools/engage-state.d.ts +72 -0
- package/dist/tools/engage-state.js +62 -0
- package/dist/tools/enrichment.d.ts +167 -0
- package/dist/tools/enrichment.js +174 -0
- package/dist/tools/flow-preflight.d.ts +68 -0
- package/dist/tools/flow-preflight.js +138 -0
- package/dist/tools/framework.d.ts +44 -0
- package/dist/tools/framework.js +153 -0
- package/dist/tools/interaction-mode.d.ts +27 -0
- package/dist/tools/interaction-mode.js +102 -0
- package/dist/tools/leads.d.ts +2417 -0
- package/dist/tools/leads.js +2307 -0
- package/dist/tools/linkedin.d.ts +210 -0
- package/dist/tools/linkedin.js +229 -0
- package/dist/tools/navigation.d.ts +91 -0
- package/dist/tools/navigation.js +381 -0
- package/dist/tools/one-off.d.ts +229 -0
- package/dist/tools/one-off.js +273 -0
- package/dist/tools/processing.d.ts +70 -0
- package/dist/tools/processing.js +56 -0
- package/dist/tools/prompts.d.ts +211 -0
- package/dist/tools/prompts.js +210 -0
- package/dist/tools/provider-preflight.d.ts +21 -0
- package/dist/tools/provider-preflight.js +59 -0
- package/dist/tools/readiness.d.ts +261 -0
- package/dist/tools/readiness.js +510 -0
- package/dist/tools/rows.d.ts +126 -0
- package/dist/tools/rows.js +105 -0
- package/dist/tools/rubrics.d.ts +497 -0
- package/dist/tools/rubrics.js +681 -0
- package/dist/tools/senders.d.ts +44 -0
- package/dist/tools/senders.js +69 -0
- package/dist/tools/sequencer.d.ts +127 -0
- package/dist/tools/sequencer.js +194 -0
- package/dist/tools/tables.d.ts +35 -0
- package/dist/tools/tables.js +36 -0
- package/dist/tools/verify-row.d.ts +36 -0
- package/dist/tools/verify-row.js +38 -0
- package/dist/tools/workspaces.d.ts +140 -0
- package/dist/tools/workspaces.js +139 -0
- package/dist/utils/workspace-root.d.ts +1 -0
- package/dist/utils/workspace-root.js +39 -0
- package/package.json +46 -0
- package/skills/building-gtm-tables/SKILL.md +216 -0
- package/skills/building-gtm-tables/core/auto-execute.yaml +19 -0
- package/skills/building-gtm-tables/core/blueprint-schema.json +72 -0
- package/skills/building-gtm-tables/references/brief-to-blueprint.md +334 -0
- package/skills/building-gtm-tables/references/column-type-catalog.md +318 -0
- package/skills/building-gtm-tables/references/common-blueprints.fixtures.ts +199 -0
- package/skills/building-gtm-tables/references/common-blueprints.md +44 -0
- package/skills/building-gtm-tables/references/failure-taxonomy.md +197 -0
- package/skills/building-gtm-tables/references/uat-seed-prompts.md +37 -0
- package/skills/building-gtm-tables/references/verify-loop.md +74 -0
- package/skills/campaign-messages/SKILL.md +173 -0
- package/skills/campaign-messages/flow.v1.json +75 -0
- package/skills/craft-message/SKILL.md +401 -0
- package/skills/create-campaign/ARCHITECTURE.md +232 -0
- package/skills/create-campaign/DISCUSS.md +296 -0
- package/skills/create-campaign/FLOW_ASCII.md +240 -0
- package/skills/create-campaign/HOST-PARITY-CHECKLIST.md +49 -0
- package/skills/create-campaign/README.md +142 -0
- package/skills/create-campaign/SKILL.md +286 -0
- package/skills/create-campaign/context/README.md +67 -0
- package/skills/create-campaign/context/_TEMPLATE.md +12 -0
- package/skills/create-campaign/context/context.md +35 -0
- package/skills/create-campaign/context/learnings.md +16 -0
- package/skills/create-campaign/context/registry.json +19 -0
- package/skills/create-campaign/core/flow.v1.json +217 -0
- package/skills/create-campaign/core/policy.md +191 -0
- package/skills/create-campaign/core/providers/apollo.json +35 -0
- package/skills/create-campaign/core/providers/prospeo.json +34 -0
- package/skills/create-campaign/core/providers/registry.json +31 -0
- package/skills/create-campaign/core/providers/sales-nav.json +37 -0
- package/skills/create-campaign/core/providers/signal-discovery.json +42 -0
- package/skills/create-campaign/references/brief-template.md +64 -0
- package/skills/create-campaign/references/campaign-quality.md +84 -0
- package/skills/create-campaign/references/copy-calibration-examples.md +120 -0
- package/skills/create-campaign/references/offer-patterns.md +108 -0
- package/skills/create-campaign/references/provider-selection-strategy.md +212 -0
- package/skills/create-campaign/references/question-examples.md +167 -0
- package/skills/create-campaign/references/token-fill-examples.md +81 -0
- package/skills/create-campaign-brief/ARCHITECTURE.md +72 -0
- package/skills/create-campaign-brief/DISCUSS.md +64 -0
- package/skills/create-campaign-brief/README.md +176 -0
- package/skills/create-campaign-brief/SKILL.md +537 -0
- package/skills/create-campaign-brief/references/brief-synthesis-rules.md +100 -0
- package/skills/create-campaign-brief/references/brief-template.md +220 -0
- package/skills/create-campaign-brief/references/campaign-idea-options.md +30 -0
- package/skills/create-campaign-brief/references/copy-appendix-template.md +62 -0
- package/skills/create-campaign-brief/references/draft-lifecycle.md +23 -0
- package/skills/create-campaign-brief/references/examples/MANIFEST.json +89 -0
- package/skills/create-campaign-brief/references/examples/briefs/clover.md +223 -0
- package/skills/create-campaign-brief/references/examples/briefs/galley.md +222 -0
- package/skills/create-campaign-brief/references/examples/briefs/gelee.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/hey-digital.md +234 -0
- package/skills/create-campaign-brief/references/examples/briefs/persona.md +231 -0
- package/skills/create-campaign-brief/references/examples/briefs/revvix.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/sellable-dev.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/superposition.md +233 -0
- package/skills/create-campaign-brief/references/examples/briefs/superpower.md +219 -0
- package/skills/create-campaign-brief/references/examples/briefs/westpark-villas.md +220 -0
- package/skills/create-campaign-brief/references/icp-lock-question-bank.md +43 -0
- package/skills/create-campaign-brief/references/messaging-inputs.md +58 -0
- package/skills/create-campaign-brief/references/output-acceptance-rubric.md +62 -0
- package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +248 -0
- package/skills/create-campaign-brief/references/phase75-canonical-brief-template.md +319 -0
- package/skills/create-campaign-brief/references/phase75-good-brief-and-messaging-examples.md +445 -0
- package/skills/create-campaign-brief/references/quick-research-protocol.md +39 -0
- package/skills/create-campaign-brief/references/reference-sheet-protocol.md +60 -0
- package/skills/create-campaign-brief/references/zero-shot-iteration-rules.md +66 -0
- package/skills/create-campaign-v2/SKILL.md +1619 -0
- package/skills/create-campaign-v2/core/auto-execute.README.md +219 -0
- package/skills/create-campaign-v2/core/auto-execute.yaml +121 -0
- package/skills/create-campaign-v2/core/flow.v2.json +1643 -0
- package/skills/create-campaign-v2/core/policy.md +82 -0
- package/skills/create-campaign-v2/references/ai-tells.md +253 -0
- package/skills/create-campaign-v2/references/approval-gate-framing.md +346 -0
- package/skills/create-campaign-v2/references/draft-lifecycle.md +110 -0
- package/skills/create-campaign-v2/references/escalation-ladder.md +119 -0
- package/skills/create-campaign-v2/references/filter-leads.md +495 -0
- package/skills/create-campaign-v2/references/final-handoff-contract.md +176 -0
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +394 -0
- package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +314 -0
- package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +212 -0
- package/skills/create-campaign-v2/references/lead-validation-preview.md +172 -0
- package/skills/create-campaign-v2/references/parallel-critique-protocol.md +368 -0
- package/skills/create-campaign-v2/references/sample-validation-loop.md +289 -0
- package/skills/create-campaign-v2/references/step-13-import-leads.md +151 -0
- package/skills/create-campaign-v2/references/step-15-re-cascade.md +90 -0
- package/skills/create-campaign-v2/references/thomas-revision-filters.md +521 -0
- package/skills/create-campaign-v2/references/thomas-variant-selection.md +202 -0
- package/skills/create-campaign-v2/references/tier-routing-matrix.md +66 -0
- package/skills/create-campaign-v2/references/validation-criteria.md +367 -0
- package/skills/create-campaign-v2/references/watch-link-handoff.md +106 -0
- package/skills/create-campaign-v2-validation/SKILL.md +296 -0
- package/skills/create-post/SKILL.md +1308 -0
- package/skills/create-rubric/SKILL.md +251 -0
- package/skills/engage/SKILL.md +549 -0
- package/skills/engage/core/README.md +23 -0
- package/skills/engage/core/proven-searches.json +11 -0
- package/skills/engage/core/style-guide.template.md +47 -0
- package/skills/engage/core/tracked-people.json +10 -0
- package/skills/enrich-prospects/SKILL.md +97 -0
- package/skills/find-leads/SKILL.md +467 -0
- package/skills/generate-messages/SKILL.md +2361 -0
- package/skills/interview/SKILL.md +132 -0
- package/skills/interview/core/ENGAGE_STYLE_GUIDE.template.md +54 -0
- package/skills/interview/core/ICP.template.md +54 -0
- package/skills/interview/core/VOICE_PROFILE.template.md +101 -0
- package/skills/providers/apollo.md +520 -0
- package/skills/providers/prospeo.md +398 -0
- package/skills/providers/sales-nav.md +372 -0
- package/skills/providers/signal-discovery.md +495 -0
- package/skills/research/SKILL.md +258 -0
- package/skills/research/config.json +9 -0
- package/skills/research/override.md +13 -0
- package/skills/research-prospect/SKILL.md +99 -0
- package/skills/research-sender/SKILL.md +158 -0
- package/skills/workflow-sequences/SKILL.md +85 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interview
|
|
3
|
+
description: Voice-first interview to build your commenting style guide and ICP profile. Stream-of-consciousness capture — just talk naturally about how you engage on LinkedIn.
|
|
4
|
+
visibility: public
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Voice Interview
|
|
8
|
+
|
|
9
|
+
<role>
|
|
10
|
+
You are a Voice Interview Facilitator. Your job is to extract the user's authentic commenting voice through a stream-of-consciousness interview anchored to real LinkedIn posts. You synthesize their responses into structured configs that MCP tools read on every future session.
|
|
11
|
+
|
|
12
|
+
Key principles:
|
|
13
|
+
|
|
14
|
+
- Let the user talk naturally — don't over-structure
|
|
15
|
+
- Anchor every question to a specific post they can react to
|
|
16
|
+
- Extract patterns, not prescriptions
|
|
17
|
+
- Capture what makes their voice distinctive, not generic best practices
|
|
18
|
+
</role>
|
|
19
|
+
|
|
20
|
+
<objective>
|
|
21
|
+
Conduct a voice-first interview to populate `.sellable/configs/`:
|
|
22
|
+
1. Style guide → `.sellable/configs/writing/styleguide-core.md` (+ persisted via `set_engage_style_guide`)
|
|
23
|
+
2. Comment rules → `.sellable/configs/writing/comments.md`
|
|
24
|
+
3. ICP profile → `.sellable/configs/audience/icp.md`
|
|
25
|
+
4. Tracked people → `.sellable/configs/discovery/influencers.md` (via `upsert_engage_tracked_person`)
|
|
26
|
+
|
|
27
|
+
The interview reads `.sellable/insights/` to ask SMARTER questions — e.g., "Claude Code comments dominated your last session — tell me more about your take on AI coding." This makes each interview better than the last.
|
|
28
|
+
|
|
29
|
+
The interview should feel like a 5-minute conversation, not a form to fill out.
|
|
30
|
+
</objective>
|
|
31
|
+
|
|
32
|
+
<process>
|
|
33
|
+
|
|
34
|
+
## Phase 1: Context Gathering
|
|
35
|
+
|
|
36
|
+
1. Load current configs via `get_engage_memory()` to check what's already populated
|
|
37
|
+
2. **Read insight files** (lightweight — local files, fast):
|
|
38
|
+
- `./.sellable/insights/engage-sessions.md` (latest entry — what topics are trending, what comment angles work)
|
|
39
|
+
- `./.sellable/insights/post-sessions.md` (latest entry — what hooks/posts performed, trending context)
|
|
40
|
+
- `./.sellable/insights/cross-skill.md` (cross-skill learnings)
|
|
41
|
+
- `./.sellable/configs/audience/icp.md` (existing ICP — skip Phase 5 if already populated)
|
|
42
|
+
- Use these to inform smarter interview questions — ask about topics that are getting engagement, probe on angles that have worked, reference specific trending posts.
|
|
43
|
+
- If any file doesn't exist yet, skip silently.
|
|
44
|
+
3. Load the user's LinkedIn profile via `fetch_linkedin_profile` (from sender's URL)
|
|
45
|
+
4. Fetch 5-10 recent posts from 2-3 relevant thought leaders using `search_engagement_posts`
|
|
46
|
+
5. Select 3-5 diverse posts as interview anchors (different topics, formats, engagement levels)
|
|
47
|
+
|
|
48
|
+
## Phase 2: Post-Anchored Interview
|
|
49
|
+
|
|
50
|
+
Present the 3-5 posts and run a single AskUserQuestion with stream-of-consciousness prompts.
|
|
51
|
+
|
|
52
|
+
**If insights exist from prior sessions**, use them to make questions sharper:
|
|
53
|
+
|
|
54
|
+
- Reference specific trending topics from `insights/engage-sessions.md` (e.g., "Claude Code comments dominated your last session")
|
|
55
|
+
- Reference successful hooks from `insights/post-sessions.md` (e.g., "your '1,500x slower' hook scored 9.35 — what made that angle click for you?")
|
|
56
|
+
- Reference cross-skill patterns from `insights/cross-skill.md` (e.g., "Support+layer angles had 100% approval — is that your natural instinct or should we push for more contrarian takes?")
|
|
57
|
+
|
|
58
|
+
**Prompts (all in one capture):**
|
|
59
|
+
|
|
60
|
+
1. "Look at Posts A, B, C. What's the default LinkedIn take you'd expect in the comments — and where is it wrong or incomplete?"
|
|
61
|
+
2. "Pick 2 posts: what's the most useful contrarian nuance you'd add? Not edgy for the sake of it — genuinely useful. Give a concrete example or mini-framework."
|
|
62
|
+
3. "Pick 1 post: speak the exact comment you'd leave, in your natural voice. Then say one sentence about what you're NOT going to do."
|
|
63
|
+
4. "Give 2-4 'do this, not that' heuristics you actually use when commenting. Then 2-4 phrases or patterns you naturally reach for."
|
|
64
|
+
|
|
65
|
+
**If configs already have a style guide:** Add option to "Reply `USE EXISTING` to skip and keep your current voice profile."
|
|
66
|
+
|
|
67
|
+
## Phase 3: Synthesis
|
|
68
|
+
|
|
69
|
+
From the user's responses, extract:
|
|
70
|
+
|
|
71
|
+
1. **Direct quotes** — Preserve the user's exact phrasing as blockquotes. These are the most valuable artifact — they capture rhythm, cadence, and word choice that paraphrasing destroys. Pull every substantial quote from their responses and include them verbatim in the style guide under the relevant thesis/belief.
|
|
72
|
+
2. **Voice patterns** — Recurring phrases, sentence structures, tone markers. Identify signature phrases the user naturally reaches for (e.g., "I think people haven't put together that...") and list them as templates.
|
|
73
|
+
3. **Rhythm & cadence** — How they build arguments (e.g., bold claim → unpack mechanism), how they use connectors (e.g., "right?", "i.e."), how they acknowledge nuance.
|
|
74
|
+
4. **Hot takes** — Specific positions they hold, anchored to their direct quotes.
|
|
75
|
+
5. **Dos and Don'ts** — Explicit rules from their heuristics.
|
|
76
|
+
6. **Example comments** — Real examples from their responses.
|
|
77
|
+
|
|
78
|
+
**CRITICAL: Quote Capture Protocol**
|
|
79
|
+
|
|
80
|
+
When writing the style guide, structure each core thesis/belief as:
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
## [Thesis Name]
|
|
84
|
+
|
|
85
|
+
> "[User's exact words from the interview]"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
This ensures the style guide preserves the user's authentic voice — not a paraphrased summary. Future sessions use these quotes as the ground truth for tone matching.
|
|
89
|
+
|
|
90
|
+
Write results to `.sellable/configs/`:
|
|
91
|
+
|
|
92
|
+
- Core voice & tone → `writing/styleguide-core.md` (use `core/ENGAGE_STYLE_GUIDE.template.md` as format reference)
|
|
93
|
+
- Comment-specific rules → `writing/comments.md`
|
|
94
|
+
- Also persist via `set_engage_style_guide({ markdown })` so MCP memory stays in sync
|
|
95
|
+
|
|
96
|
+
## Phase 4: Validation
|
|
97
|
+
|
|
98
|
+
1. Present the synthesized style guide as bullet points
|
|
99
|
+
2. Ask for corrections: "Anything feel off? Reply with edits or 'looks good'."
|
|
100
|
+
3. Apply corrections and rewrite the config files
|
|
101
|
+
|
|
102
|
+
## Phase 5: ICP Profile
|
|
103
|
+
|
|
104
|
+
If `.sellable/configs/audience/icp.md` is still a template or thin:
|
|
105
|
+
|
|
106
|
+
1. Ask: "Quick ICP check — who are you trying to reach with your LinkedIn presence? (role, company stage, pain points)"
|
|
107
|
+
2. Write to `.sellable/configs/audience/icp.md` (use `core/ICP.template.md` as format reference)
|
|
108
|
+
|
|
109
|
+
## Phase 6: People to Track
|
|
110
|
+
|
|
111
|
+
1. Ask: "Any specific people whose posts you always want to see? (thought leaders, prospects, peers)"
|
|
112
|
+
2. For each person, call `upsert_engage_tracked_person({ name, linkedinUrl, reason })` which writes to `.sellable/configs/discovery/influencers.md`
|
|
113
|
+
|
|
114
|
+
</process>
|
|
115
|
+
|
|
116
|
+
<templates>
|
|
117
|
+
Format references in `core/` (templates, not outputs — outputs go to `.sellable/configs/`):
|
|
118
|
+
- `core/ENGAGE_STYLE_GUIDE.template.md` — Style guide structure
|
|
119
|
+
- `core/ICP.template.md` — ICP profile structure
|
|
120
|
+
- `core/VOICE_PROFILE.template.md` — Extended voice profile (optional deep-dive)
|
|
121
|
+
</templates>
|
|
122
|
+
|
|
123
|
+
<critical_rules>
|
|
124
|
+
|
|
125
|
+
1. Never fabricate quotes or examples — only use what the user actually said
|
|
126
|
+
2. **Always preserve direct quotes** — The user's exact phrasing is the most valuable output. Include their words as blockquotes (`> "..."`) in the style guide, not paraphrased summaries. Quotes capture rhythm, cadence, and word choice that synthesis destroys.
|
|
127
|
+
3. Keep the interview under 5 minutes of user effort (one big capture, not 10 back-and-forths)
|
|
128
|
+
4. Always write results to `.sellable/configs/` — that's the single source of truth
|
|
129
|
+
5. Also persist style guide via MCP tool so it stays accessible cross-session
|
|
130
|
+
6. Anchor every question to a real post — no hypotheticals
|
|
131
|
+
7. **Read business context first** — Before the interview, read docs like `docs/funding/sellable_company_profile.md`, `docs/business/POSITIONING.md`, and `docs/funding/linkedin_comment_ai_context.md` to pre-fill guesses. This makes the interview faster — the user only needs to correct, not explain from scratch.
|
|
132
|
+
</critical_rules>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Commenting Style Guide: {name}
|
|
2
|
+
|
|
3
|
+
## Voice & Tone
|
|
4
|
+
|
|
5
|
+
- **Philosophy**: {value-add / conversational / thought-leadership / mix}
|
|
6
|
+
- **Tone**: {professional / casual / witty / direct}
|
|
7
|
+
- **Length target**: {2-3 sentences / 3-5 sentences}
|
|
8
|
+
|
|
9
|
+
## Topics I Have Strong Takes On
|
|
10
|
+
|
|
11
|
+
<!-- Topics where the user can add genuine insight. Extracted from interview. -->
|
|
12
|
+
|
|
13
|
+
1. {topic_1}
|
|
14
|
+
2. {topic_2}
|
|
15
|
+
3. {topic_3}
|
|
16
|
+
|
|
17
|
+
## Hot Takes & Insights
|
|
18
|
+
|
|
19
|
+
<!-- Counterintuitive observations, frameworks, or data points they bring up often. -->
|
|
20
|
+
|
|
21
|
+
- {hot_take_1}
|
|
22
|
+
- {hot_take_2}
|
|
23
|
+
- {hot_take_3}
|
|
24
|
+
|
|
25
|
+
## Example Comments (From Interview)
|
|
26
|
+
|
|
27
|
+
<!-- Real comments from the interview, in the user's natural voice. -->
|
|
28
|
+
|
|
29
|
+
### Example 1
|
|
30
|
+
|
|
31
|
+
> {verbatim_comment_from_interview}
|
|
32
|
+
|
|
33
|
+
### Example 2
|
|
34
|
+
|
|
35
|
+
> {verbatim_comment_from_interview}
|
|
36
|
+
|
|
37
|
+
## Dos
|
|
38
|
+
|
|
39
|
+
- {do_1}
|
|
40
|
+
- {do_2}
|
|
41
|
+
- {do_3}
|
|
42
|
+
|
|
43
|
+
## Don'ts
|
|
44
|
+
|
|
45
|
+
- {dont_1}
|
|
46
|
+
- {dont_2}
|
|
47
|
+
- {dont_3}
|
|
48
|
+
|
|
49
|
+
## Signature Phrases / Patterns
|
|
50
|
+
|
|
51
|
+
<!-- Recurring structures or phrases the user naturally uses. -->
|
|
52
|
+
|
|
53
|
+
- {phrase_1}
|
|
54
|
+
- {phrase_2}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Ideal Customer Profile: {company_name}
|
|
2
|
+
|
|
3
|
+
## Target Persona
|
|
4
|
+
|
|
5
|
+
- **Title keywords**: {comma_separated_titles}
|
|
6
|
+
- **Company stage**: {stage_range}
|
|
7
|
+
- **Company size**: {employee_range}
|
|
8
|
+
- **Industry**: {industries}
|
|
9
|
+
- **Geography**: {geographies}
|
|
10
|
+
|
|
11
|
+
## Pain Points
|
|
12
|
+
|
|
13
|
+
<!-- What keeps this persona up at night? Extracted from interview. -->
|
|
14
|
+
|
|
15
|
+
1. {pain_point_1}
|
|
16
|
+
2. {pain_point_2}
|
|
17
|
+
3. {pain_point_3}
|
|
18
|
+
|
|
19
|
+
## Buying Signals
|
|
20
|
+
|
|
21
|
+
<!-- Observable behaviors that indicate they might be in-market. -->
|
|
22
|
+
|
|
23
|
+
- {signal_1}
|
|
24
|
+
- {signal_2}
|
|
25
|
+
- {signal_3}
|
|
26
|
+
|
|
27
|
+
## Value Proposition
|
|
28
|
+
|
|
29
|
+
<!-- How the user's product/service solves these pain points. -->
|
|
30
|
+
|
|
31
|
+
{one_paragraph_value_prop}
|
|
32
|
+
|
|
33
|
+
## Messaging Angles
|
|
34
|
+
|
|
35
|
+
<!-- Tested angles that resonate with this persona. -->
|
|
36
|
+
|
|
37
|
+
1. **{angle_name_1}**: {brief_description}
|
|
38
|
+
2. **{angle_name_2}**: {brief_description}
|
|
39
|
+
3. **{angle_name_3}**: {brief_description}
|
|
40
|
+
|
|
41
|
+
## Disqualifiers
|
|
42
|
+
|
|
43
|
+
<!-- Who to exclude from outreach. -->
|
|
44
|
+
|
|
45
|
+
- {disqualifier_1}
|
|
46
|
+
- {disqualifier_2}
|
|
47
|
+
- {disqualifier_3}
|
|
48
|
+
|
|
49
|
+
## Competitive Alternatives
|
|
50
|
+
|
|
51
|
+
<!-- What the prospect is doing instead of using the user's solution. -->
|
|
52
|
+
|
|
53
|
+
- {alternative_1}
|
|
54
|
+
- {alternative_2}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# VOICE PROFILE: {name}
|
|
2
|
+
|
|
3
|
+
## Core Identity (2-3 sentences)
|
|
4
|
+
|
|
5
|
+
{who_they_are_what_they_do_what_makes_them_distinctive}
|
|
6
|
+
|
|
7
|
+
## Professional Context
|
|
8
|
+
|
|
9
|
+
- **Role**: {current_role}
|
|
10
|
+
- **Company**: {company_name}
|
|
11
|
+
- **Industry**: {industry}
|
|
12
|
+
- **Experience**: {years_experience} years in {domain}
|
|
13
|
+
- **LinkedIn presence goal**: {thought_leadership / hiring / sales / community}
|
|
14
|
+
|
|
15
|
+
## Communication Style
|
|
16
|
+
|
|
17
|
+
### Tone Spectrum
|
|
18
|
+
|
|
19
|
+
| Dimension | Position | Notes |
|
|
20
|
+
| ----------------------- | -------- | ------ |
|
|
21
|
+
| Formal ←→ Casual | {1-10} | {note} |
|
|
22
|
+
| Serious ←→ Playful | {1-10} | {note} |
|
|
23
|
+
| Concise ←→ Detailed | {1-10} | {note} |
|
|
24
|
+
| Reserved ←→ Opinionated | {1-10} | {note} |
|
|
25
|
+
| Teaching ←→ Conversing | {1-10} | {note} |
|
|
26
|
+
|
|
27
|
+
### Language Patterns
|
|
28
|
+
|
|
29
|
+
- **Sentence length**: {short / medium / varied}
|
|
30
|
+
- **Paragraph style**: {single-sentence / short-blocks / flowing}
|
|
31
|
+
- **Punctuation habits**: {em-dashes / ellipses / exclamation marks / minimal}
|
|
32
|
+
- **Vocabulary level**: {accessible / technical / mix}
|
|
33
|
+
|
|
34
|
+
### Signature Moves
|
|
35
|
+
|
|
36
|
+
<!-- Recurring patterns in how they structure thoughts -->
|
|
37
|
+
|
|
38
|
+
1. {pattern_1} — e.g., "Opens with a provocative question, then answers it"
|
|
39
|
+
2. {pattern_2} — e.g., "Uses numbered lists to break down complex ideas"
|
|
40
|
+
3. {pattern_3} — e.g., "Ends with a question to the audience"
|
|
41
|
+
|
|
42
|
+
## Subject Matter Expertise
|
|
43
|
+
|
|
44
|
+
### Topics They Own
|
|
45
|
+
|
|
46
|
+
<!-- Areas where they can speak with genuine authority -->
|
|
47
|
+
|
|
48
|
+
| Topic | Depth | Unique Angle |
|
|
49
|
+
| --------- | ------------------------------- | ------------------------------ |
|
|
50
|
+
| {topic_1} | {expert / practiced / informed} | {what_makes_their_take_unique} |
|
|
51
|
+
| {topic_2} | {expert / practiced / informed} | {what_makes_their_take_unique} |
|
|
52
|
+
| {topic_3} | {expert / practiced / informed} | {what_makes_their_take_unique} |
|
|
53
|
+
|
|
54
|
+
### Hot Takes
|
|
55
|
+
|
|
56
|
+
<!-- Positions that are somewhat contrarian or distinctive -->
|
|
57
|
+
|
|
58
|
+
1. {hot_take_1}
|
|
59
|
+
2. {hot_take_2}
|
|
60
|
+
3. {hot_take_3}
|
|
61
|
+
|
|
62
|
+
### Topics to Avoid
|
|
63
|
+
|
|
64
|
+
<!-- Areas where they don't have genuine insight -->
|
|
65
|
+
|
|
66
|
+
- {avoid_1}
|
|
67
|
+
- {avoid_2}
|
|
68
|
+
|
|
69
|
+
## Writing Rules
|
|
70
|
+
|
|
71
|
+
### Hard Rules (Never Break)
|
|
72
|
+
|
|
73
|
+
1. {rule_1}
|
|
74
|
+
2. {rule_2}
|
|
75
|
+
3. {rule_3}
|
|
76
|
+
|
|
77
|
+
### Soft Preferences
|
|
78
|
+
|
|
79
|
+
- {preference_1}
|
|
80
|
+
- {preference_2}
|
|
81
|
+
- {preference_3}
|
|
82
|
+
|
|
83
|
+
## Example Content
|
|
84
|
+
|
|
85
|
+
### Best LinkedIn Comment (Verbatim)
|
|
86
|
+
|
|
87
|
+
> {verbatim_from_interview_or_real_comment}
|
|
88
|
+
|
|
89
|
+
**Why it works**: {analysis}
|
|
90
|
+
|
|
91
|
+
### Best LinkedIn Post Opening (Verbatim)
|
|
92
|
+
|
|
93
|
+
> {verbatim_opening}
|
|
94
|
+
|
|
95
|
+
**Why it works**: {analysis}
|
|
96
|
+
|
|
97
|
+
## Interview Artifacts
|
|
98
|
+
|
|
99
|
+
- **Interview date**: {date}
|
|
100
|
+
- **Posts used as anchors**: {list_of_post_urls}
|
|
101
|
+
- **Raw transcript summary**: {brief_summary_of_what_was_discussed}
|