Inspiration
We realized that most people carry multiple credit cards but rarely remember which one earns the most rewards at a specific place. Grocery store? Gas station? Dining? Travel portal? The categories change, the rules are confusing, and bonus rates often depend on where you spend.
We wanted to build something that works in the moment, not as a budgeting tool or after-the-fact tracker. Card Compass was inspired by the idea of turning your phone into a real-time rewards navigator — like GPS, but for credit cards.
What it does
Card Compass helps users maximize their credit card rewards at the moment they’re about to pay. Instead of analyzing past spending, it provides real-time recommendations based on where you are and what you're buying.
Whether you're at a restaurant, gas station, or retail store, Card Compass compares your available credit cards and tells you which one will earn the highest rewards for that specific purchase. The goal is to eliminate guesswork and make rewards optimization effortless.
How we built it
Frontend The Card Compass frontend was designed to feel fast, modern, and effortless — because real-time decisions should never feel complicated. We built the interface using Next.js/React/HTML/CSS, allowing us to create a responsive, app-like experience that works smoothly across devices. The goal was to make the act of picking a card feel effortless so users can focus on one simple question: "What should I buy?", rather than "What should I buy it with?" Backend Wallet: We use a Plaid utility to pull the user’s linked accounts, filter to credit accounts only, and return a clean list of card names. This is done via Plaid’s accounts_get flow, and we were to set up a mock account with 6 credit cards in the Plaid Sandbox. Card recommendation: Once we have the user’s wallet card names, the recommendation agent maps those names to internal keys, then looks up the reward multipliers for the current spend category in a rewards database. It selects the card with the highest multiplier that matches the locations spending category (grocery, dining, gas). Card Database: While plaid allows us to see the cards held by the user, it does not include the rewards information. To overcome this, we made a database that would match the card name as the key and use it to find out what rewards were held by that card. For example, cards.json contains Capital One cards (Quicksilver, Savor, Venture, Venture X, etc.) and their reward categories. In the future we would hope to include cards other than Capital One
Challenges we ran into
Designing for real-time use We ran into many issues with the MCP server only taking geographical coordinates. This lead to us running into issues where sometimes we would end up off by street and the location would be read as a restaurant across the street instead of a Publix.
MCP Server We ran into several issues trying to set up the mcp server and contact it with the agents. Given the Google Grounding Lite MCP is in Experimental, there were some issues with requesting data and communication.
Log in We additionally ran into issues with log in. While we had hoped to use Google oauth, we ran into several issues with trying to then connect that user with the fake profile we created in Plaid's Sandbox. We we ended up just deciding to scrap that idea as we felt the Plaid integration really heightened our project.
Accomplishments that we're proud of
Real-time locator to help determine which credit card is best to use. Capital One Syncs cards sync with system properly after login keeping data secure. Creating a real-time rewards concept instead of another finance tracker. Designing a polished, modern UI that feels like a real consumer product. Building a scalable credit card reward comparison model. Turning a confusing financial problem into something simple and consumer friendly.
What we learned
Real-time tracking is difficult, and that it's incredibly hard to have accurate gps within tight locations Context matters — the “best card” depends on where the user is and what they’re buying AI recommendations are most useful when they are situational, not generic
What's next for Card Compass
Compatibility with apple wallet/apple watch more accurate Bluetooth and GPS locator Browser extension support for online purchases Push notifications suggesting the best card before checkout A working app model to use on a phone not just as a site
Log in or sign up for Devpost to join the conversation.