Source-linked company memory
Every document is made of grains of fact.
Docgrain splits your PDFs, spreadsheets and Word files into grains: single facts that each remember their page, cell or line. Grains from every document are checked against each other and joined into one memory your AI, apps and website can trust.
- 6 formats
- PDF, DOCX, XLSX, TXT, PNG, JPEG into one model
- 0 uncited fields
- a field without evidence is rejected
- MCP + tool specs
- for Claude and any OpenAI-compatible model
- Immutable revisions
- every answer publishes a new version
How it works
Every answer points to its source.
Docgrain reads your files, cites every value down to the page, cell or line, and asks a person when documents disagree. Hover a field to see where it came from.
The Family Room sleeps two adults and two children across 42 m²p.2 · ¶1 · 42 m², with a king bed and a sofa bed.
It opens onto a private terrace with garden viewp.2 · ¶2 · l.4 and is a short walk from the spa.
Check-in from 14:00p.2 · ¶3; late check-out on request.
— Aile odaları (2 yetişkin + 2 çocuk), deniz manzaralıline 118 · col 34, 42 m².
— Giriş 14:00, çıkış 12:00. Erken giriş resepsiyona sorulur.
Family Room · Standard rate · €180cell B14 / night · min. stay 2
The idea
Grains mean little alone. Joined, they become knowledge.
Our mark is a page split into nine grains; the folded corner is the document they came from. That is the whole product. A single grain, “garden view”, says almost nothing. Joined with the grains around it (which room, which hotel, which document, which date) it becomes a fact your company can stand behind.
One grain says almost nothing.
“garden view”, from page 2 of a factsheet.
The product
A quiet ledger for your company's facts.
Company summary
Mavikoy Hotels
Waiting for your answer
All questions →Collections
See all →Sample data, not a real company.
The problem
Company knowledge is scattered, contradictory and unverifiable.
Trapped in files
Prices, schedules and policies live in PDFs, Excel sheets and Word documents. Tables break on export and scans are just images.
The same fact, three answers
A factsheet, an internal memo and a price list each say something slightly different. Nobody knows which one is current.
AI without provenance
If an assistant's answer cannot point to a page, cell or line, nobody can check it, so nobody should trust it.
Conflicts are asked, never guessed
When grains disagree, one precise question.
Docgrain does not pick a winner. It shows what each document says, with the exact quote and location, and asks the person who knows. Each answer publishes a new immutable revision.
- Every published field cites its evidence: page, cell, box or line.
- Fields without evidence are rejected, not filled in.
- Recurring schedules are recognised, so a swapped Saturday rota becomes one question, not thirty-two.
Sources disagree· Rooms
Which view does the Family Room have?
Pick the document that is current. You can correct both.
factsheet-2026.pdf says 12 Mar 2026
Garden view
“The Family Room opens onto a private terrace with garden view.”page 2
Selectedtalimatlar.txt says 3 Feb 2026
Sea view
“Family rooms (2 adults + 2 children), sea view, 42 m².”line 118
This document is currentUnder the hood
From a company folder to data your AI can cite.
Ingest
A whole company folder in one go, one workspace per company. Re-runs reuse identical files.
Discover
A model proposes the company's own collections (rooms, restaurants, services) with quotes verified against the source.
Merge and ask
Records are merged across documents and languages. Real conflicts become questions for people.
Publish
Preview and approved JSON per collection, a compact Markdown context, tool specs and an MCP server.
Feeds your AI, not another chatbot
Bring your own assistant.
Docgrain produces read-only APIs, tool specs and an MCP server that your own assistant uses, including Claude Desktop. Every result carries its publication mode, revision and document sources. With no valid citation, the reference loop answers “I don't know”.
- Four tools:
list_collections,search_records,get_record,get_context. - Approved data by default; preview only on explicit request.
- Deterministic search, no embeddings required.
# tool specs for your model GET /v1/workspaces/{ws}/ai/tools # call a tool, get records with sources POST /v1/workspaces/{ws}/ai/call { "tool": "get_record", "args": { "collection": "rooms", "id": "family-room" } } # → value, revision, mode: "approved", # sources: factsheet-2026.pdf · page 2
Status, honestly
What works today, and what doesn't yet.
Nothing counts as done until it is measured. The evaluation harness scores answers, abstention and citation hits against golden questions; the first public baseline is in progress.
- Whole-folder ingestion, one workspace per company
- Collection discovery and record extraction
- Cross-document and cross-language merge
- Conflict questions and immutable revisions
- Preview / approved JSON, tool specs, MCP adapter
- First measured baseline with
docgrain-eval - Reading quality on hard pages (vision model)
- Flattened tables restored as real tables
- File versions that carry accepted answers forward
- Change propagation with webhooks
- Authentication and multi-tenant isolation
Built with Claude
A human product owner and a team of AI agents.
Claude Code is Docgrain's tech lead. It writes work packages, reviews every diff, re-runs the tests and measures on real documents before anything merges. Engineering agents run in their own git worktrees and branches; a Claude designer owns the brand and screens, and a Claude scribe keeps the docs.
- Every change goes through a reviewed pull request on the public repository.
- Text inside source documents that looks like instructions is treated as data, never as a command.
- Real customer documents and evaluation data are never committed.
Company
Docgrain
An early-stage startup building the source-linked memory layer between company documents and the AI systems that answer questions about them. We start with hospitality, where one hotel's facts are spread across factsheets, price lists and staff instructions; the core is domain-neutral.
- Founder
- Busenur Adıbelli
- Stage
- Pre-alpha, working product in development
- Code
- github.com/badblli/docgrain · MIT
- Founded
- 2026