> ## Documentation Index
> Fetch the complete documentation index at: https://keystroke.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Use cases

> Common ways teams use Keystroke.

export const UseCase = ({title, prompt, apps = [], children}) => {
  const [copied, setCopied] = useState(false);
  const handleCopy = () => {
    navigator.clipboard.writeText(prompt).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    }).catch(err => console.error("Failed to copy prompt:", err));
  };
  return <button type="button" onClick={handleCopy} aria-label={`Copy prompt for ${title}`} className="group not-prose relative flex w-full cursor-pointer appearance-none flex-col items-start gap-2 rounded-xl border border-gray-200 bg-white p-[18px] text-left transition-colors hover:bg-gray-50 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/[0.06]">
      <span className={`absolute right-3 top-3 inline-flex items-center gap-1 text-xs text-gray-400 transition-opacity dark:text-zinc-500 ${copied ? "opacity-100" : "opacity-0 group-hover:opacity-100"}`}>
        {copied ? "Copied" : "Copy prompt"}
      </span>
      <span className="flex items-center">
        {apps.map((app, index) => <span key={app} className={`flex size-[18px] shrink-0 items-center justify-center overflow-hidden rounded-md bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.08)] ring-1 ring-black/[0.08] dark:ring-white/15 ${index > 0 ? "-ml-1" : ""}`}>
            <img src={`images/app-logos/${app}.png`} alt="" className="size-full object-cover" />
          </span>)}
      </span>
      <span className="flex flex-col gap-1">
        <span className="font-serif text-[16px] font-medium leading-[24px] tracking-[-0.4px] text-gray-900 dark:text-zinc-50">
          {title}
        </span>
        <span className="text-[14px] leading-relaxed text-gray-500 dark:text-zinc-400">
          {children}
        </span>
      </span>
    </button>;
};

Teams use Keystroke to build internal agents and AI systems across every function. You can click any use case listed below to copy a ready-to-use prompt — paste it into the [platform agent](/docs/build-with-ai/platform-agent) chat in the web app, or hand it to your coding agent.

## For everyone

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="AI secretary" apps={["gmail", "google-calendar", "granola", "slack"]} prompt="Build an AI secretary named Sheila that can manage my Gmail and Google Calendar, prep me for meetings using call transcripts and relevant company context, and send me follow-up drafts in Slack.">
    Manages your inbox and calendar, prepares you for meetings, and keeps every follow-up from slipping.
  </UseCase>

  <UseCase title="Meeting recaps" apps={["granola", "linear", "slack"]} prompt="Build a meeting recap agent. It should poll Granola every hour on weekdays during working hours (9am-5pm) for newly ended meetings, turn the transcript into action items, open follow-up tasks in Linear, and send everyone a recap in Slack.">
    When a call ends, turns the transcript into action items, opens follow-up tasks, and sends everyone a crisp recap.
  </UseCase>

  <UseCase title="Company knowledge agent" apps={["notion", "gmail", "linear", "snowflake"]} prompt="Build a persistent company knowledge agent that learns from our Notion docs and past conversations, can work across Gmail, Google Calendar, Linear, Attio, and Snowflake, and has reusable skills for how our team uses each app.">
    Gives a persistent company agent the context and skills to work across your team's systems.
  </UseCase>

  <UseCase title="Executive coworker" apps={["slack", "linear", "posthog"]} prompt="Build a Hermes-style executive coworker named Teddy that answers data questions in Slack, investigates work in Linear and PostHog, prepares reports, and remembers useful context from past conversations.">
    A persistent AI coworker for leadership that can investigate, report, and remember useful context.
  </UseCase>

  <UseCase title="Research report" apps={["google-drive"]} prompt="Build a research agent that studies leading companies in a market with native web search, compares their messaging and offers with source links, and saves a structured report to Google Drive.">
    Researches a market and delivers a sourced, structured report instead of a chat response.
  </UseCase>

  <UseCase title="Commitment tracker" apps={["gmail", "slack", "linear"]} prompt="Build an open commitments tracker agent. Each weekday evening it should scan my Gmail and Slack for commitments I made, create or update a Linear issue for each open promise, close items that were completed, and send me a short list of anything at risk in Slack.">
    Keeps a running list of promises you made in email and Slack so nothing quietly slips.
  </UseCase>
</div>

