Marvinmarvinjb.dev

LIVE AI SYSTEM · EXTRACTION AGENT

Turn unstructured invoices into validated data.

Upload a PDF or image of an invoice. The AI extracts the vendor, dates, totals, and line items, validates the result, and lets you ask questions about the document.

LIVEPUBLIC DEMO

01 · LIVE DEMO

Upload an invoice and see what the AI extracts

Upload a PDF, scanned PDF, JPG, or PNG. The system reads the document, extracts the invoice fields, validates the result, and lets you inspect the structured data or ask questions about the invoice.

  1. 01Upload invoice
  2. 02Extract data
  3. 03Review Table or JSON
  4. 04Ask questions
PDF · JPG · PNG / 5 MiB MAX

Drag and drop your invoice here.

PDF, scanned PDF, JPG, or PNG. One invoice at a time.

Upload → AI Extracts → Explore → Ask

01PDF & image inputAccepts PDF, JPG, and PNG invoices
02Validated structured dataExtracts invoice fields and checks the result
03Invoice Q&ALets users ask questions about the extracted document
04Production deployedFastAPI · Docker · Nginx

02 · HOW IT WORKS

The AI chooses the right way to read each invoice.

Text-based PDFs are read directly. Scanned PDFs and images are processed visually. Both paths produce the same validated invoice data.

INPUTPDF or image
DETECTDetect document type
READRead text or image
EXTRACTExtract invoice details
VALIDATEValidate the result
OUTPUTInvoice data + Q&A

03 · ENGINEERING DECISIONS

How the extraction stays consistent

The system can read different invoice formats, but every document is converted into the same validated invoice structure before it is returned.

01

Chooses the right reading method

Text PDFs are read directly, while scanned PDFs and images use the image-processing path.

02

Returns the same invoice format

Every supported document ends as the same structured invoice result.

03

AI returns structured data

The model returns specific invoice fields instead of free-form text.

04

Invoice Q&A is separate

Extracting the invoice and asking questions about it are handled as separate requests.

04 · RELIABILITY

What happens when something goes wrong

The system checks files before processing them, validates the AI result before showing it, and gives the user a clear error when something fails.

Checks files before upload

Empty, unsupported, or oversized files are rejected.

Checks AI results

Invalid extraction or Q&A responses are not shown as valid data.

Shows clear errors

Upload, extraction, timeout, network, and question failures stay visible to the user.

Tested for regressions

File handling, API behavior, document routing, and structured outputs are covered by tests.

05 · TECHNOLOGY STACK

FrontendReact · TypeScript
BackendPython · FastAPI · Pydantic · pypdf
AI & Document ProcessingOpenAI Structured Outputs · multimodal vision
DeploymentDocker · Nginx · Ubuntu VPS · HTTPS · health checks

INSPECT THE IMPLEMENTATION

See how it was built

Explore the API flow, validation, tests, and deployment setup behind the Extraction Agent.

View GitHub Repository