Skip to content
Komsan Nipharat

Case study

AI Sweeper — email to booking

Reads freight emails and their Excel/PDF attachments, and turns them into structured bookings and containers with an LLM.

FIG.1AI
Role
Sole frontend developer; about a third of the backend
Stack
AngularNestJSBullMQOpenRouterMongoDBGitLab CI
Result
Bookings are reviewed instead of typed.

Problem

Operators re-keyed bookings from customer emails and spreadsheets with hidden columns, duplicate headers, and inconsistent formats.

What I owned

Sole frontend developer; about a third of the backend

What I built

  • Built the Angular review and export UI and rebuilt it as a real-data-first v2.
  • Built Gmail OAuth and per-user accounts, and hardened spreadsheet parsing.
  • Set up containerized deploys and GitLab CI.

System shape

NestJS 11 + BullMQ API runs extraction 'runs' through OpenRouter and grades them for accuracy, with A/B prompt arms. Angular 22 review grid for operators to correct and export.

What changed

Bookings are reviewed instead of typed.