For Japanese business documents, in your own environment

Paragraphs.
Tables. Diagrams.
Kept whole.

Drop in PDFs, scans and drawings. indx looks at every page first, reads the easy ones from their text layer and sends only the hard ones to OCR or a vision model. Your search and agents get paragraphs, tables and diagrams that keep their page and section. You never pick a parser.

Not lines.
Blocks that mean something.

An agent cannot answer from half a sentence. It needs the whole clause, the table row it points to, and the step that comes before an inspection.

What makes indx different

Built for Japanese documents.

Notices with annexes, ruled tables, 工程系統図, Shift_JIS spreadsheets and scanned attachments. Japanese and English taxonomies and entity extraction ship with it.

Yours, and better with every label.

You define the document types and fields. A reviewer's correction becomes a label, labels score candidate routes on your own documents, and the winner becomes your router's next version. Engineers work alongside you from the first interview to rollout.

Fast and cheap by default.

Most pages already have a text layer and are read from it on CPU. OCR and vision models run only on the pages that need them, and you see the route before you pay for it.

Runs where your documents are.

One image, on your own servers or in your AWS, Azure or Google Cloud account. Text layers, OCR, drawings and embeddings run on CPU, and no document leaves unless you switch on a hosted model.

No black box, no lock-in.

Built on open-source engines. Every reader, chunker and model is a plugin you can replace, and every route is a plan you can read.

Every block has its source.

Page, box, section and the reader that produced it, so an answer can always be checked on the page.

See the benchmarks ↗

01 / One foundation

From your documents to your context layer, and back.

Each page goes the way that reads it best, into spaces and labels of your own, and out to your search, your agents and your apps. Every answer a person approves becomes a label, and labels are what your router's next version is chosen on.

YOUR DOCUMENTSYOUR FOUNDATIONDOWNSTREAM, CHOSEN PER PAGEPDF · nativePDF · scannedPPTX · 工程系統図DXF drawingXLSX / CSVYour embedding spaceswhat “similar” means to youYour types, labels, featuresyour document types and fieldsYour routing rulessignatures and your own rulesParser / readerEmbedding spaceComparisonRelationshipsMetadataSearchAgentsAppsrouterlearned from your datainspectable before it runsYourcontextlayerapproved outputs → labels → a better router

What indx is built to do. See the roadmap ↗

02 / You drop the files

indx reads every page first.

Before anything expensive runs, indx scans each page and picks the reader it needs: the text layer when there is one, OCR when the page is a scan, a diagram parser when it recognizes a chart. Nobody configures this per file.

28 pages · routed by indx
2 slides · routed by indx
Text layer native-extractionScan, read by generic-ocrChart recognized process-chart-parser
03 / A closer look

Hover the document.

Three pages indx received. Each one shows how indx chose to read it. Move over any block on the page and the output is what your AI receives for it.

On the table, each cell is its own target. On the chart, try a symbol or a connecting line, then the lists in the output.

Target output01 / 03
indx scanned page 22text layer found→read with native-extractionfallbacks generic-ocr → generic-vlm → manual-review
Page 22 of the notice: an annex with a heading, a long paragraph, a two-column table and the start of the next clause
↳ STRUCTURED OUTPUTparagraph
別紙第1 認定の基準1

1 精神保健及び精神障害者福祉に関する法律(昭和25年法律第123号。以下「精神保健福祉法」という。)第31条の費用徴収額、麻薬及び向精神薬取締法(昭和28年法律第14号。以下「麻薬取締法」という。)第59条の4の費用徴収額及び感染症の予防及び感染症の患者に対する医療に関する法律(平成10年法律第114号。以下「感染症法」という。)第37条第2項の自己負担額は、月額によって決定するものとし、その額は、当該患者並びにその配偶者及び当該患者と生計を一にする絶対的扶養義務者(民法(明治29年法律第89号)第877条第1項の直系血族及び兄弟姉妹をいう。以下同じ。)について精神保健福祉法第29条第1項若しくは第29条の2第1項の規定による入院、麻薬取締法第58条の8第1項の規定による入院又は感染症法第19条、第20条(これらの規定を同法第26条において準用する場合を含む。)若しくは第46条の規定による入院のあった月の属する年度(当該入院のあった月が4月から6月までの場合にあっては、前年度)分の地方税法(昭和25年法律第226号)の規定による市町村民税(同法の規定による特別区民税を含む。以下同じ。)の同法第292条第1項第2号に掲げる所得割(同法第328条の規定によって課する所得割を除く。)(以下「所得割」という。)の額を合算した額を基礎として、次表により認定した額とすること。

