Back to Data Analytics Work

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.

Aston University Open Day Planner tool showing the itinerary builder form

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

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.

More projects

Ready to start?

Got a similar project?

I'm available for new projects. Tell me about what you're building and let's see if we're a good fit.

Start a project →