Researches a meeting attendee, builds a personalized 12-step sales script, and generates a value-driven pitch deck as PDF. Use this skill when the user says "prep for my meeting", "research [name]", "meeting prep", "get ready for my call with [name]", or provides a name after the morning routine asks about meetings. Triggered as optional last step in /morning after the user confirms a meeting.
One job: walk into every sales call fully prepared. That means deep LinkedIn enrichment + 30-day web research on the person, a personalized 12-step sales script, and a value-driven pitch deck tailored to that specific person — all stored in Notion under "Meeting Prep Report & Sales Script".
Automation level: CHECKPOINT — waits for the user to provide a name (and LinkedIn URL if available), then pauses once before generating the pitch deck to confirm offer fit if not 100% certain.
Routine position: Optional last step in /morning — triggered only when the user confirms a meeting and provides a name.
If no LinkedIn URL is provided: Search for the profile via Playwright + Relay as fallback. A direct LinkedIn URL produces significantly better output — prompt the user to collect it from booking form submissions.
context/offers.md — know all 4 offers, their ideal clients, pricing, and positioning angles.context/icp.md — know the ICP profile so you can spot fit or misfit quickly.references/sales-script-template.md — the 12-step framework you'll personalize.Try Playwright first:
mcp__playwright__browser_navigatehttps://www.linkedin.com/search/results/people/?keywords=[FirstName LastName]mcp__playwright__browser_snapshotIf Playwright fails: use Relay as fallback:
mcp__claude_ai_Relay_APP_Claude_Code__search_linkedin_for_profileIf no profile found: note "LinkedIn profile not found — enrichment limited" and continue with name-only context.
Get their full LinkedIn profile:
mcp__brightdata__web_data_linkedin_person_profileGet their company profile:
mcp__brightdata__web_data_linkedin_company_profileGet their recent LinkedIn posts:
mcp__brightdata__web_data_linkedin_postsWebSearch"[Full Name]" podcast OR interview OR keynote 2026"[Company Name]" funding OR acquisition OR launch OR news 2026"[Full Name]" site:linkedin.com"[Company Name]" [industry keyword] 2026Read context/offers.md and identify which 1–2 offers fit this person best based on their role, company size, industry, pain signals from posts, and any recent news.
Write the Research Brief (concise — short bullets, no paragraphs):
Run a silent profile analysis before writing. Think through:
Generate the Personalized Sales Script following the 12-step framework from references/sales-script-template.md:
Identify the best-fit offer from Part 5. If not 100% certain:
Once offer is confirmed, run conversion-build-pitch-deck with these inputs:
context/offers.md)design-kit/ guidelines — primary color #463187, accent #FF6719inbox/outputs/pdf/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].pdfPitch Deck files: After the PDF is generated, note both outputs:
inbox/outputs/pdf/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].pdf (upload to Notion → Pitch Deck column manually)file://[YOUR_WORKSPACE_PATH]/inbox/outputs/html/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].html — push this into the Notion page body as a clickable link (Notion desktop app opens file:// links in browser)Save the full output to:
inbox/outputs/md/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].md
Contents:
Push to the Meeting Prep Report & Sales Script database (data source: collection://3327fe00-204d-80dc-91cf-000b7f40a2e8):
mcp__claude_ai_Notion__notion-create-pages{"type": "data_source_id", "data_source_id": "3327fe00-204d-80dc-91cf-000b7f40a2e8"}Day & Date: YYYY-MM-DD — [First Last] call (date TBD if not scheduled)date:Date:start: today's date in YYYY-MM-DD formatResearch Report: the concise research brief text (bullets only — who they are, company, pain signal, offer fit, call type flag)Pitch Deck: file://[YOUR_WORKSPACE_PATH]/inbox/outputs/html/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].htmlfile://[YOUR_WORKSPACE_PATH]/inbox/outputs/html/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].htmlinbox/outputs/pdf/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].pdf"Create a child page inside the Notion page from step 17:
mcp__claude_ai_Notion__notion-create-pages{"type": "page_id", "page_id": "[ID returned from step 17]"}Sales Script — [First Last]Print one-line summary: "Meeting prep ready for [Name]. Research brief + sales script + pitch deck saved to inbox and Notion."
# Meeting Prep — [First Last] — YYYY-MM-DD
> ⚠️ [Call type flag — e.g., "Employee, not a founder — confirm budget authority early"]
---
## Research Brief
- **Who they are:** [Role at Company — 1–2 lines]
- **Company:** [What it does, size, industry]
- **Right now:** [What they're focused on — skip if no data]
- **Recent signal:** [Podcast/funding/news from last 30 days — skip if none]
- **Pain signal:** [Visible problem or gap]
- **Best offer fit:** [Offer name] — [1-sentence why]
---
## Personalized Sales Script
### Step 1: Preparation
...
### Step 12: Pricing
...
---
## Pitch Deck
PDF: `inbox/outputs/pdf/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].pdf` ← upload to Notion Pitch Deck column
HTML (interactive): [Open deck](file://[YOUR_WORKSPACE_PATH]/inbox/outputs/html/YYYY-MM-DD-operations-meeting-prep-[firstname-lastname].html)
inbox/outputs/ only. Tell user: "Notion push failed — output saved locally."