Inspiration
When traveling or if you have just moved to a city, it is often difficult to find a barber. Reading Yelp reviews, looking for related websites, and checking social media are time-consuming tasks. The idea of spending hours looking for shop ratings, unsure which barber won't leave you with a crooked hairline, requires patience and dedication. The goal of the Favorite Barber Application is to solve the problem of finding a barber that you can trust.
What it does
The App reviews, analyzes, and enriches data. Using the Yelp API, it retrieves all related Barber Shop data, including locations and images. An LLM reviews the comments and filters out barber names and adjectives that describe them. The scraped data is stored in a database for another AI agent to match names and Barbershop details and to discover relevant publicly available online data, such as YouTube tutorials, Social Media pages, and the Hair types the barbers specialize in. Based on the presence of applicable data, Ratings, and the positive/negative comment factor, each barber is assigned a Trust score. Using Google Vision, the app scans photos to identify haircuts commonly cut by barbers.
How we built it
This app's vision is to be a cross-platform application, so that the first iteration will use a web framework; I chose Next.js. The building process relied heavily on OOP principles implemented with an LLM. The building process began with a data test suite, starting with the design of how data is collected. Given the Yelp API's robustness, I initially used the traditional API to run queries, but I soon encountered limitations, as I will discuss below. Data connectivity to the LLM imager by an internal MCP server, which serves as the link to various workers, e.g., for data enrichment. The application is a minimum viable product (MVP), so I aimed to limit some of the desired components, such as the user experience, which includes various perks for actions.
Challenges we ran into
A few challenges arose throughout the process. Most were due to limitations and to maintain the accuracy of the data transfers. The first iteration of the design used the Yelp API in its natural format. The benefit is that it allows for 5000 requests. However, since the requests are within a querying system, if the dataset is large, some data will be truncated. So I adopted a hybrid data collection system with Yelp GraphQL, where I use the Yelp API for large requests and Yelp GraphQL for immediate data changes that include metadata, with these additional challenges, such as the naming conventions between GraphQL and the API not being the same, and the names of the business types.
Accomplishments that we're proud of
I am proud of the Test Suite created. I have a robust set of tests that allows an Admin to review the accuracy of the data enriched; there are tests to compare the local LLM to LLM providers. The test suite allowed me to make confident decisions when wiring the app's front end.
What we learned
I learned that the Yelp API has many use cases that can expand the app's capabilities. Given access to how data transmissions on a Yelp profile, the Favorite Barber app can serve as a prototype for a cross-industry feature. For example, by using the respond-to-reviewers API in this app, we can assign an AI agent to detect negative comments flagged for immediate business response. Additional functionality, such as the leads API, could add booking functionalities. Using an LLM with the Yelp API can be a powerful solution for business logic.
What's next for Favorite Barber
I will explore how the LLM and MCP servers can be used to generate additional trust indicators. It would be nice to do live peer testing once a few of the functionalities are stable. The Favorite Barber app could be a digital companion for travelers seeking a local, trusted barber who works at a nearby barbershop.
Built With
- antropic
- graphql
- mcp
- next
- ollama
Log in or sign up for Devpost to join the conversation.