@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.
Files changed (200) hide show
  1. package/.claude-plugin/plugin.json +12 -0
  2. package/.mcp.json +9 -0
  3. package/README.md +355 -0
  4. package/dist/api.d.ts +21 -0
  5. package/dist/api.js +73 -0
  6. package/dist/auth.d.ts +60 -0
  7. package/dist/auth.js +246 -0
  8. package/dist/engage-memory.d.ts +63 -0
  9. package/dist/engage-memory.js +354 -0
  10. package/dist/index-dev.d.ts +2 -0
  11. package/dist/index-dev.js +17 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.js +8 -0
  14. package/dist/server.d.ts +1 -0
  15. package/dist/server.js +499 -0
  16. package/dist/skills.d.ts +11 -0
  17. package/dist/skills.js +97 -0
  18. package/dist/tools/auth.d.ts +30 -0
  19. package/dist/tools/auth.js +124 -0
  20. package/dist/tools/blueprint-commit.d.ts +174 -0
  21. package/dist/tools/blueprint-commit.js +286 -0
  22. package/dist/tools/bootstrap.d.ts +64 -0
  23. package/dist/tools/bootstrap.js +246 -0
  24. package/dist/tools/campaigns.d.ts +589 -0
  25. package/dist/tools/campaigns.js +892 -0
  26. package/dist/tools/cells.d.ts +58 -0
  27. package/dist/tools/cells.js +48 -0
  28. package/dist/tools/context.d.ts +88 -0
  29. package/dist/tools/context.js +271 -0
  30. package/dist/tools/csv-domains.d.ts +73 -0
  31. package/dist/tools/csv-domains.js +464 -0
  32. package/dist/tools/csv-linkedin.d.ts +102 -0
  33. package/dist/tools/csv-linkedin.js +712 -0
  34. package/dist/tools/direct-campaigns.d.ts +240 -0
  35. package/dist/tools/direct-campaigns.js +250 -0
  36. package/dist/tools/engage-bootstrap.d.ts +94 -0
  37. package/dist/tools/engage-bootstrap.js +205 -0
  38. package/dist/tools/engage-discovery.d.ts +78 -0
  39. package/dist/tools/engage-discovery.js +150 -0
  40. package/dist/tools/engage-memory.d.ts +181 -0
  41. package/dist/tools/engage-memory.js +143 -0
  42. package/dist/tools/engage-state.d.ts +72 -0
  43. package/dist/tools/engage-state.js +62 -0
  44. package/dist/tools/enrichment.d.ts +167 -0
  45. package/dist/tools/enrichment.js +174 -0
  46. package/dist/tools/flow-preflight.d.ts +68 -0
  47. package/dist/tools/flow-preflight.js +138 -0
  48. package/dist/tools/framework.d.ts +44 -0
  49. package/dist/tools/framework.js +153 -0
  50. package/dist/tools/interaction-mode.d.ts +27 -0
  51. package/dist/tools/interaction-mode.js +102 -0
  52. package/dist/tools/leads.d.ts +2417 -0
  53. package/dist/tools/leads.js +2307 -0
  54. package/dist/tools/linkedin.d.ts +210 -0
  55. package/dist/tools/linkedin.js +229 -0
  56. package/dist/tools/navigation.d.ts +91 -0
  57. package/dist/tools/navigation.js +381 -0
  58. package/dist/tools/one-off.d.ts +229 -0
  59. package/dist/tools/one-off.js +273 -0
  60. package/dist/tools/processing.d.ts +70 -0
  61. package/dist/tools/processing.js +56 -0
  62. package/dist/tools/prompts.d.ts +211 -0
  63. package/dist/tools/prompts.js +210 -0
  64. package/dist/tools/provider-preflight.d.ts +21 -0
  65. package/dist/tools/provider-preflight.js +59 -0
  66. package/dist/tools/readiness.d.ts +261 -0
  67. package/dist/tools/readiness.js +510 -0
  68. package/dist/tools/rows.d.ts +126 -0
  69. package/dist/tools/rows.js +105 -0
  70. package/dist/tools/rubrics.d.ts +497 -0
  71. package/dist/tools/rubrics.js +681 -0
  72. package/dist/tools/senders.d.ts +44 -0
  73. package/dist/tools/senders.js +69 -0
  74. package/dist/tools/sequencer.d.ts +127 -0
  75. package/dist/tools/sequencer.js +194 -0
  76. package/dist/tools/tables.d.ts +35 -0
  77. package/dist/tools/tables.js +36 -0
  78. package/dist/tools/verify-row.d.ts +36 -0
  79. package/dist/tools/verify-row.js +38 -0
  80. package/dist/tools/workspaces.d.ts +140 -0
  81. package/dist/tools/workspaces.js +139 -0
  82. package/dist/utils/workspace-root.d.ts +1 -0
  83. package/dist/utils/workspace-root.js +39 -0
  84. package/package.json +46 -0
  85. package/skills/building-gtm-tables/SKILL.md +216 -0
  86. package/skills/building-gtm-tables/core/auto-execute.yaml +19 -0
  87. package/skills/building-gtm-tables/core/blueprint-schema.json +72 -0
  88. package/skills/building-gtm-tables/references/brief-to-blueprint.md +334 -0
  89. package/skills/building-gtm-tables/references/column-type-catalog.md +318 -0
  90. package/skills/building-gtm-tables/references/common-blueprints.fixtures.ts +199 -0
  91. package/skills/building-gtm-tables/references/common-blueprints.md +44 -0
  92. package/skills/building-gtm-tables/references/failure-taxonomy.md +197 -0
  93. package/skills/building-gtm-tables/references/uat-seed-prompts.md +37 -0
  94. package/skills/building-gtm-tables/references/verify-loop.md +74 -0
  95. package/skills/campaign-messages/SKILL.md +173 -0
  96. package/skills/campaign-messages/flow.v1.json +75 -0
  97. package/skills/craft-message/SKILL.md +401 -0
  98. package/skills/create-campaign/ARCHITECTURE.md +232 -0
  99. package/skills/create-campaign/DISCUSS.md +296 -0
  100. package/skills/create-campaign/FLOW_ASCII.md +240 -0
  101. package/skills/create-campaign/HOST-PARITY-CHECKLIST.md +49 -0
  102. package/skills/create-campaign/README.md +142 -0
  103. package/skills/create-campaign/SKILL.md +286 -0
  104. package/skills/create-campaign/context/README.md +67 -0
  105. package/skills/create-campaign/context/_TEMPLATE.md +12 -0
  106. package/skills/create-campaign/context/context.md +35 -0
  107. package/skills/create-campaign/context/learnings.md +16 -0
  108. package/skills/create-campaign/context/registry.json +19 -0
  109. package/skills/create-campaign/core/flow.v1.json +217 -0
  110. package/skills/create-campaign/core/policy.md +191 -0
  111. package/skills/create-campaign/core/providers/apollo.json +35 -0
  112. package/skills/create-campaign/core/providers/prospeo.json +34 -0
  113. package/skills/create-campaign/core/providers/registry.json +31 -0
  114. package/skills/create-campaign/core/providers/sales-nav.json +37 -0
  115. package/skills/create-campaign/core/providers/signal-discovery.json +42 -0
  116. package/skills/create-campaign/references/brief-template.md +64 -0
  117. package/skills/create-campaign/references/campaign-quality.md +84 -0
  118. package/skills/create-campaign/references/copy-calibration-examples.md +120 -0
  119. package/skills/create-campaign/references/offer-patterns.md +108 -0
  120. package/skills/create-campaign/references/provider-selection-strategy.md +212 -0
  121. package/skills/create-campaign/references/question-examples.md +167 -0
  122. package/skills/create-campaign/references/token-fill-examples.md +81 -0
  123. package/skills/create-campaign-brief/ARCHITECTURE.md +72 -0
  124. package/skills/create-campaign-brief/DISCUSS.md +64 -0
  125. package/skills/create-campaign-brief/README.md +176 -0
  126. package/skills/create-campaign-brief/SKILL.md +537 -0
  127. package/skills/create-campaign-brief/references/brief-synthesis-rules.md +100 -0
  128. package/skills/create-campaign-brief/references/brief-template.md +220 -0
  129. package/skills/create-campaign-brief/references/campaign-idea-options.md +30 -0
  130. package/skills/create-campaign-brief/references/copy-appendix-template.md +62 -0
  131. package/skills/create-campaign-brief/references/draft-lifecycle.md +23 -0
  132. package/skills/create-campaign-brief/references/examples/MANIFEST.json +89 -0
  133. package/skills/create-campaign-brief/references/examples/briefs/clover.md +223 -0
  134. package/skills/create-campaign-brief/references/examples/briefs/galley.md +222 -0
  135. package/skills/create-campaign-brief/references/examples/briefs/gelee.md +220 -0
  136. package/skills/create-campaign-brief/references/examples/briefs/hey-digital.md +234 -0
  137. package/skills/create-campaign-brief/references/examples/briefs/persona.md +231 -0
  138. package/skills/create-campaign-brief/references/examples/briefs/revvix.md +220 -0
  139. package/skills/create-campaign-brief/references/examples/briefs/sellable-dev.md +220 -0
  140. package/skills/create-campaign-brief/references/examples/briefs/superposition.md +233 -0
  141. package/skills/create-campaign-brief/references/examples/briefs/superpower.md +219 -0
  142. package/skills/create-campaign-brief/references/examples/briefs/westpark-villas.md +220 -0
  143. package/skills/create-campaign-brief/references/icp-lock-question-bank.md +43 -0
  144. package/skills/create-campaign-brief/references/messaging-inputs.md +58 -0
  145. package/skills/create-campaign-brief/references/output-acceptance-rubric.md +62 -0
  146. package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +248 -0
  147. package/skills/create-campaign-brief/references/phase75-canonical-brief-template.md +319 -0
  148. package/skills/create-campaign-brief/references/phase75-good-brief-and-messaging-examples.md +445 -0
  149. package/skills/create-campaign-brief/references/quick-research-protocol.md +39 -0
  150. package/skills/create-campaign-brief/references/reference-sheet-protocol.md +60 -0
  151. package/skills/create-campaign-brief/references/zero-shot-iteration-rules.md +66 -0
  152. package/skills/create-campaign-v2/SKILL.md +1619 -0
  153. package/skills/create-campaign-v2/core/auto-execute.README.md +219 -0
  154. package/skills/create-campaign-v2/core/auto-execute.yaml +121 -0
  155. package/skills/create-campaign-v2/core/flow.v2.json +1643 -0
  156. package/skills/create-campaign-v2/core/policy.md +82 -0
  157. package/skills/create-campaign-v2/references/ai-tells.md +253 -0
  158. package/skills/create-campaign-v2/references/approval-gate-framing.md +346 -0
  159. package/skills/create-campaign-v2/references/draft-lifecycle.md +110 -0
  160. package/skills/create-campaign-v2/references/escalation-ladder.md +119 -0
  161. package/skills/create-campaign-v2/references/filter-leads.md +495 -0
  162. package/skills/create-campaign-v2/references/final-handoff-contract.md +176 -0
  163. package/skills/create-campaign-v2/references/gold-standard-message-examples.md +394 -0
  164. package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +314 -0
  165. package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +212 -0
  166. package/skills/create-campaign-v2/references/lead-validation-preview.md +172 -0
  167. package/skills/create-campaign-v2/references/parallel-critique-protocol.md +368 -0
  168. package/skills/create-campaign-v2/references/sample-validation-loop.md +289 -0
  169. package/skills/create-campaign-v2/references/step-13-import-leads.md +151 -0
  170. package/skills/create-campaign-v2/references/step-15-re-cascade.md +90 -0
  171. package/skills/create-campaign-v2/references/thomas-revision-filters.md +521 -0
  172. package/skills/create-campaign-v2/references/thomas-variant-selection.md +202 -0
  173. package/skills/create-campaign-v2/references/tier-routing-matrix.md +66 -0
  174. package/skills/create-campaign-v2/references/validation-criteria.md +367 -0
  175. package/skills/create-campaign-v2/references/watch-link-handoff.md +106 -0
  176. package/skills/create-campaign-v2-validation/SKILL.md +296 -0
  177. package/skills/create-post/SKILL.md +1308 -0
  178. package/skills/create-rubric/SKILL.md +251 -0
  179. package/skills/engage/SKILL.md +549 -0
  180. package/skills/engage/core/README.md +23 -0
  181. package/skills/engage/core/proven-searches.json +11 -0
  182. package/skills/engage/core/style-guide.template.md +47 -0
  183. package/skills/engage/core/tracked-people.json +10 -0
  184. package/skills/enrich-prospects/SKILL.md +97 -0
  185. package/skills/find-leads/SKILL.md +467 -0
  186. package/skills/generate-messages/SKILL.md +2361 -0
  187. package/skills/interview/SKILL.md +132 -0
  188. package/skills/interview/core/ENGAGE_STYLE_GUIDE.template.md +54 -0
  189. package/skills/interview/core/ICP.template.md +54 -0
  190. package/skills/interview/core/VOICE_PROFILE.template.md +101 -0
  191. package/skills/providers/apollo.md +520 -0
  192. package/skills/providers/prospeo.md +398 -0
  193. package/skills/providers/sales-nav.md +372 -0
  194. package/skills/providers/signal-discovery.md +495 -0
  195. package/skills/research/SKILL.md +258 -0
  196. package/skills/research/config.json +9 -0
  197. package/skills/research/override.md +13 -0
  198. package/skills/research-prospect/SKILL.md +99 -0
  199. package/skills/research-sender/SKILL.md +158 -0
  200. 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}