defines
精神保健福祉法 = 精神保健及び精神障害者福祉に関する法律(昭和25年法律第123号)
defines
麻薬取締法 = 麻薬及び向精神薬取締法(昭和28年法律第14号)
defines
感染症法 = 感染症の予防及び感染症の患者に対する医療に関する法律(平成10年法律第114号)
defines
所得割 = 地方税法第292条第1項第2号の所得割
refers to
次表 → p22-table
{
  "id": "page:22/p22-para-1",
  "kind": "paragraph",
  "page": 22,
  "bbox": [0.14, 0.227, 0.858, 0.551],
  "section": [
    "別紙",
    "第1 認定の基準",
    "1"
  ],
  "text": "1 精神保健及び精神障害者福祉に関する法律(昭和25年法律第123号。以下「精神保健福祉法」という。)第31条の費用徴収額、麻薬及び向精神薬取締法(昭和28年法律第14号。以下「麻薬取締法」という。)第59条の4の費用徴収額及び感染症の予防及び感染症の患者に対する医療に関する法律(平成10年法律第114号。以下「感染症法」という。)第37条第2項の自己負担額は、月額によって決定するものとし、その額は、当該患者並びにその配偶者及び当該患者と生計を一にする絶対的扶養義務者(民法(明治29年法律第89号)第877条第1項の直系血族及び兄弟姉妹をいう。以下同じ。)について精神保健福祉法第29条第1項若しくは第29条の2第1項の規定による入院、麻薬取締法第58条の8第1項の規定による入院又は感染症法第19条、第20条(これらの規定を同法第26条において準用する場合を含む。)若しくは第46条の規定による入院のあった月の属する年度(当該入院のあった月が4月から6月までの場合にあっては、前年度)分の地方税法(昭和25年法律第226号)の規定による市町村民税(同法の規定による特別区民税を含む。以下同じ。)の同法第292条第1項第2号に掲げる所得割(同法第328条の規定によって課する所得割を除く。)(以下「所得割」という。)の額を合算した額を基礎として、次表により認定した額とすること。",
  "defined_terms": [
    {
      "term": "精神保健福祉法",
      "means": "精神保健及び精神障害者福祉に関する法律(昭和25年法律第123号)"
    },
    {
      "term": "麻薬取締法",
      "means": "麻薬及び向精神薬取締法(昭和28年法律第14号)"
    },
    {
      "term": "感染症法",
      "means": "感染症の予防及び感染症の患者に対する医療に関する法律(平成10年法律第114号)"
    },
    {
      "term": "所得割",
      "means": "地方税法第292条第1項第2号の所得割"
    }
  ],
  "references": [
    {
      "text": "次表",
      "target": "p22-table"
    }
  ],
  "provenance": {
    "reader": "native-extraction",
    "device": "cpu"
  }
}
page 22 · routed by indx to native-extraction
indx scanned page 5no text layer, a scan→read with generic-ocrfallbacks generic-vlm → manual-review
Page 5 of the notice: a scanned page of numbered clauses with sub-items ア to カ
↳ STRUCTURED OUTPUTparagraph
…2 公費負担の申請等(2)イ

イ 患者の病状等やむを得ない事由により、当該患者等が申請書を作成することができない場合には、勧告保健所又は感染症指定医療機関が申請書の作成を代行することができること。

