Case study · Executive scheduling
Ush: turning an executive assistant's tacit judgement into a deterministic scheduling engine.
Ush turned the executive assistant's tacit judgement into weighted constraints and a deterministic score; the LLM only writes the explanation, and a human stays in the loop on every reply. Built 2025 to 2026.
The problem: knowledge in a head.
Executive assistants pick meeting slots using dozens of implicit factors: habits, travel times, meeting importance, the other party's constraints. That logic lives entirely in their heads and cannot be delegated or scaled, because the moment a second EA starts handling the same principal the heuristics stop being consistent, and the moment an engineer tries to write them down they vanish into prose.
The insight: scheduling is a constrained optimisation, not a workflow.
SignalsAPI had job boards to scrape. KIMA had CRMs to integrate. Ush had nothing of the sort: no existing process to automate, no system to integrate, only knowledge in a head that had to be made explicit and computable from scratch. That is why this is the purest demonstration of the method.
Once the EA's judgement is expressed as weighted parameters, "pick a slot" stops being a sequence of steps and becomes a different problem: given all the factors and their weights, find the objectively best option. Hard constraints filter, soft constraints rank, the LLM only generates the human-readable explanation. Every suggestion is debuggable and reproducible rather than a black box.
The architecture: deterministic score, LLM for explanations, drafts only.
Schematic — shape onlyThe web layer is Flask, with a separate background worker; PostgreSQL 16 backs sessions, a job queue, and storage, with no Redis on top. The calendar frontend is Tailwind plus vanilla ES6, drag-and-drop that snaps to time slots, served from Docker Compose on a single VPS behind nginx. The LLM layer is interchangeable adapters: OpenAI's gpt-5-mini is primary, with Gemini and Anthropic Claude wired in for benchmarking and cost control. Google Identity does the auth, Gmail reads the inbox and drafts replies, Calendar reads and writes "hold" events, Maps provides travel time between back-to-back meetings and rejects physically impossible slots.
Multi-tenant isolation is by construction: every query is scoped to an explicit user_id through a UserContext pattern, with no cross-tenant leakage. That is what separates the engine from a single-user tool, because several principals can be scheduled against the same deployment without their calendars ever meeting.
The send boundary is a product decision, not an oversight. Gmail OAuth scopes are gmail.readonly and gmail.compose, with no send scope; Ush drafts replies and never auto-sends. A human is in the loop on every outbound message.
The proof: speed, and what replaced what.
First beta in one month, genuinely usable at four. Scheduling round-trips reduced to a single interaction on average, the only hard outcome metric Ush has. The anecdote closes the case: the stakeholders arrived with UI mockups, and the shipped product replaced them entirely. The spec was wrong, and not building it was the value delivered.
The line under the work.
Architect & Sole Developer.
Ush: a deterministic scheduling engine built from an executive assistant's tacit judgement, with the LLM confined to explanations and a human kept in the loop on every reply. Multi-tenant isolation by construction. Flask, PostgreSQL, Docker, on a VPS. Built 2025 to 2026, as Architect & Sole Developer.