Brand brief + ten supplier filters → ranked matches
The framework starts one step upstream of sourcing. Dimension 0 is a brand brief — product-consumer fit, captured as free text — that grounds every later spec choice. Then Dimensions 1–10 are the buyer-intent filters, each mapped 1:1 to a supplier-schema field. Click any dimension to expand.
The 11 dimensions — click to expand
Q0Brand brief — product-consumer fit (does not filter suppliers — grounds Dims 1–10)→ free-text brief · captured once, played back when buyer drifts
The brief before the brief. James Cunningham, brand-build advisor: "It's a product-consumer match. It doesn't change the supplier-brand owner matching — it's the step before it in the value chain."
Two ways in (run whichever applies)
- Brand-first: You've got Brand X. Have you defined the right product around the occasion they'd wear it for?
- Consumer-first: You're serving Consumer X. Have you defined the right product around a proven need?
The 6 sub-prompts
- 1. Intended buyer — gender
- 2. Intended buyer — age
- 3. Climate / vibe of their targeted consumers' market
- 4. Stage in life
- 5. Functionality wanted — the need they're looking to sort out by using this product
- 6. Why are they buying this from you specifically?
What Frenzee does with it
- Drift detector — every later spec change cross-checked against the brief. "You said warm-climate Gen Z streetwear, but you're spec'ing 240gsm — that reads light-tee, not heavyweight hoodie."
- Marketing payload — the "why from you specifically" line is the seed for the launch tagline + first ad copy. Played back when the brand goes live.
- Coherent supplier message — the brief informs the first message to the shortlisted suppliers, so context lands in one shot instead of a back-and-forth.
Q1Product Type — what are you making?→ supplier.top_products · category + sub-type match
10 major categories, ~150 sub-types. Drives every downstream filter.
Tops
- T-shirts: crew, V, scoop, henley, ringer, pocket, longline, raglan, regular, slim, oversized, boxy, fitted, ribbed
- Polos: pique, jersey, performance, long-sleeve
- Button-downs: oxford, dress, chambray, flannel, tunic, popover, camp-collar, western
- Blouses: peasant, peplum, wrap, off-shoulder, smock, cami, blouson, ruffle
- Tanks: classic, racerback, halter, tube, ribbed, cropped, athletic
- Sweaters: crew, V, turtleneck, cardigan, cable, fisherman, oversized, cropped
- Hoodies / sweatshirts: pullover, zip-up, cropped, oversized, half-zip
Bottoms
- Pants: jean, chino, trouser, dress pant, cargo, jogger, track, sweatpant, paperbag, palazzo, wide-leg, straight, skinny, bootcut, flare, mom, boyfriend, tapered
- Skirts: mini, midi, maxi, A-line, pencil, pleated, wrap, denim, leather, tiered, bias-cut
- Shorts: bermuda, biker, board, running, denim, dress, paperbag, cargo, athletic, hot pants, culottes
- Leggings: classic, high-waist, biker, capri, fleece-lined, ribbed, seamless, performance
- Jumpsuits / rompers
Dresses + Outerwear
- Dresses by length: mini, midi, maxi, gown
- Dresses by silhouette: shift, sheath, A-line, fit-and-flare, wrap, slip, bodycon, bandage, smock, peplum, mermaid
- Coats: trench, peacoat, parka, puffer, duffel, cape, wool, down, wrap
- Jackets: blazer, bomber, denim, leather, varsity, biker, utility, anorak, windbreaker, fleece, quilted, shacket, harrington, chore
Lingerie / sleepwear / underwear
- Bras: balconette, bralette, push-up, sports, plunge, T-shirt, wireless, longline, strapless
- Panties: brief, bikini, thong, hipster, boyshort, high-waist, seamless, G-string, tanga
- Sleepwear: matching pajama set, separates, nightgown, chemise, robe, kimono
- Hosiery / socks: tights, stockings, ankle, crew, knee-high, athletic, performance
Activewear · Accessories · Specialty
- Activewear: sports bras (light/medium/high impact), leggings, biker shorts, joggers, tank, half-zip, jacket
- Bags: tote, crossbody, backpack, clutch, satchel, duffel, weekender, fanny pack, bucket, sling
- Hats: baseball, bucket, beanie, fedora, sun, beret, visor
- Footwear (separate cluster): sneakers, dress shoes, loafers, boots, sandals, flats, heels, mules
- Children's wear (CPSIA-required): all + onesies, sleepwear, school uniforms
- Specialty: modesty / hijab · uniforms · bridal / formalwear · maternity · adaptive
Q2Material — look + feel descriptors→ supplier.fabric_strengths · layman→industry translate
The translation engine. The buyer says "soft and breathable for summer" — the AI maps to cotton, linen, modal, bamboo viscose and intersects with each supplier's fabric strengths.
Sample of the 60+ row translation table
- Soft, breathable, summery → cotton lawn, voile, linen, modal, bamboo viscose, rayon
- Drapey, slip-feel → silk charmeuse, cupro, viscose satin, modal jersey
- Crisp, structured → cotton poplin, twill, oxford, ponte, taffeta
- Stretchy, body-hugging → jersey + 5% elastane, ponte, scuba, performance interlock
- Warm, cozy, winter → wool melton, cashmere, fleece, French terry brushed, sherpa
- Heavyweight tee → 220–300 GSM jersey, ringspun cotton, Supima
- Sweater-like, no itch → cotton knit, merino wool, bamboo blend, viscose-nylon knit
- Denim — soft, broken-in → 9–11 oz right-hand twill, stretch denim 1–2% elastane
- Activewear / wicking → nylon-spandex (Supplex), poly-spandex interlock, brushed poly knit
- Lingerie / bra fabric → stretch lace, mesh tulle, microfiber jersey, power mesh
- Sheer / chiffon → polyester chiffon, silk georgette, mesh, organza
- Faux leather jacket → PU on knit/woven (drape), PVC on woven (cheaper)
- Eco / sustainable → GOTS organic cotton, recycled poly (GRS), Tencel/Lyocell
- Velvet-looking → velvet, velour, plush, chenille
- Compression / shapewear → high-elastane jersey (15–25%), power mesh
Naturals
- Cotton (Pima, Supima, Egyptian, organic, BCI, ringspun, combed)
- Linen, hemp, ramie
- Silk (mulberry, charmeuse, chiffon, georgette, dupioni)
- Wool (merino, lambswool, cashmere, alpaca, mohair)
Cellulosics + synthetics
- Viscose, modal, micromodal, Tencel/Lyocell, cupro, bamboo viscose
- Polyester (PET, recycled rPET, microfiber)
- Nylon (6, 66, recycled Econyl), acrylic, elastane/spandex
Knit constructions
- Single jersey, interlock, rib (1×1, 2×2, 4×2)
- French terry, fleece, pique, jacquard knit
- Ponte, scuba, double-knit, bonded
- Cable, fisherman, fully-fashioned, seamless
Woven constructions
- Plain: poplin, voile, lawn, organza, taffeta, chambray
- Twill: denim, gabardine, chino, drill, herringbone
- Satin/sateen, dobby, jacquard, velvet, corduroy
- Specialty: waffle, seersucker, oxford, tweed, melton
Q3Quantity — how many for this run?→ supplier.MOQ · supplier.MOQ ≤ buyer.qty
Different garments have different MOQ economics. The MOQ tier matrix by product category drives factory-class + flexibility filter.
Sample / capsule
- Cotton T-shirt (printed): 30–100 / color
- Hoodies / sweatshirts: 100–300
- Sweaters / knitwear (machine): 100–200
- Woven dresses / blouses: 50–200
- Leather goods (bags): 50–100
Standard runs
- Cotton T-shirt (cut-and-sew): 500–1,000
- Polo shirts: 300–500
- Denim / jeans: 500–1,000 / wash
- Activewear (poly-spandex): 500–1,000
- Hats / accessories: 300–500
Scale
- T-shirt mass: 1,000+ / color
- Hoodies: 1,500+
- Wool coats: 1,000+
- Activewear: 2,000+
- Athletic shoes: 3,000+
Flexibility heuristic
- Flexible: vertically integrated small mills (Tirupur), wholesale-cluster factories (Guangzhou), seasonal-slack windows
- Rigid: mass-production factories (Vietnam Tier-1), silk mills, fully-fashioned knit specialists
Q4Channel + Price — where you sell, what you charge→ supplier.FOB_range · back-calc target FOB
Margin stack drives realistic FOB target. Buyer states retail + channel; AI back-calculates the FOB band.
FOB target by channel
- DTC (Shopify own site): 12–20% of retail · brand 70–80% gross
- Etsy: 25–40% · net 30–50% after fees
- Amazon FBA: 18–30% · 25–40% net
- Wholesale to indie: 25–35% · 40–55% on wholesale
- Department / specialty: 15–22% · 30–45% net
- Through middleman: 20–28% · 65–75% if DTC
- Marketplace (Amazon/Tmall): 20–30% · 25–40% net
- Luxury / premium boutique: 8–15% retail · 60–75% gross
Rule-of-thumb stack
- Wholesale = 2.0–2.5× FOB landed
- MSRP = 2.2–2.5× wholesale
- DTC vertical retail = 4× FOB landed (Everlane / Warby model)
- Example: FOB $10 → wholesale $25 → MSRP $60–75 traditional
Q5Geography — where it's made + where it sells→ supplier.country + supplier.top_markets
Production-region preference filters factories by country. Sales-market answer auto-derives baseline compliance.
China — Pearl River Delta
- Guangzhou: women's dresses, fast-fashion, wholesale
- Shenzhen: premium / mid-premium women's wear
- Dongguan: broad capability, jeans, outerwear
- Foshan: denim, knitwear, underwear
- Dalang: sweater capital — "1 in 6 sweaters globally"
China — Yangtze River Delta
- Hangzhou: silk, premium women's, designer-caliber
- Suzhou: silk heritage, embroidery, luxury silk
- Shaoxing: Textile City of China — world's largest fabric market
- Yiwu: >50% of China's leggings, ~70% seamless underwear
- Huzhou: world's largest children's wear cluster
China — Fujian + Shandong
- Quanzhou + Jinjiang: performance fabrics, athleisure, sneakers
- Qingdao + Jinan: woolen fabric, suits, formal wear
India · Vietnam · Pakistan
- Tirupur (IN): knitwear / cotton T-shirt capital, vertically integrated
- Surat (IN): synthetics, polyester, sarees
- Ludhiana (IN): woolens, sweaters, thermals
- Ho Chi Minh region (VN): >60% of Vietnam exports — casualwear, US-bound
- Hanoi region (VN): knitwear, outerwear, EU-bound
- Karachi + Faisalabad (PK): cotton tee, baby clothing, knitwear
Q6Timeline — when do you need it?→ supplier.lead_time · supplier ≤ buyer.deadline − buffer
Lead time filter + seasonality blackouts. CNY / Tet / Diwali drop regional capacity 6–8 weeks.
Lead time tiers
- Sample lead: 7–21 days typical
- Bulk lead: 45–90 days FOB · 60 days median
- Express / Ready-to-Ship: in-stock SKU + minor modification
- Hard launch deadline: framework backs out 2–3 week buffer for shipping + customs
Seasonality blackouts
- Chinese New Year: 14–21 days closed · 6–8 week total disruption (mid-Jan–early Mar)
- Tet (Vietnam): end-Jan / early-Feb · same pattern as CNY
- Diwali (India): late-Oct / Nov · 2–3 weeks disruption
Q7Compliance — required certifications→ supplier.compliance_stack · supplier.certs ⊇ required_certs
Buyer's market auto-derives required certs. 3-state filter (verified vs PDF-uploaded vs none). 15 major certs the framework recognizes.
Labor / social
- BSCI: EU mass retail (H&M, C&A, Aldi)
- SEDEX SMETA: Tesco, M&S, Walmart-adjacent
- WRAP: Walmart, Target, Kohl's
- SA8000: premium brands · most rigorous
Chemistry / environment
- OEKO-TEX 100: EU + Japan + premium DTC
- OEKO-TEX MIG: sustainable-positioned brands
- GOTS: organic claim brands · baby / kids
- GRS: recycled content claims
- Bluesign: outdoor / performance
- Higg FEM: Cascale members
Market access
- CPSIA: mandatory for US children's wear
- Prop 65: anything sold into CA
- REACH: EU chemicals
- ISO 9001 / 14001: process signals
Buyer-market → required certs
- Mass US: WRAP + CPSIA + Prop 65
- EU eco: GOTS or OEKO-TEX MIG + REACH
- Outdoor / performance: Bluesign + Higg FEM
- Premium DTC: OEKO-TEX 100 + (BSCI or SEDEX)
- Children's: CPSIA + OEKO-TEX 100 Class I
Q8Customization — logos, colors, sizing, prints, embellishment→ supplier.vertical_integration · capability tier match
9 customization vectors. Each drives sample iteration count, MOQ uplift, and which factories can fulfill.
Logo / branding
- Method: woven label, printed (heat-transfer / TPU / silicone), embroidered (flat / 3D / puff), heat-transfer print, silicone patch, leather patch, debossed, sublimation, screen, DTG, foil, flock
- Placement: chest, back of neck, sleeve, cuff, hem, side seam, pocket, hangtag
Color + sizing
- Pantone TPX (paper), TCX (cotton), C / U, CMYK, custom lab dip
- Lab dip: 2–3 iterations free, $30–80 per extra
- Tolerance: ΔE <1 (premium), <2 (standard), <3 (mass)
- Standard runs: XS–XL, XS–XXL, XS–XXXL · Petite, Tall, Plus, Maternity
- Asian fit vs Western fit
Print + embellishment
- Coverage: placement, all-over, repeat, engineered
- Color count: 1, 2, 3, 4+ (drives cost)
- Embellishment: beading, sequins, embroidery (flat / 3D puff / chenille), appliqué, laser-cut, smocking, pleating
Trims · wash · packaging
- Buttons: corozo, horn, metal, polyester, shell, snap, hidden
- Zippers: YKK (premium), SBS, KCC; exposed, invisible, two-way, water-resistant
- Wash: garment dye, stone wash, enzyme wash, acid wash, distressed, vintage, brushed
- Packaging: polybag, hangtag, tissue, branded inserts
Q9Sample expectations — cost, lead time, iterations→ supplier.sample_policy · cost + lead + iterations within tolerance
#1 source of relationship breakdown in the first 30 days. Buyer expectations on sample cost, lead, and revisions filter against supplier's published sample policy.
Sample types
- Counter sample: factory's reference, 1 piece, paid
- Fit sample: for fit approval, made in available fabric
- Pre-production sample (PPS): in actual fabric, final approval
- Top of production (TOP): first off bulk, QA check
Cost + lead expectations
- Counter sample: $20–80 (paid, refundable on bulk PO) · 7–14 days
- Fit / PPS: $80–300 · 14–21 days
- Custom-pattern development: $200–800 · 21–35 days · multiple rounds
- Iterations: 2 included standard, 3 premium · +$ per extra
Q10Trust + IP — comfort with sharing design files, language fit→ supplier.lang + response_window + trader-flag
Final filter — operational trust signals. Vertical integration tier, language fit, response-window match, and trader-vs-manufacturer distinction.
Vertical integration tier
- CMT: you supply fabric; cheapest labor
- Full-package: factory sources fabric; higher unit cost
- Vertical-with-mill: factory has own mill; tightest control, small-batch friendly
- Trading company: middleman, NOT manufacturer — auto-flagged
Language + response
- Mandarin only → translation layer fires
- Mandarin + English (export-side) → standard match
- Cantonese (HK / Guangdong) → premium for HK-buyer fit
- <1h: Fast Response tier · <12h: standard · >24h: red flag
Output preview
Brief: "200 oversized cotton tees, 240+ GSM, ivory + sage, $4 landed, US-bound, 8-week timeline." Three ranked matches with trade-off notes.
Where the data came from + how the matches are picked
Nothing in the live demo is fabricated. Every supplier, FOB, MOQ, and audit signal traces back to a real listing on Alibaba's showroom pages. This page documents exactly how — so you can verify against source.
1 · Where the supplier graph comes from
📦Source: Alibaba.com showroom + IndiaMART directory→ ~19K records · ~12.5K unique supplier companies · 39 countries
All supplier data was pulled from Alibaba's category showroom pages — the same pages a buyer would land on if they searched a category like "cotton-t-shirt" directly on Alibaba. We didn't build relationships, we didn't pay for premium data — we scraped what's publicly visible to anyone with a browser.
Per-record fields
- Supplier name + Alibaba storefront URL (so you can click through to verify)
- Country of origin
- Years on Alibaba (supplier_year)
- Trading-company flag (manufacturer vs middleman, auto-flagged in red)
- Gold Supplier + Verified Supplier flags from Alibaba
- Third-party auditor (TÜV Rheinland · SGS · Intertek · BV)
- Promotion tags (Ready to Ship, etc.)
- Reviews: star score + review count
- Price ladder: tiered FOB by quantity bracket — verbatim from the listing
- Provide products: the supplier's listed product strengths
What we did NOT scrape
- Buyer messaging history (private)
- Internal Alibaba metrics like "response time" beyond what's public
- Anything paywalled or behind login
- Image assets — text data only
Tools used
- Scrapling (anti-bot Python scraping library)
- Stealth browser fingerprinting + slow-paced pagination
- Per-category resume logic (script can pause + restart without dups)
Run timestamp
- Initial scrape: 2026-05-06
- Latest data refresh: 2026-05-08
- Coverage: 486 distinct category queries (cotton-t-shirt, hoodie, denim-jeans, etc.)
- Pages per query: capped at the first 5 showroom pages (~150 listings/category) for breadth-over-depth
2 · How the chat extracts the brief
🤖Multi-turn agent — Kimi K2 (text) + Claude Sonnet 4.5 (vision)→ structured tool-call into 16+ dimensions, no free-text parsing
The chat isn't a single "pull info from one big prompt" — it's a turn-by-turn agent walking the brand-brief framework one question at a time. The model decides each turn whether to ask the next question, render a fabric picker, or call match_brief with all dimensions filled.
Models in use
- Text turns:
moonshotai/kimi-k2-0905via OpenRouter — picked specifically for native-fluent Mandarin sourcing-trade idiom (我司, 起订量, 大货, 打样, 克重) - Vision turns:
anthropic/claude-sonnet-4.5via OpenRouter — used when user attaches a sketch/mood image; reads silhouette, fabric texture cues, palette, brand tier
Interview order
- 1. Product type
- 2. Direct customer (gender, age, persona)
- 3. Brand reference (Everlane, COS, etc.)
- 4. Ideal retail price → FOB band auto-calculated (retail/4–retail/5)
- 5. Audience deeper (lifestyle, climate, values)
- 6. Fabric / texture (visual picker — see below)
- 7. Color palette
- 8. Visual references (optional, image attach)
Production decomposition
- Complex briefs (e.g. "tees with college logos, no inventory") trigger a decomposition turn BEFORE intake continues
- Project split into: factory_in_network · factory_out_of_network · talent_needed · external_service · user_handles
- Honest framing — "We don't have POD fulfillment, here's Printful/Gelato/Printify" beats fake matches
Fabric picker (visual translation)
- Non-fashion users can't articulate "240gsm fleece-back" — so we don't ask
- Picker shows 3 layers per chip: plain English ("Buttery soft"), brand reference ("like Lululemon Align"), factory spec underneath ("260gsm nylon-spandex 4-way stretch")
- User taps → factory spec flows into the brief as their answer
- Curated for 8 highest-volume categories; generic lightweight/midweight/heavyweight fallback for the rest
3 · How the 3 matches are picked
⚖️Hard filters → fit score → rank → top 3→ deterministic, no LLM in the ranking loop
After the brief is extracted, the supplier graph is filtered + scored client-side using a deterministic ranker — so the same brief always returns the same matches. No LLM is in the picking loop. This is a feature, not a limitation.
Hard filters (suppliers excluded if any fail)
- Category match:
supplier.search_query === brief.category - MOQ-fit:
supplier.moq ≤ max(brief.qty × 1.5, 2000) - Has FOB data:
supplier.fob_low_usd != null - Trading-company excluded:
!supplier.is_trading_company(manufacturers only)
Fit score (higher = better)
score = trust + audit + years − fobGap × 1.5 where: fobGap = |fob − target| / target trust = review_score × log10(reviews + 1) audit = 0.4 if auditor exists, else 0 years = min(supplier_year / 10, 1.5) × 0.2
Why those weights
- FOB gap is the single biggest factor (1.5×) — the buyer told us their target; missing it badly is a deal-breaker
- Trust = review score × log(review count) — log dampens "5★ from 2 reviews" vs "4.7★ from 200 reviews"
- Audit (+0.4) is a nudge, not a gate — many great factories don't have third-party audits, especially smaller mills
- Years is mild (max 0.3) — capped because new factories aren't penalized as harshly as fly-by-night
Top 3 picks
- Sorted by score, top 3 returned
- Each card carries a trade-off note ("+18% FOB but 3 sample iterations included" / "best price but trading-company") — the AI explains the trade so the buyer doesn't have to read tea leaves
- Position 1 = ★ Best fit · Position 2 = ⚖ Quality match · Position 3 = 💡 Alternative
4 · The first-message draft
✉️Brand-led intro · EN + Mandarin sourcing-trade idiom · auto-translates supplier replies→ generated once per brief, ready to copy + send
Once a top match is picked, the agent drafts the first outreach message in English + Simplified Chinese. The pattern follows what 30-year Asia sourcing operators actually use: open with brand context (who/why/what need), THEN the spec, THEN 4 numbered questions, close warm. Generic supplier reference so the message can fire to any of the top 3.
Why this matters
Suppliers triage hundreds of inquiries per week. A brief that opens with "we're sourcing 200 cotton tees" looks like a tire-kicker. A brief that opens with "we're building a Singapore-based basics label for sustainability-conscious professionals…" reads as a real brand who's done the work. Higher-quality factories ALWAYS prioritize real brands.
5 · What's NOT in this demo (yet)
Honesty about the gaps — what's still v0.5 vs v1.0 production:
Coming next
- Sentiment vetting from Xiaohongshu / 小红书 (Chinese buyer reviews)
- TikTok Shop signal for D2C-fluent suppliers
- Real-time response-window data (currently only static metadata)
- WhatsApp + WeChat handoff after first message
- Multi-supplier match for decomposed projects (today: top 3 in primary category only)
- Talent layer (pattern designers, branding, packaging) — currently flagged but not matched
Already live in this demo
- Alibaba 14,030 listings + IndiaMART 4,917 listings · ~12.5K unique companies · 39 countries
- Multi-turn guided chat (8-question interview)
- Visual fabric picker (8 curated category libraries)
- Production decomposition (project supply chain breakdown)
- EN + ZH first-message generation (sourcing-trade idiom)
- Image-attach support (vision-model fabric reading)
- Out-of-network honesty (suggests adjacent categories or talent partners)
— real supplier listings across two platforms
Pulled live from Alibaba.com showroom pages AND IndiaMART directory pages (the dominant B2B sourcing platform in India) using Scrapling. Cleaned via the Frenzee framework — 10 buyer-intent dimensions mapped to supplier-schema fields. factories.json · cleaned combined · raw Alibaba · raw IndiaMART
Country breakdown — where suppliers are based
Top sourcing geographies in the dataset| Supplier ↕ | Category ↕ | Country ↕ | Years ↕ | FOB ↕ | MOQ ↕ | Auditor ↕ | Tags | Score ↕ |
|---|---|---|---|---|---|---|---|---|
| Loading supplier graph… | ||||||||