Applicant tracking on Trello for a logistics recruiter workflow
Plenty of recruitment teams live in Trello, and replacing the board a team knows is how automation projects die. So this build makes Trello the front of a real applicant-tracking system: applications from every channel become cards automatically, and every card movement becomes reporting data.
Next.js · Supabase · Deno Edge Functions · OpenAI · Trello API
Ref 01 · The problem
The problem
- Applications arrive three ways — web forms, CV-Library alert emails, Indeed — and without automation, each one gets retyped into Trello by hand.
- CV-Library’s emails are semi-structured at best; extracting candidate details reliably is harder than it looks.
- Card movement holds the pipeline story — where candidates stall, what each recruiter handles — but Trello alone gives management no reporting on it.
Ref 02 · What we built
What we built
Every channel lands as a Trello card
A Supabase Postgres trigger turns each new application into a Trello card in the right list, tagged and deduplicated. Recruiters keep the board they know; the automation does the filing.
An AI parser for CV-Library email
A dedicated ingestion function — over a thousand lines handling CV-Library’s two distinct email formats — extracts candidate data using OpenAI, with deterministic fallbacks when the model’s answer doesn’t validate. Malformed emails degrade gracefully instead of vanishing.
Reporting built from card movement
A Trello webhook streams every card transition into an analytics database. A Next.js dashboard turns that into pipeline views, recruiter activity and wall-mounted TV displays — materialised views keep it fast.
Driver-utilisation compliance tooling
A separate module ingests weekly shift spreadsheets and tracks driver utilisation and presence against expectations — operational compliance surfaced automatically instead of discovered in month-end spreadsheet archaeology.
Ref 03 · Stack
Stack
- Next.js
- Supabase
- Deno Edge Functions
- OpenAI
- Trello API
Ref 04 · What it demonstrates
What it demonstrates
- Automation layered onto tools a team already uses — adoption without retraining
- LLM extraction with validation and fallbacks, treated as an unreliable component and engineered accordingly
- Event-driven reporting: the analytics are a by-product of work happening, not a separate data-entry chore
