How it works
Vendor files in. One open-order list out.
Expeditor combines the open-order spreadsheets vendors already send into one consistent list. It handles the repetitive reading and comparison while routing missing or invalid values and unmatched vendors to a buyer.
From vendor files to one open-order list
Read the file
Upload a vendor’s open-order spreadsheet in the format they already use. Expeditor reads the usable rows and columns without requiring a new vendor template.
Match and normalize
Expeditor maps vendor rows into the same purchase-order, line, quantity, description, and date fields, even when vendor columns differ.
Validate the changes
Rows that meet the validation rules move forward. Missing or invalid values and unmatched vendors wait for review instead of being silently guessed.
Commit or hold
Rows that pass are added to the open-order list. Held rows wait in the Review Queue, where the buyer can correct, accept, or reject them. Source and decision history remain attached to the work.
Why the buyer stays in the loop
Purchasing data is repetitive, but it still requires judgment. If a vendor leaves a date blank, that does not automatically mean the previous date should be erased. A similar description may still refer to a different order. Expeditor handles the routine comparison while leaving unclear cases for the buyer.
Automation handles the routine path. The buyer decides what happens to held rows.
Behind the build
I built Expeditor around a purchasing problem I know firsthand: vendor updates arrive in different formats, and missing or invalid information still needs a buyer’s judgment.
Three rules shaped the product:
- AI reads; validation rules route; buyers decide held rows. Routine rows can move forward, while exceptions remain visible for a person to resolve.
- Uncertainty stays visible. Missing and invalid values wait for review instead of being turned into confident answers.
- History is preserved. Earlier promises are not overwritten. Date changes become revisions, and resolved review rows remain in history.
I directed AI tools during the build. My purchasing experience defined the workflow, product rules, and safeguards.
Technical details
- The extraction contract and validation rules are separate from the configured AI provider.
- The application uses hosted PostgreSQL or embedded PGlite locally.
- Exports use a stable canonical CSV column order for spreadsheet and import workflows.
- Custom columns rescan recent stored spreadsheet text and write no value when the concept is not found.
Expeditor is in development. Its bundled sample data is synthetic.