## Sales

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="Prospect briefings" apps={["google-calendar", "apollo", "salesforce", "slack"]} prompt="Build a prospect briefing agent. When a new meeting is booked on my Google Calendar, research the attendee and their company with Apollo and native web search, pull CRM context from Salesforce, and post a concise prep note to Slack.">
    When a new meeting is booked, researches the attendee and company, then posts a concise prep note.
  </UseCase>

  <UseCase title="GTM prospecting partner" apps={["apollo", "attio", "gmail", "slack"]} prompt="Build a GTM agent that researches accounts with Apollo and native web search, keeps Attio current, and prepares Gmail drafts for approval in Slack. Give it a reusable skill with our ICP criteria and outreach voice.">
    Researches target accounts, maintains CRM context, and drafts personalized outreach without sending.
  </UseCase>

  <UseCase title="Prospect reply drafts" apps={["gmail", "hubspot"]} prompt="Build a prospect reply drafting agent. It should poll Gmail for new replies from prospects, pull the account and deal context from HubSpot, and draft a tailored response in Gmail for my review without sending it.">
    When a prospect replies, turns the thread and CRM context into a thoughtful response for review.
  </UseCase>

  <UseCase title="Buying signal operator" apps={["posthog", "stripe", "attio", "gmail"]} prompt="Build a buying signal agent that combines PostHog usage, Stripe revenue, and Attio account context, researches the strongest opportunities with native web search, and drafts timely Gmail outreach for approval.">
    Combines product, billing, and CRM signals to decide which accounts deserve attention now.
  </UseCase>

  <UseCase title="Call-to-quote" apps={["granola", "attio", "stripe", "gmail", "slack"]} prompt="Build an agent that reviews new Granola transcripts, updates the deal in Attio, drafts a Stripe quote when pricing was agreed, prepares the customer email in Gmail, and sends the proposal to Slack for approval without sending anything.">
    Turns agreed pricing from a customer call into a reviewable quote and follow-up package.
  </UseCase>

  <UseCase title="Living deal intelligence" apps={["granola", "attio", "slack"]} prompt="Build a deal intelligence agent that reviews new Granola call transcripts, keeps our deal qualification fields and supporting evidence current in Attio, flags missing or contradictory details, and sends deal owners a concise risk and next-step brief in Slack.">
    Keeps qualification, risks, and next steps current from every customer conversation.
  </UseCase>
</div>

## Marketing

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="AI marketing team" apps={["notion", "slack"]} prompt="Build a team of marketing agents inspired by Vercel's open-source AI marketing team at https://x.com/rauchg/status/2061934154732974376. Include specialists for positioning, customer research, long-form content, SEO, social, and email, give them shared brand context in Notion, and require approval in Slack before anything is published or sent.">
    Coordinates specialist agents for positioning, content, SEO, social, and email with shared context.
  </UseCase>

  <UseCase title="SEO content engine" apps={["reddit", "google-sheets", "notion"]} prompt="Build an SEO content agent. Each week it should turn Reddit community signals, native web research, and keyword data in Google Sheets into topic clusters, article briefs, and draft posts in Notion.">
    Every week, turns community signals and web research into topic clusters, article briefs, and Notion drafts.
  </UseCase>

  <UseCase title="Competitor monitoring" apps={["slack"]} prompt="Build an agent that monitors competitor websites for meaningful pricing, positioning, and product changes, then posts an evidence-backed briefing with source links in Slack.">
    Tracks meaningful competitor changes and explains what they mean for your positioning.
  </UseCase>

  <UseCase title="Content partner" apps={["github", "linear", "notion", "slack"]} prompt="Build a content partner that reviews merged GitHub pull requests, closed Linear issues, customer language, and industry signals from native web search, then prepares ready-to-edit content drafts in Notion and shares them in Slack.">
    Turns product work and market signals into reviewable social and editorial drafts on a schedule.
  </UseCase>

  <UseCase title="Product docs maintainer" apps={["github", "notion", "slack"]} prompt="When a GitHub pull request with frontend changes is merged, run the changed app, identify the affected support documentation, draft the necessary updates in Notion, and request review in Slack.">
    Tests frontend changes and keeps the corresponding support documentation current.
  </UseCase>

  <UseCase title="Living messaging doc" apps={["granola", "hubspot", "notion"]} prompt="Build a living messaging doc agent. After customer calls land in Granola, it should pull CRM context from HubSpot, extract language customers actually used, and update our positioning page in Notion.">
    Updates positioning docs with the words customers actually use on calls.
  </UseCase>
</div>

