Skip to main content
DBB Software logo

Building an AI Assistant for Junior Tennis Parents

DBB Software ran product discovery and built the MVP of an AI assistant that plans a junior tennis player's tournament season through conversation, taking a parent from a first question to a shortlist ranked by level, travel distance, and dates. The build is ongoing ahead of release.

Industry

Technology

Service

Agentic AI Development

Team

1 AI Engineer, 1 Back-End Engineer, 1 Data Engineer, 1 Front-End Engineer, 1 DevOps Engineer, 1 QA Engineer, 1 Team Lead

Project State

June 2026 - Ongoing

Country

US Flag

United States

NDA
NDA

About the Client

The client is a United States technology company building a tournament-planning product for junior tennis. Its users are the parents of competing juniors, who carry most of the planning burden themselves: reading federation calendars, checking eligibility and entry requirements, and working out travel before entering anywhere.

The Client's Initial Request

The client engaged DBB Software to run product discovery and deliver the MVP, because finding the right tournaments for a child means cross-reading federation calendars and eligibility rules by hand before travel is even considered.

Tournament Discovery in One Place

Bring events from more than one sanctioning body into a single answer, so a parent stops moving between federation websites.

01

Recommendations Matched to the Child

Match suggestions to a player's level and to how far the family is willing to travel.

02

Journey Planning Across Several Events

Suggest consecutive tournaments that can be played on one trip, so a season's travel is planned as a run of events.

03

Discovery Through to a Working MVP

Take the product from scoping to a delivered build, with the client's team retaining design.

04

Solutions We Delivered

DBB Software ran discovery and built the MVP with a seven-person team spanning AI, back end, data, front end, DevOps and QA. The assistant is built on the Mastra agent framework over PostgreSQL with pgvector, and its shape changed during the build: what began as a staged workflow became a single agent holding its own tools.

A Single Agent With Tools

The proof of concept ran three steps in a fixed order: a plan step, a retrieve step, then a synthesis step.

The retrieve step was capped at three queries against the document store. That budget proved unreliable in practice and absorbed a large amount of tuning.

As testing widened, a single agent holding tools it calls at will performed better on the same conversations.

The change retired both the plan step and the retrieval budget, leaving the agent to decide how much evidence a given question needs.

Models Tested and Models Shipped

The assistant has run on three model families, and the change of architecture drove the change of model.

The staged proof of concept split the work by role: a Haiku model planned, and a Sonnet model handled retrieval and synthesis.

Xiaomi MiMo v2.5 and v2.5 Pro were trialled between the two designs and did not carry through.

GLM 5.3 Flash was trialled during development and dropped.

The single-agent build runs on GLM 5.3, which performed better once the agent chose its own tool calls.

Three Tools the Agent Calls on Demand

The agent reaches data through three named tools and chooses when to use each.

count_tournaments returns how many tournaments sit in each city across a date range, which lets the agent see where a season's options concentrate before naming any single event.

query_tournaments returns the tournaments themselves for a date range, sorted by proximity to the family's home.

query_documents retrieves written material behind a question rather than calendar rows.

Retrieval Over Tournament Regulations

query_documents embeds the parent's question and pulls the documents closest to it: current tournament regulations, rule changes, and newly published information a calendar entry does not carry.

Embeddings come from Voyage AI's voyage-4-large, held in pgvector alongside the tournament data.

voyage-context-4 was evaluated as an alternative, since it embeds each chunk with a view of the others and is reported to improve on the general model. The team stayed on voyage-4-large to keep the retrieval path simple.

Chat Onboarding for Parent and Child

The assistant collects what it needs by asking for it over the course of the conversation.

A parent opens with something as loose as a request for tournaments for their daughter, and the assistant asks for the missing piece it needs first.

Home location comes first, because travel radius and proximity reasoning depend on a home base before anything else can be ranked.

The child's profile is assembled over the conversation rather than entered up front, which suits a first-time user who has no account history behind them.

Eligibility Confirmed Against the Player

A tournament reaches the shortlist once the child actually qualifies for it.

The player's age, level and location are confirmed against what the event itself requires.

Level and location carry the most weight, alongside how far the family will travel and the date range they are planning around.

Geocoding From Federation Data

Distance is computed from coordinates rather than estimated from place names.

Where ITF and USTA public resources already carry coordinates for a venue, those are reused directly.

Where a venue has none, a Google Places lookup fills the gap. Venues are far fewer than tournaments, so that fallback is priced per venue rather than per event and stays inexpensive.

Scenario Testing on Known-Eligible Fixtures

Recommendation quality is checked against cases where the right answer is established in advance.

Test users are built with different player details: age, level, home location and travel radius.

Each run confirms the assistant returns tournaments already known to be eligible for that player.

The MVP Platform Around the Assistant

The assistant sits inside a full product build, delivered from discovery through QA.

Tournament data is drawn from USTA and ITF. Player details are captured through the assistant rather than imported.

A React single-page application front end runs against a NestJS back end on Google Cloud, with parents signing in through their Google account.

Grafana and Sentry were wired in during the build for metrics, observability and error logging.

Results Achieved

checkmark

A Profile Built in Conversation

The assistant asks for a child's details across a chat, so nothing depends on a completed form.

checkmark

Fewer Parts to Tune

Retiring the plan step and the fixed retrieval budget left 1 agent deciding what evidence it needs.

access

Current Rules in the Answer

Regulation changes and new guidance reach a parent through retrieval, not only the calendar listing.

map plus

Real Distance From Home

Geocoded coordinates let the assistant sort events by how far a family actually travels.

user-black

2 Circuits in 1 Shortlist

USTA and ITF events reach a parent in the same answer.

strategy

Instrumented Before First Users

Metrics, observability and error logging were built in, so the MVP reaches release already measurable.

Turn Your Catalog Into a Conversation

DBB Software builds AI assistants that read your own data and return answers a customer can act on.

Contact Us

I have read the principles of personal data protection - Privacy Policy

"Most of our work starts with a 30-minute call where someone describes a product they're trying to ship and one part of the engineering picture they can't get around.

If that's where you are, let's set one up; I'll tell you straight whether we're the right fit.”

Mina Morkos

Business Development Manager

Want a similar outcome for your team?

Ask our AI assistant — it can pull related case studies, talk through the approach, and put you in touch with the team if you want a deeper conversation.

Discuss a similar project