Jeremy Neely Text Jeremy

Documents & OCR · Prototype

OCR Review Studio

Upload a scan, check OCR line by line, tune it, export Markdown.

Built for: Someone digitizing a scanned document, such as a handwritten parts list

A scanned parts list with confidence-colored boxes above the extracted text (sample data).
A scanned parts list with confidence-colored boxes above the extracted text (sample data).

The problem

OCR output is only useful if someone can see where it went wrong, but most tools hand back a plain text dump. Tuning OCR for faded scans, phone photos or handwriting is guesswork.

What I built

I built a local Flask web app that runs PaddleOCR on an uploaded document and shows the page and the extracted text linked by position, with confidence-colored boxes. A short document clue seeds the settings, and the accepted result exports as structured Markdown.

How it works

  1. Upload a PDF or image and add an optional clue.
  2. The clue sets the first-pass OCR settings.
  3. Review the page and the text side by side.
  4. Tune any of 22 settings and re-run.
  5. Fix characters inline and export Markdown.

Built with

  • Python
  • Flask 3
  • PaddleOCR
  • PyMuPDF
  • Pillow
  • JavaScript

More of Jeremy's work