← All projects
Personal Project

Exact Recall

2024 – Present

Capture conversations you don't want to forget — structured event logging with search, still in active development.

1 / 6

Overview

Exact Recall is a personal tool for conversations and moments I don't want to forget. I chat with Claude, which asks follow-ups one at a time, then stores a structured summary I can search later. Still in active development — core logging and three search modes work; retrieval quality isn't measured yet.

The Problem

Important conversations and moments fade — I forget details, misremember what was said, and generic note apps need too much structure in the moment to be useful.

What I Built

  • Conversational logging

    Problem
    Capturing a memory in forms was too much friction in the moment.
    Fix
    Claude interviews one question at a time, then finalizes summary, fields, tags, people, location, dates, and a completeness score — one-shot summaries missed who/when/where too often.
    Result
    Events land as structured records without a blank form.
  • Follow-up reminders

    Problem
    Incomplete events stayed incomplete and memories faded.
    Fix
    SMS via Twilio and web-push reminders when completeness is below 75%.
    Result
    Thin records got a prompt to fill in before they went stale.
  • Three search modes

    Problem
    Keyword search fails when you remember the gist, not the words.
    Fix
    Live SQL keyword, pgvector semantic search, and Claude answers with citations.
    Result
    You can find an event by exact words, meaning, or a question.
  • Event dashboard

    Problem
    Logged events had no place to scan, filter, or reopen.
    Fix
    /events with filters, a needs-attention strip, and a transcript detail view.
    Result
    Incomplete and complete events are visible in one list.
  • File attachments

    Problem
    Memories often include photos and documents, not just text.
    Fix
    Images, HEIC/HEIF, PDFs, and docs stored in Cloudflare R2 and linked to events.
    Result
    Evidence sits with the event instead of in a separate folder.
  • Google OAuth

    Problem
    Preferences and events needed to follow a signed-in user.
    Fix
    Clerk Google OAuth with preferences synced to Postgres via webhooks.
    Result
    Account state survives across sessions without a custom auth stack.

Tech Stack

Next.jsPostgreSQLDrizzle ORMpgvectorAnthropic ClaudeOpenAI EmbeddingsClerkCloudflare R2Twilio

Outcome / Impact

In active personal use; still in progress. Interview-then-finalize and three search modes (keyword, semantic, AI-with-citations) are built — search quality across modes is not instrumented yet; that's the main open gap.