← Back to FAQ

What File Formats Does 0xDoktor Support for Knowledge Base Ingestion?

Verified answer

Supported formats

| Format | Extension | Notes | |--------|-----------|-------| | PDF | .pdf | Text-layer PDFs only; scanned documents require OCR preprocessing | | Markdown | .md | Full CommonMark; front matter is stripped before indexing | | Plain text | .txt | UTF-8 encoding required | | Spreadsheets | .xlsx | Converted via MarkItDown; tabular data is flattened to prose | | Presentations | .pptx | Slide text extracted; images are ignored | | Web pages | URL | 0xDoktor fetches and strips HTML; JavaScript-rendered pages may not be fully captured | | Email files | .eml | Body text extracted; attachments are ignored |

How format detection works

0xDoktor uses magic bytes — the raw binary signature at the start of each file — to determine format, not the file extension. This means renaming a .pdf to .txt will not trick the system into processing it incorrectly. If the declared extension and the actual file type conflict, the magic bytes always win and the correct parser is used.

What makes a good knowledge base document?

Documents that work best have:

  • Clear, complete sentences — embedding models perform better on prose than on bullet points alone
  • One topic per document or section — retrieval is more precise when chunks are focused
  • Consistent terminology — use the same terms your users will ask about

Avoid uploading:

  • Scanned PDFs without a text layer (the system will index blank or garbled text)
  • Spreadsheets with mostly numeric data and no context
  • Heavily formatted files where the structure carries meaning that text extraction loses

CSV and structured data

CSV files are not directly supported for ingestion. The system treats null bytes in the first 256 bytes as a rejection signal. For tabular data, convert to Markdown or prose before uploading, or use the .xlsx path which applies MarkItDown conversion.

File size limits

Individual files are subject to a maximum size per upload. Large documents (e.g., long technical manuals) are automatically chunked during ingestion — you do not need to split them manually. The admin panel will display a warning if a file exceeds the allowed size.

See 0xDoktor in action — ask anything about this page: