Skip to content
clusterknot
Knot Labs · DocKnot · Local LLM

Documents in. Structured data out.

Document OCR and structured data extraction on a local LLM. Invoices go in, validated JSON comes out, and no data leaves your network.

Book a demo →See the pipeline
  • On-premise
  • No cloud AI credits
  • Learns from corrections
\\\\finance\\vendorA\\2026\\INV-0418.pdfINGEST
INGEST
ORIENT
OCR
CORRECT
EXTRACT
SAVED
TAX INVOICENorthwind Logistics Pvt Ltd
GSTIN 29ABCDE1234F1Z5
Inv INV-0418 · 12 Sep 2026
Freight · 9967 · NILHandling · 9967 · NIL
TOTAL₹8,500.00
{
"vendor_name": "Northwind Logistics",
"invoice_no": "INV-0418",
"invoice_date": "2026-09-12",
"total": 8500.00,
"charge_type": "Exempted",
}
Queue 14 · ETA 2m 10sLocal LLM · 0 API calls · 2 rules applied
1.5–3.5s
Per page, vision OCR on a single GPU
≥98%
Field accuracy on vendor invoices with feedback rules on
0
Source files changed or deleted
0
Cloud LLM credits, tokens or API calls needed
Local LLM · No credits

Your documents never meet a big-tech LLM.

OCR and extraction both run on models installed on your own hardware. You don't need an OpenAI, Google or Anthropic account, and the cost per page doesn't climb as volumes grow.

NO CREDITS

Zero per-page or per-token fees

No API keys to top up and no usage bill at month end. Process ten invoices or ten million on the same server.

PRIVATE BY DESIGN

Nothing leaves your network

Invoices, GSTINs, bank details and vendor data stay inside your firewall. It works on air-gapped servers too.

YOUR CHOICE OF MODEL

Open models, swapped freely

Qwen, Llama and similar models through vLLM, Ollama or LM Studio. Change the model without changing the pipeline.

PREDICTABLE

No rate limits, no outages elsewhere

Throughput depends on your GPU, not on a provider’s quota, pricing change or downtime.

Cloud LLM extraction— Pay per page or per token, forever— Every document sent to a third-party API— Rate limits and quota caps at month end— Costs rise with every new vendor and branch
DocKnot, local LLM✓ One server, no usage fees✓ Documents stay on your hardware✓ As fast as your GPU allows, all day✓ Cost stays flat as volumes grow
Ways in

Four ways in. One queue.

Documents arrive where they already land today. DocKnot picks them up, checks each file has finished writing, and skips anything it has already processed.

NETWORK SHARES

SMB / CIFS file servers

Authenticated sessions with Active Directory. Recursive scans at any folder depth, every 10 seconds by default.

LOCAL FOLDERS

Watched directories

Register a folder from the file explorer and it is monitored from then on. Output lands in a matching folder tree.

EMAIL

IMAP and Microsoft Graph

Polls several mailboxes, filters by subject, saves invoice attachments and marks each email so nothing is ingested twice.

UPLOAD & API

Web upload and REST

Drop files in the dashboard or post them from another system with a scoped API key.

The pipeline

From a scanned page to a record your ERP can post.

Each document moves through the same six stages. The dashboard shows which stage it is in, its place in the queue and how long is left.

  1. 01

    Ingest

    Waits until each file stops changing, then hashes it with SHA-256. Unchanged files are skipped; edited files re-queue on their own.

  2. 02

    Orient

    Checks every page at 0°, 90°, 180° and 270°, and falls back to multi-angle scoring when confidence is low.

  3. 03

    Read

    Vision OCR returns markdown and rebuilds tables, including merged cells, as proper HTML tables.

  4. 04

    Correct

    Your learned regex rules fix known OCR slips before the text reaches the LLM.

  5. 05

    Extract

    A local LLM on your server maps the text to a strict JSON schema. It only does arithmetic when the operands are printed on the page.

  6. 06

    Deliver

    JSON is saved to the database and to an output folder that mirrors the source tree, and is available over the API.

Built for finance documents

Invoices, receipts and bills of lading, down to the line item.

The standard schema covers the fields Indian GST invoices need. Exempt supplies are read correctly: when a page shows NIL tax or cites an exemption notification, the line is marked non-taxable, whatever the column header says.

