Wrangler -- Project Story
Inspiration
Every student’s journey at UVA begins with a paradox: you are here to tackle rigorous academics, yet you spend your first month defeated by a dozen different department websites. As first-years, we saw how the chaos of reserving study spaces, tracking the Silver Line, and checking gym hours wasn't just an inconvenience, it was a barrier to our success.
We realized that student success is a logistics problem. We created Wrangler to be the solution. It centralizes the UVA experience. By wrangling fragmented data into one intuitive interface, we allow students to spend less time searching and more time succeeding. Wrangler herds the resources to the student, so the student can focus on the finish line.
What It Does
Wrangler is a UVA campus AI agent with a wild-west-themed chat interface that helps all UVA students find information about anything on Grounds. It pulls data from various UVA websites into a single, unified interface, powered by Gemini Flash 2.5 with agentic tool use.
How We Built It
- Backend: Node.js + Express, deployed on Railway (also hosts the PostgreSQL database)
- Frontend: Next.js 15 + React 19 + Tailwind CSS, deployed on Vercel
- Search: Tavily (full-web search) + Firecrawl (JS-rendered page reading and dining menus)
- Agentic loop: Gemini tool-use with four tools --
webSearch,readWebpage,getDiningMenu, andcreateCalendarEvent - Calendar: Google Calendar OAuth integration for inserting events directly from chat
Challenges We Ran Into
- Pulling live transit data from the TransLoc website -- no free real-time arrivals API exists for UVA buses
- Model hallucinations when live data was unavailable
- Scraping data from dynamically rendered websites
- Repository confusion and merge conflicts in GitHub
Accomplishments We're Proud Of
- Pulling real-time information into an agentic workflow
- Combining two agentic systems -- one for search, one for web interaction -- into a seamless pipeline
- Active Google Calendar access directly from the chat interface
- A polished, theme-consistent UI that students actually enjoy using
What We Learned
- How to pull data from various websites and integrate it in a single interface regardless of web style
- How to build and orchestrate agentic search across all public UVA information
- How to implement a real-time agentic system with tool-gated routing
- How to use Firecrawl and Tavily together, combining search and page interaction for sites that require JavaScript rendering
What's Next for Wrangler
Containerizing the application on a per-university basis -- each institution gets its own system prompt and data sources. When a user creates an account, their profile is automatically associated with their university, making Wrangler a platform that any campus can adopt.
Built With
- claude
- claudecode
- cursor
- firecrawl
- gemini
- github
- godaddy
- googlecalendarapi
- javascript
- postgresql
- railway
- tavily
- translocapi
- uvalibrary
- vercel
Log in or sign up for Devpost to join the conversation.