Evaluate and respond to inbound PostHog sales leads from Salesforce. Use this skill when any PostHog TAE needs to triage an inbound lead — deciding whether to qualify for a call, route to self-serve, or disqualify — and then draft an appropriate response email. Checks Vitally for existing account context before qualifying. Triggers on "respond to this lead", "triage this inbound", "write a response to this lead", "disposition this lead", "evaluate this Salesforce lead", or any request involving an inbound sales inquiry that needs qualification and a reply. Also trigger when a TAE pastes or describes lead details and asks what to do with them.
npx skills add https://github.com/PostHog/skills --skill posthog-inbound-leads
Evaluate inbound leads from Salesforce and either draft a response email or recommend a disposition. This skill is for any PostHog TAE handling inbound sales inquiries.
Before qualifying or drafting anything, check Vitally to see if this lead (or their company) is already a PostHog user. This changes the disposition and email framing significantly — an existing customer asking for help is different from a cold inbound.
Run two Vitally lookups using the lead's email address:
vitally:search_users with email set to the lead's email address. This tells you if this specific person already has a PostHog account.vitally:search_users with emailSubdomain set to the domain portion of the lead's email (e.g., acme.com from [email protected]). This tells you if anyone at their company is already using PostHog.If either search returns results, pull up the associated account with vitally:get_account_full using the accountId from the user record(s). Use detailLevel: "summary" for a quick overview.
Lead's email is an existing user:
Different person at the same company is already a user:
No results in Vitally:
When presenting the Vitally findings, include:
This step is mandatory for every lead. The lead's form submission alone is not enough information to qualify or disqualify. A 10K MAU lead from a $6B startup and a 10K MAU lead from a 5-person agency require completely different dispositions.
Run 1-3 web searches to understand the company. Start with the company name and domain:
web_search for [Company Name] [domain] — Get the basics: what they do, who they areweb_search for [Company Name] funding employees — Get firmographics: funding stage, headcount, growth signals[Company Name] 2026 or [Company Name] newsFrom the research, identify and record:
| Signal | Why It Matters | Example |
|---|---|---|
| What they build | Determines use case mapping and whether they're ICP | "AI tools for manufacturing" → AI/LLM Obs is relevant |
| Funding stage and amount | Proxy for budget and growth trajectory | Series B, $50M → likely has budget for tooling |
| Employee count | Proxy for spend potential and team complexity | 200 employees → multiple teams, multi-project potential |
| Engineering team size or ratio | PostHog's buyer is engineers; more engineers = better fit | "80% of team is engineering" → strong ICP signal |
| Growth trajectory | Determines whether current MAU is the ceiling or the floor | Founded 6 months ago, hiring aggressively → MAU will grow fast |
| Recent news | Acquisitions, launches, pivots that change context | Just acquired an AI startup → expanding product surface |
| Business model | SaaS, marketplace, dev tools, agency, etc. | B2B SaaS → classic PostHog ICP |
Based on the research, classify the company into one of four growth trajectories:
The growth trajectory classification directly affects qualification. See Step 3 for how it modifies the $20K threshold.
While researching, watch for signals that the lead's company has (or is building) multiple products. This is a spend multiplier because each product typically becomes a separate PostHog project with its own event volume.
Signals in the lead's message:
Signals from company research:
When multi-product signals are present, note the estimated product count (or range) and factor it into the MAU multiplier. A company with 5 products at 10K MAU each is a 50K MAU opportunity, not a 10K one.
If company research reveals the company is AI-native (building AI/ML products as their core business), flag AI/LLM Observability as a probable secondary use case even if the lead's message doesn't mention AI, LLMs, model costs, or prompts.
AI-native signals:
When detected, include AI/LLM Observability in the use case assessment and mention it in the email as a relevant capability, even if the lead didn't ask about it. Frame it as: "since you're building AI products, you might also find our LLM analytics useful for tracking model costs and performance."
Present the company research as a brief profile including:
This goes right after the Vitally findings and before the use case assessment.
Every lead maps to one or more of PostHog's six use cases. Identifying the use case determines how to frame the response, what products to highlight, and what resources to link. Evaluate the person/persona, company (informed by your Step 1 research), and message to determine the match.
| Use Case | Job to Be Done | Core Buyer Persona | Key Signals in the Lead |
|---|---|---|---|
| Product Intelligence | "Help me understand what users do, why they do it, and what to build next." | PMs, designers, product engineers, founders | Mentions analytics, funnels, retention, user behavior, "why users drop off", feature adoption, NPS, surveys, session replay for UX research |
| Release Engineering | "Help me ship faster without breaking things." | Engineering managers, platform teams, developers | Mentions feature flags, rollouts, A/B testing releases, kill switches, progressive delivery, replacing LaunchDarkly |
| Observability | "Help me know when things break, understand why, and fix them fast." | SREs, platform engineers, DevOps | Mentions error tracking, bug reproduction, replacing Sentry/Datadog, logging, incident response, stack traces |
| Growth & Marketing | "Help me understand what drives acquisition, conversion, and revenue." | Growth engineers, marketing leads, CRO, GTM engineers | Mentions attribution, ROAS, campaign performance, replacing GA4/Segment, conversion optimization, onboarding automation, marketing stack consolidation |
| AI/LLM Observability | "Help me understand how my AI features perform, what they cost, and how users interact with them." | AI/ML engineers, AI PMs, AI founders | Mentions LLM, AI features, model costs, prompt testing, AI quality, replacing Langfuse/Helicone, token usage. Also inferred from company research — if the company is AI-native, this use case is relevant even if the lead didn't mention it. |
| Data Infrastructure | "Help me unify product data with business data and get it where it needs to go." | Data engineers, analytics engineers, product ops | Mentions data warehouse, Snowflake/BigQuery, data pipelines, batch exports, combining PostHog data with Stripe/CRM, replacing Segment/Fivetran |
The person's role is one of the strongest signals:
The company type (from your Step 1 research) helps narrow it:
The specific ask confirms or overrides the persona/company signal:
If the use case is ambiguous even after company research, include a targeted clarifying question in the email to narrow it down. Frame the question around their problem, not PostHog products: "What's the main problem you're trying to solve?" is better than "Which PostHog product are you interested in?"
Many leads map to more than one use case. When this happens:
The $20K annual spend threshold is the default qualification bar, but growth trajectory can override it.
When all of the following are true, qualify for a call even if current MAU alone wouldn't hit $20K:
When the override applies, note it explicitly in the disposition: "Current MAU of 10K is below the $20K threshold, but growth trajectory is Accelerating ([$X funding, Y employees, etc.]) with multi-product potential. Qualifying for call based on trajectory."
When the override does NOT apply:
When multi-product signals are detected (from the lead's message or company research), adjust the MAU estimate:
This multiplier is an estimate, not a guarantee. It shifts the disposition from "definitely below threshold" to "plausibly above threshold, worth a call to confirm."
When a lead mentions they're currently using a competitor and looking to switch (e.g., "using Heap looking to move", "replacing Amplitude", "evaluating alternatives to Sentry", "moving off LaunchDarkly"), this is a high-signal inbound. They already have budget allocated to a tool in the category, they have a defined need, and they likely have some urgency.
However, the $20K floor still applies (unless the growth trajectory override kicks in). A competitor displacement lead still needs to show potential for $20K+ annual spend to qualify for a call. Don't offer a call just because they're switching from a paid tool.
For competitor displacement leads, the initial response should surface BANT signals before offering a call or routing to self-serve. Ask targeted discovery questions that uncover:
You don't need all four BANT signals in the first email. Ask 1–2 questions that surface the most important unknowns — typically Budget (why are you switching?) and Need (what do you want beyond what you have?). Let Authority and Timeline emerge in the reply.
After the lead replies with BANT context:
When the lead's message is vague (e.g., "want to start a review process", "looking to learn more", "interested in PostHog") BUT company research reveals a high-value account, do not default to self-serve routing.
Instead, treat vague requests from high-value companies as "needs discovery" rather than "not serious enough for a call." The disposition should be "qualify for call with discovery questions."
High-value company indicators (any two or more qualifies):
The email for these leads should:
All of these should be true:
If qualified, draft a response that:
Any of these are true:
Draft a helpful email that:
When recommending any disposition other than "Qualify for Call," you MUST provide a disqualification reason (from the list below) and disqualification notes (250 characters or fewer, specific and copy-pasteable into the Salesforce disqualification notes field).
Available disqualification reasons:
How to choose the right reason:
Disqualification notes must be specific and copy-pasteable. Include the key data points that justify the disqualification, including relevant findings from company research.
Good DQ notes:
Bad DQ notes:
Read references/writing-style.md before drafting. Key rules:
This step is mandatory. Before presenting the draft email, fetch every URL included in the email using web_fetch to verify:
If a URL fails validation:
web_search (e.g., "posthog docs feature flags getting started")Why this matters: PostHog's docs structure changes. URLs from the resource list below are a starting point, but they may have moved. A broken link in a sales email undermines credibility. Always verify before sending.
When a lead mentions HIPAA, BAA, or healthcare data, use this pricing info:
Standard BAA (no redlines):
Custom/redlined BAA:
Key framing: Lead with Boost as the standard path. $250/month is accessible for most organizations, including nonprofits and smaller companies. Don't default to "enterprise pricing" - that scares off leads who could easily afford Boost.
Practical note for leads with mixed PHI/non-PHI data: If only some of their funnels or data flows touch PHI, they can start tracking non-PHI activity on the free tier immediately while sorting out the BAA for the PHI-touching portions.
PostHog offers non-profit discounts on credit purchases:
To qualify, the customer needs to provide proof they fit their country's definition of a non-profit entity (tax law in country of origin).
Note: At low MAU volumes where usage stays within the free tier, the non-profit discount won't matter yet - their main cost would be the platform add-on (e.g. Boost for BAA). Mention the discount so they know it exists for when they grow into it.
When responding to the TAE, always provide:
Read these before drafting responses:
references/email-examples.md — Example emails for common inbound scenariosreferences/sales-context.md — Sales process, thresholds, qualification criteriareferences/writing-style.md — PostHog tone, formatting, and style rules10. Always mention in-app support for product questions — it's the fastest path to help.
11. PostHog is built for product engineers — If no engineer is involved, that's a red flag for qualification.
12. Frame around problems, not products — "Here's how to understand why users drop off" not "Here's our Product Analytics feature."
13. Use company research to personalize the email — Reference what they build, not just what they asked. It shows you did your homework.
14. Match specificity to specificity — Vague inbound gets pointed to resources with a clarifying question; specific technical questions get specific answers tied to their use case.
15. Always validate URLs before presenting the draft — Fetch every link to confirm it resolves and points to the right content. Never send a broken link.
16. Always provide a DQ reason and DQ notes — For every disposition except Qualify for Call, include the disqualification reason from the available list and copy-pasteable notes (250 chars or fewer). Be specific — name concrete signals from both the lead's message AND your company research.
Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take posthog/posthog-inbound-leads from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.