Aston Open Day AI Planner
Built for Aston University's AI Taskforce: an AI-powered planner that turns a prospective student's free text into a personalised Open Day itinerary, live on Aston's own booking page.
I led the Web Analytics workstream of the AI Taskforce at Aston University, set up by Emma Tronson MCIM. One of its live projects is the Open Day Planner, now embedded directly on Aston’s own undergraduate open day page.
Aston’s open days run 09.00-15.00 with dozens of parallel subject talks, general sessions and a city tour. A prospective student looking at the full timetable has to work out for themselves which of it actually applies to them — the planner does that instead: they describe what’s on their mind in plain text and get back a schedule built from the real sessions running that day.
How it works
A student picks their open day date, says whether they’ve already booked, and writes freely about what they want to find out or what’s worrying them — “I’m nervous about moving away and not sure if I can afford Psychology,” for example. That text is matched against the actual timetable: 39 subject talks and 9 general sessions (accommodation, student finance, disability and neurodiversity support, a campus-or-commute Q&A, and more), and a personalised itinerary is built from whatever genuinely applies.
Why these tools
The matching runs on Claude Sonnet 5, called from a Netlify serverless function rather than anything client-side. I moved the model from Haiku 4.5 to Sonnet 5 specifically so prompt caching would engage — Haiku’s cache only activates above 4,096 tokens and the system prompt never reached that, so every call was priced in full; Sonnet 5’s 1,024-token minimum is comfortably cleared, so caching actually works. The system prompt itself is tuned to be precise rather than generous: it’s told explicitly not to confuse general nervousness with a disability, or a safety concern with a neurodiversity one, and to return no matches at all rather than force one. Cloudflare Turnstile sits in front of the endpoint so the real API cost behind it can’t be scripted and abused, and if the AI call fails for any reason — rate limit, network, a missing key — the tool falls back to local keyword matching automatically. A visitor never sees a broken tool, only occasionally a less precise one.
Results
- Live and embedded on Aston’s own undergraduate open day booking page
- Matches free text against the real timetable: 39 subject talks plus 9 general sessions and tours
- AI-powered matching with a fully functional fallback if the API is ever unavailable
- Privacy-conscious GTM/GA4 event tracking built in — event names and categories only, never the student’s own text
What I learned
Most of the engineering difficulty wasn’t the AI call itself — it was making the prompt precise enough to say “nothing matches” when that’s the honest answer, instead of forcing a loose match because returning something feels more useful. The other lesson was integration-specific: Aston’s Drupal CMS strips empty HTML elements with no text content on save, which silently broke a status indicator until it was built at runtime in JavaScript instead of left in the static markup.
Interested in a similar engagement? Get in touch — I'm available for new SEO and analytics projects.