Inspiration
Betting is becoming more of a casual activity but although people are eager to play, they are not always well informed on the plays they make. With a little bit of context for casual viewers, betting can be much more competitive and interesting for the average person. Parlays also often require a lengthy time to find and make, requiring manual searches for teams, sports, and players a user wants to bet on. With a recommendation system based on user's past parlay preferences and outcomes, parlay ideas become much easier to narrow down too for someone.
What it does
Our project has two main new functions. The first is providing context to plays on PrizePicks using quotes and summaries from real articles surrounding the details of the bet. For example, if you're betting on Jalen Hurts rushing touchdowns, this feature will show you quotes from news outlets and sports analysts regarding this exact topic. The second part of the project focuses on creating suggested parlays based on your past parlays. This makes it easier for you to place bets on your favorite players and teams, and get into the action sooner.
How we built it
All parts of the frontend were built in React using JavaScript. We stored data regarding past parlays for each user on Supabase and used a variety of APIs. For the context feature, we used the NewsAPI to filter relevant articles from the Internet on what we were interested in. We then fed those articles to the OpenAI API to create concise yet accurate summaries of the sentiments in that article. For the backend, we used FastAPI, numpy, and pandas to create a parlay recommendation system which generates possible parlay recommendation based on user's past parlay behavior, and current live parlays available on the market. We used a proxy server to allow our Vite front end to initiate http protocols with our server without running to CORS issues.
Challenges we ran into
The main challenge we ran into was finding an appropriate source of information to pull sports news from. We considered a variety of social media such as Facebook, Instagram, Reddit, and X. But due to the restrictive nature of many of these platforms and inability to search for keywords, we decided to utilize an API called NewsAPI. This platform was also restrictive in the amount of usage we were allotted, but it allowed us to search across the web for all sorts of media from top sports analysts and journalists. On the backend side, a challenge was getting the server to properly set up fetch points with the Supabase client. We had used the wrong API_KEY, and this led to many internal server errors we were receiving. Another challenge was also connecting the front to the backend using server routes. At first we were trying to surpass CORS, but after some research we decided to go with a proxy to make this process much easier.
Accomplishments that we're proud of
We're proud of being able to create a complete workflow using news data pulled through an API, that then got processed through an LLM, and finally outputted to the user. We believe that this fills in a gap that users would like to see within typical sports betting apps, giving users more easily accessible context and information about bets. We are also happy that the recommendation system is able to take into account various factors such as past player picks, general user sport trend / favors to generate a list of possible parlays the user can choose from, styled just for them based on their past activity / preferences.
What we learned
We learned how to be careful with resource management in order to not burn through our API credits too quickly and how to work with a variety of APIs, even when documentation may be lacking. We also figured out how to create a simple agentic workflow that finds appropriate news articles and picks out important quotes for the user. We were also able to learn how to setup a MCP server for copilot with supabase for easy access and control over the database. We also learned for the first time how to setup a proxy and implement a basic prediction model using numpy.
What's next for Playbook
We're hoping to improve on the prompts we used to guide the LLM in processing news article data. We also would like to create more of a news feed feature within sports betting apps that will provide interesting insights into plays that users may not be knowledgeable about. On the recommendation side, we would like to increase the amount of variables our model can account for, and make it actually train on a dataset before creating some predictions rather than using a non-trained version.
Built With
- fastapi
- javascript
- mcp
- openai
- python
- rag
- react
- supabase
- uvicorn

Log in or sign up for Devpost to join the conversation.