All products AI · Open source, Apache 2.0

Vectorless

Not a page. The exact section — and the table inside it.

100%of the evidence found — up from 80%
6 pagesthe section it points you at, down from 183
0AI writing calls — it selects, it never generates
01Why it exists

I kept chunking documents and hoping. The model is the better judge.

Every retrieval system I built came down to the same act of faith: cut the document into pieces, embed them, rank them by similarity and hope the top few were the ones that mattered. I took every precaution I knew of and still could not tell you, for any given question, whether the right passage had been found.

A model understands what a document means better than a similarity score does. The reason nobody lets it decide is cost and latency — every call is overhead, and a slow retriever is not one anybody uses.

So Vectorless is written in Go and built for concurrency, for the places where being wrong is expensive: healthcare, finance, anywhere an answer has to be traceable to the line it came from.

Halleluyah Oludele · founder
02Where it is

Built, open source under Apache 2.0, and benchmarked in public on FinanceBench — 21 company filings with known correct answers. Not commercialised: the headline number is a benchmark, not an install count.

03What it does
A PDF has no headings

Only glyphs with a size and a position. Vectorless reads the typography — anything larger than the document’s own median type is a heading — and rebuilds the outline from that.

Then it narrows

Contents page to real page numbers, then long sections split at their own headings. The section it hands you is six pages, not a hundred and eighty.

Tables stay tables

Each one is found from its ruling lines and word positions and becomes its own section with real cells — not a paragraph of loose numbers.

It decides, it does not guess

No embeddings, no chunks, no similarity score. A judge picks the section and gives a reason you can read — not a number nobody can argue with.

It can say it does not know

When the evidence is not in the document it abstains: no sections, no citations. An empty answer is safer than a confident wrong one.

Built in Go, so it waits once

Reasoning over a document has a name for being slow, because every hop is a model call. Go runs those side by side instead of one after another.

04Who this is for From our own go-to-market memo. Four segments, one test.
When your retrieval returns the wrong passage, does somebody get hurt, fined, sued or publicly embarrassed?If yes, whole-section retrieval and an audit trail are worth paying for. If no, you will use whatever your cloud provider bundles — and you should. Two things make yes possible: every answer replays byte-for-byte from its trace token, and the engine runs as a single binary inside your own network, so the documents never leave the building.
Legal and compliance

A near miss is a fabricated citation. Retrieval returns the adjacent clause or the superseded version, and the model bridges the gap by inventing one. Courts have started sanctioning that.

Pharma and clinical

A dosage table split across two chunks is a patient-safety event, not a relevance miss. In a regulatory submission the structure is the meaning.

Finance and insurance

The classic failure is the right company and the wrong fiscal year. Fiscal years do not follow calendars, so filtering on a date quietly hands back the wrong filing.

Research and publishing

A systematic review is structure-preserving retrieval with a methodology requirement bolted on. Which section a finding came from is part of the finding.

05The proof FinanceBench: 21 real company filings with known correct answers, run in public.

How a document gets its structure back

From raw glyphs to sections and tables

Nothing here is guessed from wording. The structure is recovered from geometry — type size against the document’s own median, and word positions grouped into rows within two points.

Did it find the evidence?

Share of known-correct pages located

From four pages in five to every single one, across 21 filings.

How small is the section?

Pages in the section it hands you

“Somewhere in these 183 pages” is not an answer. Six pages, and the table inside it, is.

And how long it takes

Seconds to map one filing (range across the corpus)

The slowest document used to take fourteen minutes. It now takes under two and a half — because the calls that used to queue up now run side by side.

See the full numbers and sources

Moving the whole mapping stage off a writing model

MeasureBeforeAfter
Documents with a usable map19 / 2120 / 21
Generative calls per document10
Evidence pages inside a section44 / 4445 / 45
Time per document103–840 s12–143 s
Cost per document$0.017–0.095$0.0003–0.0015

Source: docs/evaluations/2026-09-18-toc-extraction-on-a-judge.md. Section titles against the previous method: recall 0.961, precision 0.965 over 543 sections.

