SiteVerdict — Office Docs to Markdown for AI (DOCX, PPTX, XLSX)
Pricing
Pay per event
SiteVerdict — Office Docs to Markdown for AI (DOCX, PPTX, XLSX)
Convert DOCX, PPTX, XLSX/XLS/CSV, ODT/ODS/ODP, EPUB and HTML files (URLs or key-value store) into clean Markdown with headings and tables kept, plus RAG chunks, sheet JSON, speaker notes and metadata. Zip-bomb safe, no LLM needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Aman Thakran
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Turn Word, PowerPoint, Excel, OpenDocument, EPUB and HTML files into clean, LLM-ready Markdown — with headings, lists and tables intact — plus ready-to-embed RAG chunks. Deterministic, no AI guessing, no data sent to an LLM.
Most "document to Markdown" tools flatten tables into a wall of text, lose slide order, ignore speaker notes or choke on spreadsheets. This Actor converts each format with a purpose-built parser:
| Format | What you get |
|---|---|
| DOCX (Word) | headings (H1–H6 from Word styles), lists, bold/italic, links, real Markdown tables, footnotes, image alt text; title/author from document properties |
| PPTX (PowerPoint) | ## Slide N: Title in presentation order, bullets with indent levels, tables, picture descriptions, speaker notes |
| XLSX / XLS / ODS / CSV | one Markdown table per sheet (formatted values, dates), hidden sheets skipped, optional rows as JSON keyed by header |
| ODT / ODP (LibreOffice) | headings, lists, tables, footnotes, links; slides + notes |
| EPUB | chapters in reading (spine) order, title/author/language, tables, image alt text |
| HTML | main content only (menus, footers, cookie banners removed) |
| Markdown / text | passed through and chunked |
Every document also gets word count, token estimate, SHA-256 hash, heading outline, heading-aware RAG chunks and an optional .md file in the key-value store.
Who it is for
- RAG and AI-agent builders loading policy documents, decks and spreadsheets into a knowledge base.
- Ops and compliance teams who need searchable Markdown copies of Word/Excel templates and policies.
- Developers who want a "file in, Markdown out" API without running LibreOffice or Pandoc.
Three typical jobs
- Policy library → knowledge base: 300 DOCX policies → Markdown + 512-token chunks → feed SiteVerdict Vector DB Loader (dataset mode).
- Sales decks → searchable notes: PPTX with speaker notes → one Markdown file per deck, slide by slide.
- Excel → JSON:
includeSheetJson: truegives each sheet's rows as JSON objects keyed by the header row.
Quick start
{"documentUrls": [{ "url": "https://assets.publishing.service.gov.uk/media/6644c166b7249a4c6e9d3558/School_music_development_plan_summary_template.docx" },{ "url": "https://assets.publishing.service.gov.uk/media/5fb41673d3bf7f63da090f11/Discount_Factors.xlsx" }]}
Files you uploaded yourself: put them in a key-value store and pass keyValueStoreId + keyValueStoreKeys.
Before / after
PowerPoint slide (title "Fares", a 2×2 table, a picture with alt text, speaker notes) becomes:
## Slide 2: Fares| Route | Fare || --- | --- || LHR-SYD | £2,100 |[Image: Map of routes]> **Speaker notes:** Mention the Sydney launch.
Output (one dataset item per document)
{"source": "https://assets.publishing.service.gov.uk/.../Discount_Factors.xlsx","status": "ok","format": "xlsx","title": null,"markdown": "## Sheet: Cover\n\n| Green Book Supplementary Guidance |\n| --- |\n| Discount Factors |\n...\n\n## Sheet: Standard Discount Factors\n\n| ... | Year | Discount <br>Rate | Discount <br>Factor |\n...","wordCount": 815,"tokenEstimate": 2006,"headings": [{ "level": 2, "text": "Sheet: Cover" }, { "level": 2, "text": "Sheet: Standard Discount Factors" }],"stats": { "tables": 3, "sheets": 3 },"sheets": [{ "name": "Cover", "rowCount": 11, "columnCount": 1, "truncated": false }],"chunkCount": 7,"chunks": [{ "chunkIndex": 0, "headingPath": ["Sheet: Cover"], "text": "Sheet: Cover\n\n## Sheet: Cover\n\n| Green Book Supplementary Guidance | ..." }],"markdownFileKey": "doc-0002-Discount_Factors.md","warnings": [],"charged": "document-converted"}
Other statuses (never charged): skipped_budget (your maximum total charge for the run did not cover this document; every unprocessed document still gets a row, and smaller documents are still tried after a large one that does not fit), unsupported (PDF, legacy .doc/.ppt, unknown), empty (no text — e.g. scanned images, use SiteVerdict Scanned Doc OCR), rejected (zip bomb / malformed archive), blocked (robots.txt, private address, 401/403), paywalled, error.
Pricing (pay per event)
| Event | Price | When |
|---|---|---|
document-converted | $0.003 | a document converted to non-empty Markdown |
large-document-converted | $0.01 | instead of the above when the output exceeds ~50,000 tokens (books, huge workbooks) |
Examples: 100 Word/PowerPoint files ≈ $0.30; 1,000 mixed office files ≈ $3; a 400-page EPUB ≈ $0.01. Failed, unsupported and empty files are free.
FAQ
Is any content sent to an AI model? No. Conversion is deterministic and local to the run.
PDFs? Not in this Actor. Text PDFs need a PDF extractor; scanned PDFs need OCR (SiteVerdict Scanned Doc OCR).
Formulas in Excel? You get the cell's displayed (formatted) value, not the formula.
Merged cells / complex layouts? A merged value is kept once, in its first (top-left) cell, and the cells it covers (across or down) become empty cells, so every column stays under its own header; DOCX results with merged cells or nested tables (output as text) say so in warnings; text boxes and SmartArt in Word are converted as text where the file stores it as text.
Can my agent call this? Yes — MCP tool convert_document_to_markdown (see MCP-TOOL.md).
Limits
- Max file size 50 MB by default (up to 200 MB), 1,000 documents per run, 100,000 rows per sheet, 20 million Markdown characters per document.
- Zip-bomb guards: max 20,000 archive entries, 400 MB uncompressed, suspicious compression ratios refused.
- Not supported: PDF, legacy binary .doc/.ppt, password-protected files, embedded OLE objects, charts (chart titles may appear as text), images (alt text only).
- Word lists are converted when the document uses Word numbering; manually typed bullets stay as typed.
Sources & compliance
- Your files: processed only for this run; nothing is kept beyond your run's storage. Documents fetched from URLs are downloaded with an honest User-Agent (
SiteVerdict/doc-to-markdown (+hello@webrevenuescan.com)), robots.txt respected, SSRF guard on every redirect, size and time limits. - Example documents in the prefill are Crown copyright, published on GOV.UK under the Open Government Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/ , checked 2026-10-11).
- Libraries (permissive only): mammoth (BSD-2-Clause), SheetJS Community Edition 0.20.3 (Apache-2.0, from cdn.sheetjs.com), JSZip (MIT option of its MIT/GPL dual licence), linkedom (ISC), turndown (MIT), @mozilla/readability (Apache-2.0).
- Personal data / UK GDPR: documents can contain personal data. You decide what you upload and remain the controller; the Actor does not search for or extract personal data specifically. Not legal advice.
Built by SiteVerdict (BharatFare Travel and Technologies Ltd, UK). Contact: hello@webrevenuescan.com.