Problem
Before the open, someone had to go through overnight markets, filings and newsflow to decide which few themes were worth watching that day — by hand.
Decisions
Generation and delivery are split: a mainland server builds the brief on fixed runs, and the cloud side only serves the result to the app. Both sides share one data contract, so a field change ships to both at once. Every user-facing line passes a compliance check — no target prices, no entry or exit timing, no return figures.
Outcome
On trading days the full brief lands at 08:50 and a pre-open update at 09:20; the app lists fund flows and related stocks by sector. Every event prediction in the brief is logged and, when it comes due, checked against the filings one by one.
Reflection
With only a handful of users, feedback is not a statistical signal but an instruction: mark a lead "not relevant" and it stops appearing — no weighting involved.