refers to
勧告保健所 → p5-a
refers to
当該患者等 → p5-a
lines joined
3
{
  "id": "page:5/p5-i",
  "kind": "paragraph",
  "page": 5,
  "bbox": [0.148, 0.372, 0.899, 0.44],
  "section": [
    "…",
    "2 公費負担の申請等",
    "(2)",
    "イ"
  ],
  "text": "イ 患者の病状等やむを得ない事由により、当該患者等が申請書を作成することができない場合には、勧告保健所又は感染症指定医療機関が申請書の作成を代行することができること。",
  "references": [
    {
      "text": "勧告保健所",
      "target": "p5-a"
    },
    {
      "text": "当該患者等",
      "target": "p5-a"
    }
  ],
  "provenance": {
    "reader": "generic-ocr",
    "device": "cpu",
    "ocr": {
      "lines": 3
    }
  }
}
page 5 · routed by indx to generic-ocr
indx scanned slide 2process-chart signature: connected, labelled symbols→read with process-chart-parserfallbacks office-extraction → manual-review
3.工程系統図全体概略巻き線含侵絶縁フィルムフィルム巻検査コイルS/Aグループ内工程設備含侵真空含浸機
↳ STRUCTURED OUTPUTdiagram
3.工程系統図
巻き線含侵絶縁フィルムフィルム巻検査コイルS/A
  • ▽ 巻き線material
  • ○ 含侵operation
  • ▽ 絶縁フィルムmaterial
  • ○ フィルム巻operation
  • ◇ 検査inspection
  • ▽▽ コイルS/Aassembly
  • 巻き線 → 含侵flow
  • 含侵 → フィルム巻flow
  • 絶縁フィルム → フィルム巻flow
  • フィルム巻 → 検査flow
  • 検査 → コイルS/Aflow
  • コイルS/A → 含侵return
{
  "id": "page:2/diagram",
  "kind": "diagram",
  "page": 2,
  "bbox": [0.031, 0.136, 0.672, 0.968],
  "section": [
    "3.工程系統図"
  ],
  "references": [
    {
      "text": "含侵 → 真空含浸機",
      "target": "legend"
    }
  ],
  "diagram_type": "process_chart",
  "nodes": [
    {
      "id": "n1",
      "label": "巻き線",
      "symbol": "triangle",
      "role": "material"
    },
    {
      "id": "n2",
      "label": "含侵",
      "symbol": "circle",
      "role": "operation",
      "equipment": "真空含浸機"
    },
    {
      "id": "n3",
      "label": "絶縁フィルム",
      "symbol": "triangle",
      "role": "material"
    },
    {
      "id": "n4",
      "label": "フィルム巻",
      "symbol": "circle",
      "role": "operation"
    },
    {
      "id": "n5",
      "label": "検査",
      "symbol": "diamond",
      "role": "inspection"
    },
    {
      "id": "n6",
      "label": "コイルS/A",
      "symbol": "double_triangle",
      "role": "assembly"
    }
  ],
  "edges": [
    {
      "id": "e1",
      "from": "n1",
      "to": "n2",
      "kind": "flow"
    },
    {
      "id": "e2",
      "from": "n2",
      "to": "n4",
      "kind": "flow"
    },
    {
      "id": "e3",
      "from": "n3",
      "to": "n4",
      "kind": "flow"
    },
    {
      "id": "e4",
      "from": "n4",
      "to": "n5",
      "kind": "flow"
    },
    {
      "id": "e5",
      "from": "n5",
      "to": "n6",
      "kind": "flow"
    },
    {
      "id": "e6",
      "from": "n6",
      "to": "n2",
      "kind": "return"
    }
  ],
  "exports": [
    "drawio",
    "mermaid"
  ],
  "provenance": {
    "reader": "process-chart-parser",
    "device": "cpu"
  }
}
page 2 · routed by indx to process-chart-parser
02 / Hover a blockPages and text from the sample files; chunk structure is the target output ↗
04 / From source to structure

There is a method
behind each block.

indx looks at every page before it reads it, then keeps the document's own shape in what it hands over.

01 /

Bring it in.

PDF, Office, CSV, email, DXF drawings and scans, from a file share, S3 or a URL.

02 /

Look first.

A cheap preflight picks the reader for each page: text layer, OCR or a drawing parser.

03 /

Read the layout.

Lines are joined into paragraphs, cells into tables, shapes and connectors into diagrams.

04 /

Add meaning.

Sections, defined terms, cross-references, entities and embeddings.

05 /

Use it again.

JSON with page, box, section and reader on every block, for search and agents.

05 / Next to what you already use

Why not a parser, an NER model or a vector DB?

Categories, not products. indx does not replace these tools: it runs them as methods and chooses between them per page.

indxDocument parser / IDPNER / extraction modelRAG / vector DB
Japanese business documentsBuilt for themGeneric layoutsPer-language modelModel default
OCR and vision models only where neededChosen per pageEvery page, one pipeline——
Your own document types and fieldsYou define themVendor catalogueModel labels—
A different method per document typeA router per jobFixed pipelineOne modelOne chunker
See the route before it runsA plan for every page———
Improves with every correctionLabels score the next versionVendor releasesRetraining project—
Runs in your environmentYour servers or your cloudUsually SaaSVariesVaries
Replace any partEvery part is a pluginVendor's enginesOne modelVaries
Start with what you already have

Your documents have more structure than your search sees.

Find out in the playground ↗

Bring a document. Hover the result.