Inspiration

Buying skincare online is a guess. Product pages are written for everyone, ingredient lists are hard to read, and nobody can tell you whether a product suits your skin until you've already paid for it. Shoppers end up with products that irritate or dry them out. Retailers pay for those wrong purchases in returns and lost trust.

What it does

Shelf Check answers one question before you buy: will this product suit my skin?

  1. Measure. Take one selfie. The YouCam AI Skin Analysis API scores 8 concerns from 0 to 100: acne, moisture, oiliness, pores, redness, texture, wrinkles and dark circles.
  2. Paste. Copy the ingredient list from any product page.
  3. Judge. Three independent AI models from three different makers (Alibaba's Qwen3, DeepSeek and OpenAI's open-weight gpt-oss) each read the ingredients against your scores, concern by concern. For each concern they say helps, neutral or worsens, and name the ingredients behind it.
  4. Decide. You get one verdict (Good fit / Use with care / Poor fit) and how many models agree. Any concern where the models disagree is marked SPLIT instead of being hidden.

Example from the demo: for a sample gel cleanser, all three models agree on "use with care". Salicylic acid and niacinamide help pores, texture and oil control. Denatured alcohol, fragrance and menthol are likely to worsen redness and moisture on this skin.

How we built it

  • YouCam API: AI Skin Analysis (server-to-server v2.0, SD mode, 8 concerns, 12 units per analysis). The flow is upload → pre-signed PUT → create task → poll → read ui_score/raw_score per concern.
  • Backend: one AWS Lambda (Python 3.12, standard library only) behind a Function URL. The three judges run in parallel, and a reconciler computes the majority verdict, the agreement, per-concern splits and any dissent.
  • Frontend: a single mobile-first HTML page with no external scripts.
  • Tests: 5 offline tests cover the YouCam flow, error handling, JSON parsing and reconciliation.

Challenges we ran into

  • Framing. Skin analysis needs the face to fill 60–80% of the frame, and real selfies are often too close or too far. The page now resizes in the browser and automatically re-frames and retries when YouCam reports face_out_of_bound or face_too_small.
  • Making three models comparable. Models label concerns differently ("pores" vs "pore") and some wrap their JSON in prose. We pinned the concern keys in the prompt, normalised the labels, and made the parser robust.

Accomplishments that we're proud of

  • It works end to end, live, in about 35 seconds: selfie, scores, verdict.
  • Disagreement is shown as a feature. A shopper can see which parts of the answer all three makers agree on and which are still open.

What we learned

Skin data turns generic product claims into a personal answer. Asking independent models and reporting where they split is more honest than one confident answer.

What's next for Shelf Check

  • A retailer widget: a "Check fit for my skin" button on product pages that reads the ingredient list automatically.
  • Saved skin profiles, so one selfie works across every product.
  • Comparing two products side by side for the same skin.

Built during the submission period

All code in the repository was written during the submission period (late October 2026); the commit history is public. The demo face is AI-generated, not a real person. The demo video uses no third-party music or trademarks other than naming the YouCam API.

Shelf Check is shopping guidance, not a medical device. For skin conditions, see a dermatologist.

Try it: https://rb3zrvsjhltwkfpadydcasehyu0iqlcu.lambda-url.us-east-2.on.aws/ (no sign-in: "Use the demo face" → "Try a sample product" → "Check this product") Code: https://github.com/DKJager/shelfcheck

Built With

Share this project:

Updates

Submission history