MaIA Scan

haircare product recommendations from a selfie

Haircare Product Recommendations From a Selfie: Matching Hair Attributes to Your Catalog

Most beauty personalization stops at skin. Here is how to build haircare product recommendations from a selfie — mapping hair attributes to your catalog, handling low confidence and shipping it on product pages, WhatsApp and CRM.

5 min readMaIA team · B4A

Most beauty personalization projects start with skin: tone, undertone, shade matching. Hair gets a quiz, three questions long, and whatever the shopper guesses about themselves. That gap is expensive, because haircare baskets repeat — shampoo, conditioner, mask, leave-in — and a wrong first recommendation kills the repeat. Building haircare product recommendations from a selfie closes the gap: the customer sends one photo, you get structured hair attributes back, and your catalog logic does the rest.

This article is about the part most teams underestimate — not the analysis, but the mapping between attributes and SKUs.

Why hair needs its own recommendation logic

Shade matching has one dominant axis. Haircare has several, and they interact.

A customer with fine hair and a customer with coarse hair may both want volume, but the products that deliver it are different — and the same mask that one loves will weigh the other down. A shopper with wavy hair looking for definition and a shopper with wavy hair looking for frizz control belong in two different shortlists from the same attribute set.

So a haircare recommendation engine needs two inputs:

  • What the photo can observe — the hair attributes returned by the analysis, each with a confidence score.
  • What only the customer can tell you — the goal (definition, volume, repair, length retention), chemical history (coloured, relaxed, bleached) and routine habits.

The selfie removes the questions people answer badly. The remaining questions are the ones people answer well, because they are about intention, not self-classification.

Haircare product recommendations from a selfie: what the profile gives you

MaIA Scan takes a photo and returns a beauty profile as JSON: skin tone and undertone, skin type and condition, hair attributes, and a confidence value per field. The model was trained on Brazilian skin, which matters for any brand whose audience is not well represented in generic datasets.

Two practical consequences for haircare:

Read the confidence, not just the value

Every field comes with its own confidence. A profile is not a single verdict — it is a set of fields, some of which you can trust enough to filter on and some of which you cannot. Treat them differently in code:

  • High confidence → use the attribute as a hard filter or a strong ranking signal.
  • Low confidence → do not filter on it. Either ask one targeted question, or fall back to a broader shortlist that is safe across the possible values.

The worst pattern is silently acting on a weak field, because the customer sees a confident recommendation built on a guess.

One photo, two catalogs

The same call returns skin and hair fields. If you sell both, one selfie can seed a haircare shortlist and a skincare or complexion shortlist in the same session. You do not need a second capture, and the customer does not feel interrogated.

Turning attributes into a shortlist

Step 1: write the rules with your product team, not your data team

Before any code, take your haircare catalog and tag every SKU on the same vocabulary the API returns, plus the goals you market against. If your product pages say "for curly hair" but your PIM has no structured field for it, that is the first project — not the integration. An attribute you cannot query is an attribute you cannot recommend on.

Step 2: separate hard filters from soft ranking

Hard filters exclude: products that genuinely do not suit an attribute. Keep this list short and defensible. Soft ranking orders what survives: goal match first, then format, then price tier, then stock and margin. If your filters are too aggressive, you will routinely return two products and a dead end.

Step 3: recommend a routine, not an item

Haircare is bought in steps. A shortlist of one shampoo converts worse than a three-step routine where each item explains its role. Build the response as a routine template — cleanse, treat, finish — and fill each slot from the filtered set.

Step 4: always explain the why

"Recommended for wavy, medium-density hair looking for definition" earns trust. An unexplained ranking looks like an ad. The explanation also gives you a feedback surface: when the customer disagrees with the reason, you learn something the photo could not tell you.

Where the recommendation is delivered

The logic is the same across channels; the packaging is not.

  • Product page — a widget that captures the selfie and reorders the collection or shows a "your routine" block.
  • WhatsApp — the customer sends a photo in a conversation they already use; the reply is a routine with links.
  • CRM — the stored profile feeds segments and post-purchase flows. A refill reminder that matches the actual routine performs very differently from a generic one.

If you want the conversational version with your own catalog, product names and tone of voice, MaIA Beauty Advisor is delivered as a project with the B4A team rather than as a self-serve API — it reads the beauty profile and recommends your products on WhatsApp, product pages and chat.

Guardrails worth writing down

No diagnosis. The analysis describes visible attributes of a photo. It does not assess scalp health, hair loss or any condition, and it does not replace a professional. Keep the copy on the page aligned with that: "what we can see in your photo", never "what you have".

Consent and storage. Decide early whether you store the photo, only the derived profile, or nothing beyond the session. Write it in the interface, not only in the privacy policy.

Catalog drift. Rules decay when the assortment changes. Schedule a review whenever a line is launched or discontinued, and monitor how often the engine returns fewer than three products — that is your early warning that filters are too tight.

Measure against a control. Compare the selfie-driven shortlist with your current default merchandising for the same audience. Results vary with each brand's catalog, traffic and channel, so the only number that means anything is your own.

If you want to see the fields and confidence scores against your own photos, create an account, buy credits and get an API key in the API documentation — or talk to the B4A team about mapping your haircare catalog to the profile.

Frequently asked questions

What does the API return for hair?

MaIA Scan returns a beauty profile as JSON with skin tone and undertone, skin type and condition, hair attributes and a confidence value for each field. The exact field names and formats are in the API documentation.

Can a selfie replace the haircare quiz entirely?

No, and it should not. The photo removes the questions customers answer badly — self-classifying their hair — while the quiz should keep the questions only they can answer: goal, chemical history and routine habits.

What should happen when confidence is low on a hair field?

Do not use that field as a hard filter. Either ask one targeted question to confirm it, or fall back to a broader shortlist that stays valid across the possible values.

Does the analysis detect hair loss or scalp conditions?

No. MaIA Scan describes visible attributes in a photo. It does not diagnose, treat or replace a dermatologist or any other professional, and your interface copy should reflect that.

What do I need in my catalog before integrating?

Every haircare SKU tagged on the same vocabulary the API returns, plus the goals you market against, in a queryable field. An attribute that exists only in page copy cannot be used for ranking.

haircarerecommendationsbeauty APIpersonalizationCRM

← All articles