Side project · live·9 min read·AWS Hackathon

STYLEMAX

A fashion companion that turns closet chaos into curated confidence, using the items you already own.

morning decision time
15min<30sec
~80% of this wardrobe goes unworn ↓
the closet you already own

Timeline

AWS Hackathon. Built in days, not weeks.

My Role

Problem framing, multi-agent architecture, prompt engineering, data schema, evaluation

Team

1 PM (me), solo build with AI-assisted development

Scope

3-agent system on Amazon Nova 2 Lite · tops, bottoms, outerwear and shoes · no accessories · Firestore backend

Try this · ask Stylemax

Pick a mood. Pick the weather. Watch three agents argue — and out comes an outfit from a closet you already own.

mood

weather

Intake

temp 0.2 · accurate

idle

Stylist

temp 0.7 · creative

idle

Behavioral

temp 0.7 · neglected items

idle

3 outfits · from your closet

waiting

tap ASK to load

tap ASK to load

tap ASK to load

01. TL;DR

  • Problem: 65% of professionals lose 10–15 minutes each morning deciding what to wear, while ~80% of the wardrobe sits unworn.

  • Strategy: Instead of one black-box AI, split the job across three. One reads the closet, one styles outfits, one spots ignored items. Each can be checked and explained on its own.

  • Impact: A 10–15 minute decision collapsed to under 30 seconds, and ~2.5× more outfits from the same wardrobe.

02. Problem

Closet paralysis isn't a "more recommendations" problem.

It is a seeing what you already own problem. Most AI fashion tools push users toward buying more. The opportunity was to prove AI that gives control back to the user, and earns trust instead of selling the next purchase.

Surfacing the neglected and weather-matching the forgotten brings items back into rotation, moving utilization from 20% to roughly 50%. The wardrobe did not change; the awareness did.

03. How I Decided the Path

What I picked, and what I said no to.

rejected · single model

🤖
  • opaque failure modes
  • no place to insert guardrails
  • can't explain why to the user

rejected · shopping recs

🛍
  • a tool meant to reduce buying pressure
  • can't quietly sell things on the side

selected · three agents

📷👕👍
  • each agent: own prompt + temperature
  • guardrails at the seams
  • suggestions with reasoning

The three agents · interactive detail

Three agents, three prompts.

Intake

temp 0.2 · accurate categorization

Tag the closet.

Reads photos + user notes. Returns clean item tags: type, color, season, formality.

// prompt
You are a careful clothing cataloger.
Given a photo and optional user note,
return JSON:
{ id, type, color, fabric,
  season, formality }
Refuse to guess. Output null
for anything unclear.

Stylist

temp 0.7 · creative combinations

Compose three outfits.

Returns item IDs only — never names. Unknown IDs are silently dropped before the user sees anything.

// prompt
Given mood + weather + closet,
return 3 outfits as item IDs:
[[id, id, id], …]
Never invent IDs. If < 2 valid
items in an outfit, discard it.
One-line reason per outfit.

Behavioral

temp 0.7 · neglected-item radar

Surface what's forgotten.

Flags items unworn for 3+ weeks. Wear history closes the loop — once worn, the flag clears.

// prompt
For each item, compute days
since last_worn. If > 21, mark
as candidate. Boost into next
stylist context. User's explicit
"will try" outranks AI flags.
Intent > inference.

04. How I Validated

Kill criteria before the prompt. I wrote down what a failed outfit looked like before the stylist prompt existed, so the bar was not set by whatever the model happened to return.

  • Two bottoms is not an outfit. Discarded rather than shown. Every suggestion ships with a one-line reason, so a bad combination does not arrive quietly, it arrives argued for. Confident reasoning attached to a wrong answer is worse than no answer.

  • Two tops is not an outfit either, unless it is layered. An outer over an inner is a real choice a person makes. Two shirts is a bug wearing the same shape.

  • Invented items never reach the screen. The stylist returns item IDs only, never names, so anything hallucinated fails the lookup and is dropped before rendering. Outfits left with fewer than two valid items are discarded whole.

05. How I Built

  1. Three agents, three temperatures. Intake 0.2 for accuracy, Stylist and Behavioral 0.7 for creativity. Each one tunable and testable without corrupting the others.

  2. What the user picks beats what the AI guesses. Items tapped "Will try" outrank anything the behavioral agent flagged.

  3. No shopping recommendations. No body-type prescriptions. Encoded as launch criteria in product scope.

06. Cross-Agent Feedback Loop

The user's own behavior closes the loop: the AI gets out of the way the moment the unworn item gets worn.

BEHAVIORALsurfaces neglecteditems (3+ wks unworn)STYLISTincorporates theminto next outfit setuser wears item · wear history updates · agent stops flagging

Hover or focus each box — the connecting flow pulses in that direction.

07. Impact Delivered

Under 30 seconds to a decision, from the 10 to 15 minutes of standing in front of an open closet. The wardrobe did not change; the search over it did.

About 2.5× more outfits from the same clothes. The behavioral agent pushes items unworn for three weeks back into the stylist's context, so the rotation widens without a single purchase.

<0sec

Morning outfit decision timefrom 10–15 min of closet paralysis

~0.0×

more outfit combinations from the existing wardrobe

neglected items injected back into rotation

3–0sec

AI response time per request

three weather-aware, mood-matched outfits · one-line explanations

08. Why This Matters

Responsible AI is not a separate workstream from product velocity. Three named agents with three named temperatures gave me three named places to put guardrails, and three named things to show the user. The seams are the explanation.

Live prototype

Try Stylemax yourself.

Live at stylemax.amplifyapp.com ↗ — embedded below.

https://master.d358bvbeytobdo.amplifyapp.com/