Hoply
AI data pipeline
How I turned incomplete sports data into a reliable dataset.
- Role
- Concept & Development
- Focus
- Data quality and enrichment
- Status
- Complete
01 · The problem
There were gaps in the stadium data.
The data sources I used had reliable information about matches, but some were missing essential venue details. Hoply helps people find sports events nearby, so knowing exactly where a match takes place matters.
- teamFortuna Düsseldorfvalid
- league2. Bundesligavalid
- fixtureSat, 15:30 · Homevalid
- venue.nameESPRIT arenaoutdated
- venue.addressemptymissing
- venue.coordinatesemptymissing
02 · First solution
Start with deterministic rules.
My first approach was a traditional web crawler that matched teams to the correct stadiums through Wikipedia and other sources. This gave me an initial dataset, which I later used to validate the AI results.
- NameFortuna Düsseldorfvalid
- League2. Bundesligavalid
- CountryGermanyvalid
- SportFootballvalid
„Fortuna Düsseldorf” home stadium
- MatchMerkur Spiel-Arenavalid
- Fortuna DüsseldorfMerkur Spiel-Arena
- Address
- Arena-Straße 1, 40474 Düsseldorf
- Coordinates
- 51.2616° N, 6.7332° E
- Borussia DortmundSignal Iduna Park
- Address
- Strobelallee 50, 44139 Dortmund
- Coordinates
- 51.4927° N, 7.4518° E
- Hamburger SVVolksparkstadion
- Address
- Uwe-Seeler-Allee 9, 22525 Hamburg
- Coordinates
- 53.5872° N, 9.8986° E
03 · Limitations
Messy data.
My traditional crawler worked well when the team was easy to identify. But team names can have different spellings, and teams in different sports can share the same name.
- NameBayern Munichvalid
- LeagueBundesligavalid
- CountryGermanyvalid
- SportFootballvalid
„Bayern Munich“ Football Venue
Match names · Check sources
Spelling variations
- Bayern Munich · Bayern München · FC Bayern München
- The names don’t match exactly, so matching by name alone can’t reliably identify the team.
Bayern Munich · Match unresolved
04 · Gemini crawler
AI where rules reach their limits.
To fill the remaining gaps, I built an AI crawler with Gemini. It uses the team name, league, country and sport to understand messy data in context and identify the right club. That lets it match each team to the correct stadium.
I integrated Google Maps Grounding into the crawler to find venues and determine their addresses and coordinates.
- NameBayern Munichvalid
- LeagueBundesligavalid
- CountryGermanyvalid
- SportFootballvalid
- ClubFC Bayern München
- Stadium / ArenaAllianz Arena
- CityMunich
Allianz Arena
- AddressFranz-Beckenbauer-Platz 5, 80939 Münchenvalid
- Coordinates48.2189° N, 11.6247° Evalid
05 · Validation
Every result gets checked.
I didn’t take the AI’s results at face value. I tested different models, prompts and reasoning levels to find the combination that worked best for this task.
I checked every result against my own reference dataset, which I had built with the traditional crawler and then reviewed manually.
Accuracy measured against my own reference dataset.
- Model
- Model A
- Reasoning
- Low
- Prompt
- Match a team to a stadium.
- Input
- Name · League · Country · Sport
60%
Accuracy · Run 1/6
Baseline
- 01 · Baseline60 %Baseline
- 02 · Prompt adjusted74 %Better · Adopted
- 03 · Model A → B69 %Worse · Rejected
- 04 · Model B → C85 %Better · Adopted
- 05 · Reasoning increased94 %Better · Adopted
- 06 · Sources added99 %Better · Adopted
Best result 60 %
A simplified animation for illustration. The underlying principle reflects the actual process.
Summary
From incomplete data to reliable venue information.
- 01The starting pointFor Hoply to show sports events nearby, I needed accurate venue information for every match. I filled in the missing stadium names, addresses and coordinates by enriching the data myself.
- 02The first approachI built a traditional web crawler that matched teams to their stadiums using Wikipedia and other sources. I later reviewed the collected data manually and used it as a reference for the AI results.
- 03The limitationsI ran into different spellings, teams with the same name in different sports and missing sources. To resolve these cases, I needed an approach that could understand the context.
- 04Adding AII built an AI crawler with Gemini that identifies the club and venue from the team name, league, country and sport. Google Maps Grounding added the correct address and coordinates.
- 05Quality assuranceI tested different models, prompts and reasoning levels against my own reference dataset. Through these iterations, I raised accuracy on the reference set from 60–70 percent to around 99 percent.