Inspiration

Small beauty brands name their shades "Toffee" or "Honey". A name is not a colour, so an AI shopping assistant can't match it to a shopper's skin and recommends big brands instead. Wrong shade is also the main reason foundation gets returned (about 23% for foundation and concealer, per Eightx benchmarks).

What it does

  • Seller: photographs her swatches on white paper. Findable uses the paper as a white reference to remove the room lighting, measures each shade's colour (CIELAB), and saves it to her catalog with a signed "Shade Passport".
  • Shopper: uploads a photo of the shade they wear now. The agent compares it with every passport using the CIEDE2000 colour difference and shows the closest shades.
  • Payment: the agent creates a PayPal order with the price set by our server. Only the shopper can approve it in PayPal. The seller sees the order on her dashboard.

How we built it

  • PayPal (sandbox): Orders v2 to create and capture orders, and webhooks to confirm payment on the seller dashboard.
  • AI: [your model, e.g. Llama 3.3 70B on Groq] runs the shopping agent and calls our tools; an MCP server exposes the same tools to assistants like Claude Desktop.
  • Colour pipeline: Python, NumPy and scikit-image for white balance, CIELAB conversion and CIEDE2000.
  • App: FastAPI, SQLite, Jinja2, Tailwind, AG Grid.

Challenges

Phone photos change colour with the lighting. Using the white paper as a reference made measurements comparable between seller and shopper photos.

What we learned

How PayPal's order, approval and capture flow works, and how to keep the AI away from the payment step: the agent prepares the order and the human approves it.

What's next

More shade categories (concealer, lipstick), automatic swatch detection, and a measured-refund promise for wrong shades.

Built With

Share this project:

Updates

Submission history