Browse the complete program and ask the AI anything about Australia's largest water conference.
Ozwater'26, Australia's largest water conference, has 336 presentations across four days in Brisbane. Most people attending will see maybe 20. So I built a tool to make the other 316 accessible, to everyone including people who aren't there like myself, with a fair bit of AI assistance along the way.
Ask Arlo anything on the left — Arlo is an AI assistant trained on the full conference program. Or use the session explorer on the right to filter and browse by topic, organisation or presenter. Curious how it was built?
After querying the full dataset, these are the signals that emerged most clearly from 336 presentations.
The narrative has shifted from maintaining infrastructure to transforming it. Wastewater plants are being reimagined as Resource Recovery Centres. The circular economy conversation has moved well past conceptual into detailed technical territory.
A striking volume of sessions focus on capital prioritisation, infrastructure financing and long-term investment planning. Utilities face pressure from ageing assets and housing growth simultaneously, and the financing models needed are not yet in place.
AI is showing up as an operational tool, not an experiment. Burst detection, demand forecasting, digital twins, predictive maintenance. The question is no longer whether to adopt, but how to scale.
This stands out as genuinely different from previous years. Presentations go beyond consultation into country-led design, place-based decision making and cultural frameworks embedded directly in infrastructure planning.
Purified recycled water features heavily, driven by recognition that rainfall-dependent supply is no longer sufficient. Source control for contaminants like PFAS is central to making recycled water pathways viable long-term.
The short version: Python, a headless browser, a Gemini AI, and Claude doing most of the heavy lifting on the code.
The conference program runs on a JavaScript-rendered platform, which means the usual approach of fetching the page with a simple HTTP request returns an empty shell. The first step was saving the agenda page locally after the browser had rendered it, then using Python and BeautifulSoup to parse out all 400 agenda items, including titles, session times, rooms and topic tags.
The detail pages, one per presentation, were a different story. Because the content only exists after JavaScript runs, I used Playwright, a headless browser library, to load and render each page programmatically, then extract the abstract and speaker bios. That process ran across roughly 300 presentations with a polite delay between requests.
The result was a clean CSV with one row per speaker: 641 rows covering 336 unique presentations, 561 speakers, and around 70 topic tags.
For the AI chat, I used the Gemini API. Gemini's context window is large enough to hold the entire dataset in a single prompt, which means every query has access to the full program without any retrieval or chunking logic. The dataset is held server-side to keep the API key secure and reduce cost on repeated queries.
Before publishing, the AI was tested against a set of questions generated by Claude, covering different query types: topic-based recommendations, organisation lookups, thematic summaries and open-ended trend questions. The quality held up well across all types.
The code was written with Claude, Anthropic's AI assistant. I designed the architecture, made the decisions and tested everything, but Claude wrote the majority of the Python and JavaScript. The page itself is a single HTML file with embedded JavaScript, designed and built the same way, iteratively, with Claude generating and me reviewing, testing and directing each step.
That said, no automated system is perfect. If you get a response that seems off, I'd genuinely like to know. Drop me a note via the contact form.