Demo workspace: only this browser can see your uploads. Built-in sample activity resets overnight.

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

  1. 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.

  2. Match and normalize

    Expeditor maps vendor rows into the same purchase-order, line, quantity, description, and date fields, even when vendor columns differ.

  3. 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.

  4. 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:

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.