Inspiration

Small independent businesses get invoices from several suppliers every week. Prices creep up a few cents at a time, and the same product has a different name on every invoice. Nobody has time to compare, so most owners never find out they're overpaying. The proof is already in their invoices; it's just scattered across PDFs, photos and inboxes.

What it does

Shelfie shows independent food businesses where they're overpaying suppliers, and helps them fix it in one tap.

  • Reads invoices (PDFs or photos) and flags billing mistakes.
  • Matches the same product across suppliers and compares per litre, kilo or item.
  • Checks a whole stock list. Our messy 44-item demo list showed €5,541 a year in savings.
  • Checks live prices on Irish retailers' websites.
  • Drafts an "ask to match" email, reads the supplier's reply, and sends a Telegram alert with the saving.

How we built it

TanStack Start on Vercel, with Supabase for data. Claude reads invoices, matches products and drafts emails, and every AI answer is checked against a strict schema. Every euro on screen comes from our own tested savings code, never the AI. Gmail and Telegram handle emails and alerts.

Challenges we ran into

  • Deciding when two products are truly the same (whole milk vs semi-skimmed, Coca-Cola vs own brand).
  • Turning pack sizes like "12x2LTR" or "half case" into fair per-unit prices.
  • Only trusting web prices read from real pages, with a date attached.

Accomplishments that we're proud of

The whole loop works end to end: invoice → saving → email → supplier reply → phone alert. On our demo café, Shelfie finds about €5,900 a year in savings, and every number traces back to an invoice line.

What we learned

Let the AI read and the code count. A "please check this" queue builds more trust than chasing perfect accuracy.

What's next for Shelfie

Pooling anonymised prices across businesses in the same town, reading invoices straight from the inbox, and a pilot with real cafés in Cork.

Built With

Share this project:

Updates

Submission history