Skip to content
Contact me

PersonaLM

Buyer intelligence for ecommerce brands: turn your own store data into named customer groups and ranked campaigns, overnight.

Feb 17, 2026Design + CodeRetiredFounder

The product

“Klaviyo sends emails. Tresl finds segments. PLM tells you which campaigns to run.”

PersonaLM was built for founders and operators of $500K–$3M ecommerce brands. It replaced the week-long customer-segment brief a brand would otherwise buy from a research firm. Overnight, it turned a brand's own store data into a Customer Activation Map: named customer groups, campaigns ranked by revenue, plus ready-to-use Klaviyo segments and Meta seed lists. It connected to WooCommerce, Shopify, GA4, BigCommerce, CSV and a REST API, and was 88% accurate on customers it had never seen.

I founded it and built across brand, product, ML and backend: a Next.js app on Vercel, a FastAPI backend on Railway, and GPU training jobs on Modal.

The models

The rule in production was tower only: trained models predict, LLMs explain.

  • Learned tower (shipped). A two-tower-style scorer (an MLP of about 1.7M parameters) over LLM-written preference documents, trained with a contrastive loss and hard negatives. It reached 0.792 test AUC on the main benchmark and 0.942 on one brand's holdout, and served production.
  • Qwen3-8B SFT and GRPO. A LoRA fine-tune on 40,588 examples through Tinker, followed by a GRPO run. GRPO collapsed (every persona bought the same things), so that path was abandoned.
  • Qwen3-Embedding-0.6B. A contrastive full fine-tune on 30,792 purchase pairs. It scored 0.685 AUC, just under an off-the-shelf OpenAI embedding at 0.691, which settled that question.
  • DistilBERT heads for churn and category affinity, plus XGBoost as a diagnostic baseline.

PersonaLM has since been retired; the team pivoted to a new product.