## Data

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="Semantic layer agent" apps={["snowflake", "posthog", "slack", "metabase"]} prompt="Build a data agent that documents our Snowflake and PostHog schemas, keeps our data documentation and metric definitions current as the data changes, answers questions in Slack, and creates Metabase dashboards on demand.">
    Documents your data, maintains shared meaning, answers questions, and creates dashboards on demand.
  </UseCase>

  <UseCase title="Multi-agent data team" apps={["snowflake", "slack", "github", "metabase"]} prompt="Build a multi-agent data team. Give it a Slack analyst that answers business questions from Snowflake and a model engineer that handles missing or incorrect models by changing our analytics code and opening a GitHub pull request for review. The analyst should create Metabase dashboards when a reusable view would help.">
    Pairs a conversational analyst with a model engineer that can improve the data layer through reviewed code.
  </UseCase>

  <UseCase title="Launch recap" apps={["github", "posthog", "slack"]} prompt="Build a launch recap agent. When a release ships on GitHub, it should pull adoption and retention for the launch cohort from PostHog and post a short recap to Slack.">
    When you ship a release, pulls adoption and retention for the launch cohort and posts a short recap.
  </UseCase>

  <UseCase title="Customer health monitor" apps={["posthog", "zendesk", "hubspot", "slack"]} prompt="Build a customer health monitor. Every Monday it should combine PostHog usage dips, Zendesk ticket volume, and HubSpot account signals, then post an at-risk account brief to Slack with likely root causes.">
    Every week, flags at-risk accounts from product usage, support volume, and CRM signals.
  </UseCase>

  <UseCase title="Metric anomaly investigator" apps={["posthog", "snowflake", "metabase", "slack"]} prompt="Build a metric anomaly agent that monitors PostHog and Snowflake for unusual changes in our important metrics, investigates the affected segments and likely causes, creates or updates a Metabase dashboard with the evidence, and posts its findings to Slack.">
    Detects important metric shifts, investigates likely causes, and preserves the analysis for the team.
  </UseCase>

  <UseCase title="Voice of customer" apps={["intercom", "notion", "slack"]} prompt="Build a voice-of-customer agent. Each week it should review Intercom conversations, cluster recurring themes with verbatim evidence, save a summary page in Notion, and post the digest to Slack.">
    Every week, turns support conversations into themes with evidence and shares them with the team.
  </UseCase>
</div>

## Finance

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="AI deal desk" apps={["granola", "stripe", "gmail", "slack"]} prompt="Build an AI deal desk that reviews new Granola transcripts, uses our existing Stripe products and pricing to draft a quote when terms were agreed, prepares the customer email in Gmail, and sends both to Slack for approval.">
    Turns pricing agreed on calls into accurate, approval-gated quotes and customer drafts.
  </UseCase>

  <UseCase title="Living P&L" apps={["mercury", "gmail", "quickbooks", "slack"]} prompt="Build a finance agent that reviews new Mercury transactions, matches receipts from Gmail, proposes QuickBooks categories based on prior entries, and routes uncertain transactions to Slack for approval.">
    Learns from prior bookkeeping and asks for help only when a transaction is unclear.
  </UseCase>

  <UseCase title="Payout reconciliation" apps={["stripe", "quickbooks", "slack"]} prompt="Build a payout reconciliation agent. Every Friday it should match Stripe payouts against our QuickBooks ledger, flag any variance over threshold, and post the report to the finance channel in Slack.">
    Every Friday, matches payouts against your ledger, flags variances over threshold, and posts the report to finance.
  </UseCase>

  <UseCase title="Invoice matching" apps={["gmail", "quickbooks", "slack"]} prompt="Build an invoice matching agent. When a vendor invoice arrives in Gmail, extract its line items, match them against purchase records in QuickBooks, and route mismatched or unclear lines to Slack for approval.">
    Matches messy vendor invoices against records and routes only meaningful exceptions for approval.
  </UseCase>

  <UseCase title="Invoice collections" apps={["quickbooks", "gmail"]} prompt="Build an overdue invoice collections agent. A few times a week it should find overdue invoices in QuickBooks and draft collection emails in Gmail for my review before anything sends.">
    A few times a week, finds overdue invoices and drafts collection emails for review.
  </UseCase>

  <UseCase title="Subscription audit" apps={["ramp", "gmail", "slack"]} prompt="Build a subscription spend review agent. On the first of each month it should review recurring Ramp charges and matching Gmail receipts, flag duplicate, overlapping, or unexpectedly changed subscriptions, and prepare a short review checklist in Slack.">
    Every month, reviews recurring Ramp charges and related receipts to flag spend worth a second look.
  </UseCase>
</div>

