Plain teaching for people who tried “just ask the PDF” and got confident
wrong answers — and for anyone who needs a clear next step.
KBMill is the missing preparation layer between documents and RAG.
It performs corpus manufacture: it turns messy source documents into
residual-honest knowledge bricks — bounded, portable packages —
and makes unreliable parts visible instead of letting a model quote them as fact.
You keep the ZIP. You pay only if we deliver.
The public door is a hopper into a
real plant
(proof:
/architecture).
Not a chatbot. Not “we ran an extractor and called it done.”
Three depths on this site:
Recognition (wrong answers from junk piles) ·
Understanding (extract vs retrieve vs manufacture) ·
Diligence (architecture, schemas, fail classes).
Concepts below support that ladder — start with the path above if you are new.
The offer is the front door. These notes are the teaching. Cite one note.
Architecture is one note. The bill shelf is not where an answer starts.
Each link below is a Note or the FAQ, with our read and what we built.
What actually runs behind the hopper?Infrastructure-class plant under the hopper — not a parser with philosophy. Scales by mirroring plants; minimal pain next to your stack (keep the ZIP, keep your RAG, pay on success). Worth diligence if document prep is on your cost slide.
When the web runs out of training data — how do you manufacture more?Frontier models need clean feed. When public scrape is exhausted, manufacture training-ready stock from rights-cleared document estates — same plant, different contract. We do not train on your mill uploads.
Why is my local model fine but answers from my documents are still junk?Usually the model is fine and the corpus is not. A folder of files is not a knowledge base. KBMill manufactures a portable ZIP with weak material listed off the answer path—so your existing model has something fit to quote.
Is this another RAG product?No. RAG retrieves. Something has to make the corpus worth retrieving. KBMill prepares documents before your AI searches them. Keep your RAG; point it at a brick.
What does quality mean if not a smoother demo?Answers a responsible person can stand behind after week two: mutes listed not hidden, portable leave-behind, pay only if we produce. Not trustworthy-AI slogans.
Does KBMill replace a data science team?No. It amplifies one: manufacture residual-honest bricks so the team spends hours on judgment and models, not janitorial packaging. Not “we’ll do data science for you.”
Is KBMill a pilot—and why are there upload caps?Yes: mutual pilot. Caps (15 files / 150 MB, one job at a time) are intentional so early problems stay bounded. We intend to extend later. Pay only if we produce.
Teaching series
Start with the plant note, then glossary and the door questions.
One stall or thesis each — philosophy plus what actually runs.
The stall, the signature concept, and the price — then go deeper
in the series above when you want the failure modes.
Why is my local model fine and the answers from my docs still junk?
Note · KBMill · the stall
You installed a local model. You dropped your manuals into chat.
The answers are still wrong, empty, or confidently made up.
The model is usually fine. A folder of files is not a knowledge
base.
Scanned pages, website chrome, doubled letters from a bad PDF,
tables that look clean and still lie — that is the pile.
Splitting files so they fit a chat window is a workaround.
Tools that extract text (LlamaParse and friends) stop
at the extract. RAG searches whatever you stuffed in.
Neither one manufactures a package you can
keep and trust.
We call that package a knowledge brick: a
portable ZIP you own. Known junk is
muted off the answer path — taken out of what
the model can quote — and listed, not hidden. That is
a durable leave-behind, not a one-shot upload. You
pay only if we produce. Point your existing
model at the ZIP. You do not replace your stack, and you do
not start a chatbot. Complexity stays in the plant. You
drop files in the bin.
What does residual-honest mean?
Note · KBMill · mute, don’t hide
Some pages will not come out clean. A scan that is blank in the
middle. A table whose numbers you would not bet money on.
Letters doubled from a bad print layer. We could hide all of
that and ship something that looks polished. We don’t.
Residual is the junk and the limits we
know are still in the extract. Honest
means that list is written down where you can read it. The
residual board is that listed mute story —
the LIBRARY_CARD plus muted chunk flags in the package — not a
separate board file. Desk coverage tools stay in the plant.
A mute is a stretch we took off the answer
path so the model does not treat it as fact — and so it does
not invent a “typical” clause, load, or number in the hole.
We call the whole stance residual-honest.
That is the mill. Not an overnight rewrite by a contractor,
and not “trust the PDF.” If we cannot produce an honest
package, there is no charge.
Why does a brick cost $10?
Note · KBMill · the job, not the page count
A brick on this door is $10, and only if the ZIP ships.
The price is for the job: one portable knowledge package you keep.
It is not a fee per page. It is not a person spending months
building a search system.
Public on-prem budgets are full of GPUs, API bills, and
“we’ll wire RAG.” They almost never price
the work that decides whether the local model can use the files
after the box is online.
Getting the words out of a PDF is a different job.
Staffing a retrieval build is a different job.
This door sells the package.
A hundred bricks is about a thousand dollars.
The usual alternatives are paying a model to read the same files
again on every question, or paying people for weeks or months
to build the pile by hand.
Public write-ups of an enterprise retrieval system often quote
tens to hundreds of thousands. That number is for standing up
and running the system. It is not the price of making one package.
$10 is a different bill, not a discount off theirs.
If you write the estimate for a client’s on-prem install,
hardware and “we’ll wire RAG” are probably already on the sheet.
Add the missing line next to them: corpus manufacture,
$10 a brick on this door, only if the ZIP ships.
The longer version of that program is
one domain at a time.
You get a ZIP you own — a handoffable artifact,
not a session upload. On a paid mill job, open it and expect:
craft_brief.md — what this brick is for, and what it is not
Listed mutes — what we took off the answer path
(LIBRARY_CARD + muted chunk flags — not hidden)
SECURITY_REPORT.md — what we scanned, and what we did not
MILL_RECEIPT.md — the $10 list price for your books
(not a tax invoice)
We do not host your files as a library. We do not start a
chatbot. Point your model at the ZIP.
A clean short manual and a scan-heavy pile are the same
$10. The scan can take about an hour. That is
time, not a different price. Take files out of the hopper and
the charge does not move. Pay is authorized at Go and
captured only when the ZIP exists. If we
cannot produce a usable brick, there is no charge. After the
download window we purge (72 hours).
This is not LlamaParse with a different name, not a
cents-per-page parser, and not a hosted RAG chat. Those
optimize for extraction speed. We optimize for a leave-behind
a person or a model can actually trust. When the residual
board still lists work, that is normal for real technical
piles — the board is part of the product. The public mill is
the factory door, not a promise of zero craft debt.
Look, don’t trust us. Public proof ZIPs on the
shelf carry SECURITY_REPORT.md and
craft_brief.md; muted junk stays listed on the card.
Same mill as the eval above. That is what $10 a brick is for.