Splitting the sections that hold the evidence

TreeSectionsSection holding the answerRight section$ / question
Contents-page grain2337 pages39 / 400.0035
Split over 20 pages546 pages40 / 400.0039

Source: docs/evaluations/2026-09-19-leaf-granularity.md, run 19 September. All 47 evidence pages remain inside a section.

How the structure is recovered

StepWhat actually happens
Positioned wordsEach word comes out with its font name, size and bounding box, from pdfgrab — our own Go port of pdfplumber
Heading testA row is a heading when its type runs larger than the document’s median — measured per document, not assumed
Row groupingWords are bucketed into lines by their top edge, within two points
TablesFound per page from ruling lines and word positions, then emitted as their own section with real cells and flagged as a table so retrieval can lean on the numbers

Source: pkg/parser/pdf.go in vectorless-engine, on pdfgrab — our Go port of Python’s pdfplumber, written for this and released on its own, MIT licensed, with parity on all four table-finding strategies.

Why a regulated buyer can say yes

CapabilityWhat it means
It abstainsWhen the evidence is not there the response comes back abstained=true with no sections and no citations. It does not reach for the nearest plausible passage
No similarity scoresNo embeddings and no chunks anywhere — the engine’s own words. Sections are scored by a judge that returns a reason alongside the score
ReplayEvery answer carries a trace token, and /v1/replay returns the same answer byte for byte from it. There is a test that asserts exactly that — byte-identical body, same token, same document
Runs where the documents areOne Go binary inside your own network. If the files cannot leave the building, every hosted competitor is out before the conversation starts
Measured on near missesThe benchmark scores path_correct@1 and sibling near-misses — the adjacent-clause failure, not generic relevance. Chunk-based systems score zero on the first by construction

Source: internal/api/treewalk.go and its tests in vectorless-engine. These are the two questions a legal, clinical or financial buyer asks first, and they are the reason the audit trail exists at all.

What it is built on, and what you can install

PieceDetail
EngineGo, Apache 2.0. Concurrency is the design, not a tuning flag — worker pools, error groups and semaphores throughout, and the benchmark corpus runs eight documents at a time
llmgateOur own Go gateway: one client over Anthropic, OpenAI and Gemini, with routing, fallback and cost tracking. Apache 2.0, published separately
pdfgrabOur Go port of pdfplumber, MIT. The positioned words and table detection above come from it
Install itnpm vectorless, PyPI vectorless-sdk, and hosted at vectorless.store

Both libraries were pulled out of the engine and released on their own, so anything written in Go can use them. The engine is not the only thing we own — the routing layer and the parser underneath it are ours too.

Answering a question end to end

MeasureValue
Questions40
Right section37 / 40 (0.925)
Every evidence page found34 / 40 (0.850)
Pages read per question40.7
Requests per question4.1
Cost per question$0.0029

Source: docs/evaluations/2026-09-18-retrieval-navigation-on-a-judge.md, run 5. Corpus throughout: FinanceBench, 21 filings, 40 questions, evidence pages from PatronusAI/financebench.

What we do not claim

  • The 80% baseline was not really a location score — with no page numbers, a section inherited a whole 183-page part, so a page counted as “found” when it was not located at all.
  • The first attempt at splitting made retrieval worse, and tightening the budget lost coverage from 47 to 39 of 47.
  • A page-numbering bug had been corrupting every page-level stage until near-misses exposed it.
  • Speculative fan-out was tried and was 31% slower. It is not in the engine.
  • Timings are API latency in the hour of each run, not work. Cost and request count are the numbers to read.
06Straight talk

What Vectorless has not been tested on.

  • One kind of document21 US financial filings. No clinical, legal or academic corpus yet.
  • It needs a contents pageA long document without one is the obvious failure case, and is untested.
  • Retrieval, not answersWe measure whether the right page is found, not whether the final answer is correct.
  • No adoption numbersWe report the benchmark. We do not report downloads.

Capital to finish these and take them to market.

Six products across healthcare, education and AI. Where we have numbers, they are on the page. Where we do not, the page says so.