## Problem
Contracts arrive as scanned PDFs in every layout imaginable. The product has to know where each party signs, initials and dates. A vision model alone cannot tell which box belongs to which party; a language model alone cannot see the page.
## How it is built
- ›Propose: a small int8-quantised object detector, exported to ONNX, runs on CPU and returns candidate boxes for a page in well under a second.
- ›Select: Claude sees the candidates together with the document's text and structure and decides which are real signature fields, whose they are, and what kind.
- ›Measure first: a human-reviewed evaluation set of hundreds of documents and thousands of boxes existed before the pipeline did. On its first run it exposed a coordinate-transform bug that had silently placed a large share of candidates off the page. No one would have seen that by eyeballing outputs.
- ›Every alternative got the same treatment: document parsers, detection vendors and placement models were benchmarked head to head on the same set before any of them was adopted.
## What I learned
- ›Build the measuring stick before the thing you measure. It turned vendor debates into a table, and it now guards every model swap.
- ›Split the job along the models' strengths. Cheap perception plus expensive reasoning beat either one doing everything.