## Operations

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="Support engineer" apps={["intercom", "notion", "github", "linear"]} prompt="Build a support engineering agent. When a customer reports a bug in Intercom, it should inspect the conversation, our Notion support docs, and the relevant GitHub code, reproduce the issue when possible, open a Linear issue or fix pull request, and draft a customer reply for review.">
    Investigates customer bugs across support history, documentation, and code before preparing the response.
  </UseCase>

  <UseCase title="Employee onboarding" apps={["gusto", "slack", "google-calendar", "notion"]} prompt="Build an employee onboarding agent. When a new hire starts in Gusto, it should send a first-week checklist in Slack, schedule intro meetings on Google Calendar, and answer onboarding questions from our Notion company docs.">
    When a new hire starts, sends a first-week checklist, schedules intros, and answers questions from company docs.
  </UseCase>

  <UseCase title="Contract review" apps={["docusign", "google-drive", "slack"]} prompt="Build a contract review agent. When a contract is received in DocuSign, it should flag unusual terms, save a summary to Google Drive, track deadlines, and post a brief for attorney review in Slack.">
    When a contract is received, flags unusual terms, tracks deadlines, and prepares a summary for attorney review.
  </UseCase>

  <UseCase title="Meeting action hand-off" apps={["granola", "linear", "slack"]} prompt="Build a meeting action hand-off agent. It should poll Granola for newly completed meetings, extract action items and owners, create assigned Linear issues with the relevant context, and post a concise ownership recap in Slack.">
    Routes every meeting action to the right teammate before it gets forgotten.
  </UseCase>

  <UseCase title="Knowledge base maintainer" apps={["intercom", "notion", "slack"]} prompt="Build a knowledge base maintainer that reviews resolved Intercom conversations each week, finds recurring questions, drafts or updates the corresponding help articles in Notion, and requests review in Slack before publishing.">
    Turns recurring support questions into draft help articles for human review.
  </UseCase>

  <UseCase title="Leadership decision log" apps={["granola", "notion", "slack"]} prompt="Build a leadership decision log agent. It should poll Granola for newly completed leadership meetings, extract decisions, rationale, owners, and follow-ups, update a running decision log in Notion, and post the new entries in Slack for confirmation.">
    Keeps a running record of what leadership decided, why, and who owns the follow-through.
  </UseCase>
</div>

## Engineering

<div className="mt-[18px] grid grid-cols-1 gap-6 sm:grid-cols-2">
  <UseCase title="Incident fixer" apps={["datadog", "github", "slack"]} prompt="Build an incident engineering agent. Each morning it should rank Datadog issues by severity and frequency, investigate the highest priority against recent GitHub changes and the codebase, open a pull request with the fix, and summarize the remaining issues in Slack.">
    Investigates the most severe and frequent production issue and carries its fix through a reviewable PR.
  </UseCase>

  <UseCase title="Error fixer" apps={["sentry", "linear", "github"]} prompt="Build an error fixing agent. Every day it should rank new Sentry errors by customer impact, dedupe them against Linear, investigate the most important issue in the codebase, and open a GitHub pull request with the fix and evidence.">
    Finds the error hurting the most customers, traces it through the code, and prepares the fix.
  </UseCase>

  <UseCase title="Slow query fixer" apps={["github"]} prompt="Build a slow query fixing agent. Each morning it should find the most expensive database query from the last 24 hours, trace it to the application code, validate the most impactful fix, and open a GitHub pull request with the evidence.">
    Finds the database query with the greatest performance cost and opens a code-level fix.
  </UseCase>

  <UseCase title="PR risk and reviewers" apps={["github", "slack"]} prompt="Build a PR risk agent. When a GitHub pull request is opened, it should review the changed files, score blast radius, request up to two reviewers, and comment with a short risk summary. Optionally notify Slack for high-risk PRs.">
    When a PR opens, scores blast radius, requests reviewers, and comments with a risk summary.
  </UseCase>

  <UseCase title="Customer bug fixer" apps={["slack", "notion", "datadog", "github", "linear"]} prompt="Build a customer bug fixing agent that support can @mention in Slack. It should inspect the thread, our Notion support docs, Datadog logs, and GitHub code, reproduce the problem, open a pull request and Linear issue, then return to the thread after the fix is deployed with a customer-ready update.">
    Lets support summon an engineer that investigates, fixes, and closes the loop with the customer.
  </UseCase>

  <UseCase title="Deploy verification" apps={["github", "datadog", "slack"]} prompt="Build a deploy verification agent. After a production deploy on GitHub, it should check Datadog for error or latency regressions and post a go or no-go with evidence to the release channel in Slack.">
    After a production deploy, checks errors and metrics and posts a go / no-go to the release channel.
  </UseCase>
</div>
