Personal initiative at FedEx, Chicoutimi, approved and supported by my manager
Parcel Vision
The agent takes a photo of a parcel; the data lands in the subcontractor's spreadsheet. Built at FedEx, where three agents were retyping ~300 parcels a day.
−89%daily manual data entry, from ~3 h to ~20 min
- Role
- Creator. Problem framing, build, evaluation, deployment and user training
- Period
- 2025 – 2026
- Status
- In production
- Stack
- Python
- Streamlit
- Claude Vision API
- Qwen2.5-VL + LoRA
- EasyOCR
- PostgreSQL
- Docker
- Caddy
- VPS
Links
Request a live demoThe production app is password-protected. I'm happy to walk you through it live.
The problem
At FedEx in Chicoutimi, three agents retyped the details of about 300 parcels a day into the tables our subcontractors require: name, address, postal code, weight and dimensions. That was roughly three hours of manual data entry every day, with the typos that come with it.
What I built
A web app built around one gesture: the agent photographs the parcel.
- A vision model reads the printed label and the handwritten dimensions and weight, then extracts the tracking number, recipient, address, postal code, dimensions and weight.
- A validation screen shows the photo next to the extracted fields. The agent confirms or corrects each one; nothing leaves without a human check.
- One click exports the batch to Excel, in the exact format the subcontractors expect.
- Three interchangeable extraction methods: the Claude Vision API in production, a Qwen2.5-VL model I fine-tuned with LoRA, and a free OCR fallback.
How I chose the model
I measured before choosing. On 69 real labels, the Claude Vision API reached 91% field-level accuracy; my fine-tuned Qwen2.5-VL reached 29%. Claude handles the extraction in production, and my fine-tuned Qwen2.5-VL learns from its results to close the gap.
My role
I spotted the problem on the floor and brought it to my manager, who approved the project and supported it. I designed the interface, the extraction pipeline and the evaluation harness, deployed the app with Docker on a VPS behind HTTPS, and trained the agents to use it.
Result
- Daily manual data entry dropped from ~3 h to ~20 min, an 89% reduction.
- Transcription errors eliminated.
- Better parcel tracking.
Visuals
- PhotoThe agent photographs the parcel label.
- ExtractionClaude Vision API in production, with a fine-tuned Qwen2.5-VL and an OCR fallback.
- Human checkThe agent confirms or corrects each field.
- Excel exportOne click, in the subcontractors' format.
Streamlit app · PostgreSQL history · Docker on a VPS · HTTPS through Caddy

