Turn any document into verified, AI-ready Markdown.

Build a pipeline once, run it on every document, and get clean, token-efficient Markdown with every change traced. Nothing silently dropped, nothing invented.

report.pdf · raw extraction
QUARTERLY REPORT 2025 | CONFIDENTIAL
Revenue grew 12% over the pri-
or year, driven by expansion
in the services segment.
Page 47 of 212
QUARTERLY REPORT 2025 | CONFIDENTIAL
The board attributes this to
pricing changes made in Q2.
Page 48 of 212
report.md · after the pipeline
## Operating results
Revenue grew 12% over the prior
year, driven by expansion in the
services segment. The board
attributes this to pricing
changes made in Q2.
 
provenance: p.47-48, built-in parser

Headers, footers and page numbers removed. Hyphenation repaired, page-broken paragraphs merged, headings detected. Every single change is logged in the run report.

Document text arrives broken. Raw extraction is littered with repeated headers, footers, page numbers, split words and shattered paragraphs. Your model reads all of it, on every call.
Junk costs tokens and accuracy. Page furniture pollutes embeddings, splits sentences across RAG chunks and buries the answer. Clean Markdown retrieves better and costs less on every query.
One-shot converters won't show their work. They drop content, reorder text and occasionally invent it, with no record of any of it. If you can't verify the output, you can't ship it to production.
1 Upload

Drop a document into the builder. It is processed in an ephemeral working directory and discarded when the run finishes. Never stored.

2 Compose

Drag steps from the action catalog — parse, clean, structure, transform, verify, export — or describe what you need and let the AI assistant draft the pipeline for you. Tune each step, then save the pipeline to reuse on the next hundred documents.

3 Run & export

Every run produces the Markdown plus a full trace: what each step saw, what it changed, and why. Download the .md or fetch it over the API.

Drag steps into place, tune each one, and save the pipeline to reuse on the next document. No code. This is the actual builder screen, with the real step catalog.

1 Parse (built-in) Parse
2 Detect lists Structure
3 Clean up Clean
4 Detect structure Structure
5 Redact PII Transform
6 Export Markdown Output
+ add step from the catalog

The Markdown is only half the product. The other half is proof. Each run records what every step did, so you can verify the output instead of trusting it.

markdown4ai · run trace ─────────────────────────────
parse.builtin 12 pages extracted
structure.lists 7 lists detected
clean.passes 38 changes
structure.layout headings normalized
transform.pii_redact 6 values masked
export.markdown document.md ready
tab inspect step · ctrl-d download .md
Full provenance. Each Markdown block records the page and region it came from, down to coordinates.
Per-step diffs. Inspect any step's input, output and line-by-line changes. See exactly what changed and why.
Deterministic by design. Same pipeline, same document, same result. Every time. No hidden randomness in the extraction path.

These are the steps that ship today. Each one does a single job and reports what it did to your document.

Parse (built-in) Parse
parse.builtin

Extract text verbatim from PDF, EPUB, HTML, TXT/LOG or CSV. Free, local, and coordinate-level provenance for PDF.

OCR scanned pages Clean
ocr.recognize

Recognise text on scanned pages, or just the pages you pick, and merge it in.

Clean up Clean
clean.passes

Remove repeating headers, footers and page numbers. Reflow paragraphs, repair hyphenation. Every fix is logged.

Repair split tables Clean
clean.table-repair

Re-join tables split across a page break. Rows are merged verbatim, every merge logged.

Detect lists Structure
structure.lists

Detect bullet and numbered list items from the raw layout, before reflow.

Detect structure Structure
structure.layout

Detect headings and merge page-broken paragraphs from layout signals.

Structure (AI) Structure
structure.llm

An AI classifier detects headings and structure by meaning, falling back to the free layout-based pass if it's unavailable. BYOK.

Block anchors Structure
structure.anchors

Stamp every block with a stable, content-derived anchor, so citations and re-runs point at the same block even as the document changes around it.

Transform rules Transform
transform.rules

Explicit, logged edits: find and replace, redact, delete lines, drop pages, set metadata. The one place text changes by design.

Redact PII Transform
transform.pii_redact

Auto-detect and mask emails, phone numbers, IP addresses and ID-like numbers. No regex authoring required.

