Skip to content
C. Celaya
← Work
LIVEInstrument TRINIDAD
The question

Can an archive nobody can read be made answerable without losing the page it came from?

The system

TRINIDAD

Ask a plain question of 5,400 rare Texas documents, from the Spanish colonial records through the early 1900s, and get an answer cited to the scanned page it came off.

Sector
Archives and legal research
Role
Sole operator. Ingest, retrieval, interface, API.
Read
4 min read

Every answer arrives with the scanned page it came from, so a researcher can go check it in one click.

An archive is only as useful as the part of it you can find.

Texas has one of the deepest colonial records in North America. Spanish land grants. Viceroy orders. Expedition journals. Church and mission books. Battle accounts. Legislative archives. Most of it sits in scans, which means it sits in images, which means a keyword search over it returns nothing. A researcher who wants to know what a specific alcalde did in 1798 has one move: read until they find it, or know a person who already did.

TRINIDAD is the instrument I built to close that gap. Ask it a plain question. It answers out of the documents and tells you which scanned page the answer came off.

What is actually in it

5,435 documents and 1,065,357 indexed passages, running roughly 1519 to 1950. The corpus is not one collection but several, and the collections do not overlap much:

  • Blake Papers, 26,729 passages, 1734 to 1845
  • Bexar Archives, 8,404 passages, 1717 to 1836
  • Castañeda Collection, 5,765 passages, 1519 to 1950
  • Bancroft Collection, 2,728 passages, 1519 to 1900
  • Bolton Collection, 2,051 passages, 1519 to 1820

Every one of those numbers is on the live system, next to the collection it describes. That is on purpose. A number a reader cannot check is a number I should not be printing.

TRINIDAD · the corpus
TRINIDAD · the corpusA field of points standing for the 5,435 documents in TRINIDAD, with five dense clusters labelled by collection and a wide haze for the rest. One point in three is drawn here.Blake Papers1734 to 1845Bexar Archives1717 to 1836Castañeda Collection1519 to 1950Bancroft Collection1519 to 1900Bolton Collection1519 to 1820
What did the alcalde order in 1798?Bexar Archives · scanned page · opens in one click
5,435 points, one per document. Clusters are sized by the published passage counts. Scroll to run a question through it.Counts are on trinidad.town beside each collection. The retrieval sequence is an illustration of the pipeline, not a live query.

The part that matters

Nothing comes from the web.

An answer is assembled out of the corpus and nothing else, and it arrives with the source file and the page number attached. Click it and you get the original scan. Not a summary of the scan, not a link to a landing page about the scan. The image of the page, at the passage the claim came from.

That constraint is the whole design. Retrieval systems that reach out to the open web feel more capable and are worth less, because the moment a claim cannot be traced you have to verify the entire answer by hand, and then you might as well have read the documents yourself. Provenance is not a feature bolted on the side. It is the reason the thing is usable at all.

The pipeline that supports it: OCR over the scans, transcripts prioritized for search where a transcript exists, and a daily reprocess so new material lands without a rebuild. There is a public API, because a researcher's real workflow is rarely a chat box.

What it runs on

No model was trained on the archive. That is the part most people get backwards.

You do not train a model on your documents. You hand it the documents at query time. The scans are the knowledge base. The model is the reasoning engine. They stay separate, and that separation is what makes the citation possible: the answer can point at a page because the page was in front of the model when it answered.

The stack, plainly:

  • Qdrant for vector search across the passages
  • Ollama running qwen2.5:7b on local hardware, so a query costs electricity and nothing else
  • Docling and PyMuPDF on ingest, because the corpus is a mix of scanned pages and born-digital text and the two need different handling
  • Stripe metered billing, so an institution pays for the tokens it consumes rather than for a seat
  • API keys for institutional access

No cloud model in the answer path. No per-query fee to a lab in San Francisco. Four centuries of records, queried in seconds, cited to the page.

What it does not do

Coverage after 1900 is thin. Labor history, Mexican-American civil rights, indigenous oral history, and modern personal papers are barely represented. Not everything is indexed yet.

And it is sometimes wrong. It says so on the front page.

That last line took a while to leave in. The pull is to hide it, because a system that admits error looks weaker than one that does not. It isn't. A researcher who knows where the floor is can work on top of it. One who has been told the floor is everywhere will step through it eventually, and then nothing the system ever said is trustworthy again.

Why this generalizes

Swap the archive and the shape holds. Case files. Inspection reports. Twelve years of maintenance logs. Any corpus too large to read, where being wrong has a cost and somebody eventually has to defend the answer to a person who was not in the room.

The three requirements are always the same. The answer traces to a source. The source opens in one click. The system tells you where its coverage ends.

That is the build. Everything else is interface.

If your problem has this shape, say so in three sentences and I will tell you plainly whether it fits.

Email hello@celayasolutions.com ↗