Back to the red bull cans

Side project with Jay Prakash Pathak and Krishna Mahato

iknowbrains

A business assistant that answers from a company's documents and posts for its brand

ShelvedApr–Jul 2025

Video in the works

iknowbrains

Uploading a document and asking questions about it.

About the project

Upload a company's documents and its brand details. Ask questions about them in chat, and have it write and post social media content in the brand's voice.

iknowbrains is a side project with Jay Prakash Pathak and Krishna Mahato: an assistant that knows a company. It answers questions from the company's own documents, keeps its brand information in one place, and uses that to make and post social media content. A website widget and WhatsApp were planned too.

My parts were data_brain, a document question-answering server I built alone; the AI layer of odin, our server; and two dashboard UIs.

How it works

  1. Upload

    Add text or PDF files.

  2. Split and embed

    Files are cut into chunks and turned into vectors.

  3. Ask

    Questions are answered from the closest chunks, with the last few messages as context.

  4. Stream

    Answers, and tool calls, stream back as they're written.

  5. Post for the brand

    The brand's details guide social posts, written and published from the same place.

Under the hood

data_brain
Express, LangChain and OpenAI embeddings, with the index rebuilt at startup.
odin
Koa and OpenAI, with streaming tool calls.
Dashboard
Next.js 15, tRPC, shadcn/ui and Recharts.

What I did

  • data_brain, solo: upload text or PDF files, split and embed them, and answer questions with chat history
  • The AI layer for odin, on Jay's server: normal and streaming answers, including streamed tool calls
  • Two dashboard UIs on Jay's base: analytics, documents, projects, reports, search, team, AI agents, API keys and usage

Problems I hit, and how I fixed them

  1. The in-memory search index was lost on restart.

    Fix Save document details to disk and rebuild at startup.

  2. Only plain text worked.

    Fix A parser for each file type, starting with PDF.

Screenshots

Screenshots in the works

Real screens from iknowbrains go here.