Relevance filter Transform
transform.relevance-filter

Keep only sections matching a query — free, offline word matching. Every dropped block is logged.

Relevance filter (AI) Transform
transform.relevance-filter-llm

An AI classifier judges relevance by meaning, not just words. Uncertain sections are kept, every dropped block is logged. BYOK.

AI Check Verify
verify.ai-check

An LLM compares each page image against the output Markdown and reports findings. It reviews, never rewrites. BYOK.

Numbers check Verify
verify.numbers

The free, deterministic counterpart to AI Check: audits that every number in the source survives into the output, without exposing the digits themselves.

Assertions Verify
verify.assertions

Fail the run unless the output meets your checks: required/forbidden patterns, minimum headings or length, no empty or un-OCR'd pages.

PII Scan Verify
verify.pii-scan

Audit the output for PII that redaction should have masked. Reports counts per page, never the text itself.

Export Markdown Output
export.markdown

Render the document as Markdown with YAML frontmatter.

Export JSONL chunks Output
export.jsonl

Token-sized, overlap-aware chunks, one JSON record per line — heading path, pages and provenance included. RAG-ready.

Export tables Output
export.tables

Export every table as structured JSON — header, rows and per-table provenance — for downstream data work that Markdown tables can't support.

On the roadmap: DOCX parsing, external parser connectors (LlamaParse, Azure DI, Mistral OCR), and a sandboxed JS Inline step for custom logic.

Stop paying for page furniture.

A repeated header, footer and page number cost roughly 15 tokens per page. On a 200-page document that is noise your model re-reads on every single call.

~3,000 tokens of pure junk per 200-page document, before counting broken hyphenation and shattered paragraphs. The clean-up pass removes it once, and logs every removal.

Redact PII before the model ever sees it.

The PII step masks emails, phone numbers and ID-like numbers inside the pipeline, before export. Every redaction is explicit and listed in the run report, so compliance can see exactly what was masked, and where.

masked, and logged Deterministic masking you can rerun on the next thousand documents. No prompt, no maybe.

Your documents are never stored.

Files are processed in an ephemeral working directory and discarded when the run finishes. Only the trace you choose to keep persists, and you can delete it any time.

Your AI keys stay yours.

AI-assisted steps are bring-your-own-key. Keys are sealed at rest with AES-256-GCM, decrypted only in-process to run your pipeline, and never logged.

Every saved pipeline is callable by id on the versioned /v1 API. Build and test it in the UI, then run it headlessly from CI, a cron job, or your ingestion service.

curl -X POST "https://markdown4ai.com/api/v1/pipelines/YOUR_PIPELINE_ID/run" \
  -H "Authorization: Bearer $M4AI_API_KEY" \
  -F "file=@contract.pdf"
{ "run_id": "…", "markdown": "…", "warnings": [] }
read the API reference

Every account gets free credits each month. When you need more, top up with a pay-as-you-go pack. Credits are charged per page, and a failed run is never billed.

Starter 500 credits A$9 start free
Pro 2,000 credits A$29 start free
Bulk 5,000 credits A$59 start free

prices in AUD, GST inclusive, powered by Stripe

How is this different from a one-shot document converter?
A converter gives you output. markdown4ai gives you output plus proof: a per-step trace, line diffs, and provenance for every block. And because pipelines are saved and deterministic, the next hundred documents get exactly the same treatment.
What formats can I convert?
PDF, EPUB, HTML, TXT/LOG and CSV today, built in — DOCX and external connectors (LlamaParse, Azure DI, Mistral OCR) are next. The engine is built to extend to new parsers without changing your pipelines.
Do you store my files?
No. Uploads are processed in an ephemeral working directory and discarded when the run finishes. Only the run trace persists, and only if you keep it. You can delete it any time.
What's a credit?
Credits are how runs are metered: you're charged per page of the document you convert. New accounts get free credits every month; top up with a pack when you need more. A failed run is never billed.
Can I use my own AI keys?
Yes. AI-assisted steps use your own provider API keys (BYOK). Keys are sealed at rest with AES-256-GCM and only decrypted to run your pipeline.

Your documents deserve a pipeline, not a converter.

Sign in with a magic link, drop in a document, and run your first pipeline in minutes. Free credits included, no card required.

start free