Vendor
vendor_name, vendor_address, vendor_gstin, vendor_pan, vendor_state, is_registered
Client
client_name, client_gstin
Invoice
invoice_no, invoice_type, invoice_date, due_date, place_of_supply
Totals
currency, sub_total, tax_total, total, charge_type, tds_rate, tds_amount
Line items
description, qty, unit_price, amount, hsn, tax_rate, t_nt, cgst, sgst, igst
OUTPUT · INV-0418.JSONSCHEMA VALID
{
  "vendor_name": "Northwind Logistics Pvt Ltd",
  "vendor_gstin": "29ABCDE1234F1Z5",
  "invoice_no": "INV-0418",
  "invoice_date": "2026-09-12",
  "place_of_supply": "Karnataka",
  "currency": "INR",
  "sub_total": 8500.00,
  "tax_total": 0.00,
  "total": 8500.00,
  "charge_type": "Exempted",
  "line_items": [{ "description": "Freight charges", "hsn": "9967", "amount": 8500.00, "t_nt": "NT" }]
}
Learns from every correction

Fix it once. It stays fixed.

When someone corrects an extraction in the review screen, DocKnot keeps the before and after, and turns the fix into a rule for every document that follows.

Layer 1 · Pattern rules

Known OCR slips, fixed before extraction.

Systematic misreads, such as the letter O read as zero in a PAN, become fast regex rules that run on the OCR text.

− vendor_pan: "ABCPO1234K"
+ vendor_pan: "ABCP01234K"
Layer 2 · Prompt rules

Judgement calls, taught with examples.

Semantic fixes, such as keeping remarks in the narration, become instructions and verified examples added to the LLM prompt on later runs.

“Do not omit remarks in narration.”ACTIVE · PRIORITY 2 · APPLIED 318 TIMES
Rule studio

Admins stay in charge of what it learns.

A side-by-side diff of the original and corrected JSON, with one click to generate a rule. Turn rules on or off, reorder, edit or delete them.

Built to run unattended

Keeps going through restarts, dropped shares and bad scans.

Live position and time left

A first-in, first-out queue with a rolling-average ETA for every document and the whole batch.

Nothing lost on restart

After a power cut or container restart, interrupted and queued documents resume from the database.

Three attempts before a flag

Failed documents retry automatically, then show as failed with the reason, ready for a manual retry.

Dropped shares, handled

If an SMB connection drops, DocKnot logs it and carries on at the next scan.

Throughput at a glance

Pages per minute, latency per page, queue depth and failure rate, with the source page next to its JSON.

Your originals stay put

Source files are never modified or deleted. Output is written to a separate, mirrored folder tree.

Security & access

Three roles. Scoped keys. Every path checked.

Admin
Users, API keys, watched folders, system settings and rule approvals.
Operator
Start and stop monitors, retry, upload, browse file servers and submit corrections.
Viewer / external client
Read-only access to extracted JSON, batch status and previews.
  • TLS 1.3
  • JWT and X-API-Key
  • Scopes: batch, fileserver, feedback
  • Path traversal blocked
  • Secrets in environment, never in logs
Deployment

On your own server, on your terms.

Run it next to your file servers. Use a GPU for speed or a CPU when that is what you have, and keep the LLM on the same box. No token bills, no rate limits, no data leaving the building.

Hardware
GPU: 8+ cores, 32 GB RAM, NVIDIA 16 GB+ VRAM · CPU: 8 cores, 16 GB RAM
Operating system
Ubuntu 22.04, Debian 12, RHEL 9, Windows Server 2022
Database
PostgreSQL for production, SQLite for pilots
LLM
Local by default: open models such as Qwen and Llama through vLLM, Ollama or LM Studio. A hosted provider is optional, never required
Extend
Add S3, Azure Blob or SFTP sources through the same connector interface
FAQ

DocKnot, answered.

DocKnot is a Knot Labs document AI platform. It ingests PDFs and images from network shares, folders and email, runs vision OCR that keeps tables intact, and extracts structured JSON with a local LLM.

Less typing. More closing the books.

Send us a folder of your own invoices. We'll run them through DocKnot on a local LLM and show you the JSON, without a single cloud API call.