← Back to dashboard
Methodology

How this was built

Every post shown in this dashboard is a real Reddit post with a real URL. Nothing is fabricated. This page explains how the data was collected, how hypotheses were defined, and how the prototype was designed.

1. Research question

Gmail Search AI Overviews is betting on a chain: search → summary → action. For that chain to work, three things have to be true: the summary has to be accurate enough to trust, the surface has to enable action after the summary, and the actions (especially replies) have to feel like the user, not a bot.

I framed these as three falsifiable hypotheses and looked for public user evidence that validates or refutes each one.

2. Reddit scraping

Data was collected exclusively from Reddit using the public JSON API — no auth required, all posts are publicly visible and linkable. I targeted subreddits where Gmail users and AI email tool users are most active.

// Reddit public JSON API — returns real posts with real URLs
const url = `https://www.reddit.com/r/${sub}/search.json
  ?q=${encodeURIComponent(query)}
  &restrict_sr=1&sort=relevance&t=year&limit=25`;
HypothesisSubredditsQuery terms
H1 Accuracyr/gmail, r/gsuite, r/GoogleWorkspace"gmail summary wrong", "gemini email mistake", "ai summary incorrect"
H2 Action gapr/gmail, r/productivity, r/Superhuman, r/androidapps"quick reply gmail ai", "email ai draft reply", "respond email faster"
H3 Voicer/ChatGPT, r/productivity, r/Superhuman, r/gmail"ai email sounds like ai", "doesn't sound like me", "ai draft generic"

3. Keyword matching

Each post is matched to a hypothesis based on keyword presence. A post can match multiple hypotheses.

// Hypothesis keywords (sample)
accuracy: ["wrong", "incorrect", "hallucinate", "can't trust",
           "wrong deadline", "not true", "unreliable"]

action-gap: ["reply", "respond", "draft", "quick reply", "compose",
             "still have to", "open thread", "from scratch", "superhuman"]

voice: ["sounds like ai", "doesn't sound like me", "generic",
        "rewrite", "tone", "style", "sent history", "personalize"]

4. Curated baseline

To ensure themes always render (even if Reddit rate-limits the scraper during a demo), I included 10 curated entries grounded in the actual content of these subreddits. These are clearly marked as "curated" in the data model and are not presented as scraped posts.

5. The AI Overview prototype

The prototype is not AI-generated— it's a PM's product vision, hardcoded by design. The goal is to show what a Gemini-powered Gmail search experience should look like based on the evidence, not to ask an AI to generate it on the fly.

The three-layer toggle (Summary → Action → Voice) maps directly to the three hypotheses — each layer is additive, showing how each investment unlocks the next.

6. Reproduce it

# Trigger a fresh Reddit scrape (requires SYNC_SECRET)
curl -X POST https://schlacter.me/gmail-search-ai/api/scrape \
  -H "x-sync-secret: YOUR_SECRET"

# Get the current analysis snapshot
curl https://schlacter.me/gmail-search-ai/api/analyze

# Get raw posts for a specific hypothesis
curl "https://schlacter.me/gmail-search-ai/api/feedback?hypothesisId=accuracy"
curl "https://schlacter.me/gmail-search-ai/api/feedback?hypothesisId=action-gap"
curl "https://schlacter.me/gmail-search-ai/api/feedback?hypothesisId=voice"