Inspiration

Remittances are a lifeline for millions of families worldwide, but the system sending that money is broken. Workers sending money home often lose 5–10% of every transfer to fees — and most of that cost isn't even the advertised fee. It's hidden in a bad exchange rate that providers never disclose. We wanted to build something that exposes that hidden cost and helps people actually keep more of the money they worked hard for.

What it does

Clarity compares remittance providers side-by-side for any amount, currency corridor, and payment method. Instead of just showing an advertised "fee," it breaks down the true total cost — the fee and the hidden exchange-rate spread — so users can see exactly where their money goes. An AI agent takes the user's request, reasons over the tradeoffs (cheapest vs. fastest), and gives a clear recommendation with an explanation, not just a raw list of numbers.

How we built it

We used Jac to create the API, graph model, pricing logic, React UI, AI assistant, and website tests; Python to load CSV reference data; CSS for style. First, the website loads CSV reference data into memory with Python's assistance. Then, it seeds a Jac graph of providers, corridors, and offer edges containing distinct payment methods to create a model of all the data. Later, the website converts the starting currency and destination currency selected on the front page into a corridor and stores the user's preferred payment and receipt method too. If the AI assistant is used instead, it deconstructs the prompt into a corridor and preferred payment and receipt methods too. Finally, the input is packaged into a corridor query and the cheapest providers are ranked. This ranking is output on the results page with each provider's official fee and their hidden markup too.

Challenges we ran into

Real-time provider fee/rate data isn't publicly accessible via free APIs, so we had to design a realistic synthetic dataset that reflects genuine market patterns instead. We also had to balance the agent's response — deciding how much reasoning/comparison data to surface without overwhelming the user, while still keeping the recommendation transparent and trustworthy rather than a "just trust me" black box.

Accomplishments that we're proud of

We are proud of building a graph-based model connecting providers, corridors, and payment/receipt methods in Jac despite neither of us having used this language before. We are also proud that our website is 72% Jac, showcasing our ability to condense multiple programming languages into one language. Finally, we are proud of building a grounded AI assistant by connecting it to our graph inside of Jac.

What we learned

Siddharth and I learned how to model a real-world market as a graph, and use it to build a grounded AI assistant from scratch; producing deterministic responses. We also learned how to obtain trust from our users by highlighting the providers' spreads. Finally, we learned how to ramp-up quickly on a new programming language such as Jac.

What's next for Clarity

Next, we’d integrate live provider APIs like Wise, Remitly, and Western Union to replace our synthetic dataset with real-time data. We’d also expand our rate-watching feature so the agent can monitor exchange rates over a flexible time window and proactively recommend the best time to send, not just the best provider right now. Longer term, we plan to improve the product with saved preferences, account creation, and theme customization to make it more personalized and easier to use over time.

Built With

Share this project:

Updates

Submission history