Turn user behavior into structured relationships
Ship personalization, discovery, and analytics features without building a recommender from scratch. Send events, get back ranked users, groups, and feeds — on infrastructure you don't have to run.
Building blocks
Eight primitives. One API. Every combination you need.
Describe your domain, send the events, and let the platform do the relationship math. Compose the pieces differently for every product you ship.
Vocabulary
Teach the platform your domain. Tags and topics become the shared language every other primitive understands.
Signals
Track what your users actually do. Likes, purchases, enrollments, views — any event, any weight, shaped to your product.
Affinities
Skip the modeling work. Send signals in, get ranked relationships between users and topics out — computed automatically.
Scoring
Decide what "relevant" means for your product. Swap presets to reshape results without touching the underlying data.
Clustering
Discover user segments you didn't know existed. FAISS + HDBSCAN surface groups from behavior — no manual rules required.
Campaigns
Put the right content in front of the right users. Budget controls, item targeting, and impression tracking built in.
Feed
Ship a personalized feed without running a recommender. One call returns a ranked stream — signals, affinities, and scoring already composed.
Analytics
See what's working without building a data pipeline. Engagement, affinity coverage, cluster shape, and campaign performance — queryable out of the box.
Three steps
From signup to a personalized feed in three calls
You decide what matters. The platform handles the indexing, scoring, and ranking behind it.
Describe what your users care about
Create a vocabulary of tags and topics — music genres, skill categories, product types, whatever matters in your product. Everything downstream hangs off this taxonomy.
POST /api/v1/vocabulary/tags
{
"name": "jazz",
"category": "genre",
"description": "Jazz music"
}Send the events you already have
Post a signal whenever a user interacts. You choose what each signal type means and how heavily it counts — nothing is hardcoded.
POST /api/v1/users/u_42/signals
{
"signal_type": "listen",
"tag_name": "jazz",
"strength": 0.8
}Ask for results when you need them
Affinities update on their own. Pull a ranked feed, read cluster membership, or launch a campaign — the same primitives back every call.
GET /api/v1/users/u_42/feed/ranked
// Returns users ranked by affinity,
// scored by your configured preset,
// filtered by consent layer.Use cases
One toolkit. Every kind of product.
Creator platforms, marketplaces, learning apps, and professional networks all rely on the same primitives — composed differently for what you're building.
Creator & fan platforms
Match fans to creators they'll actually stick with, and keep private tiers private.
Community apps
Surface the interest groups already forming inside your product — without hand-curating a single one.
Marketplaces
Promote the right listings to the right buyers and measure what the promotion actually earned.
Content platforms
Turn passive watch time into a feed that keeps getting sharper the longer users stay.
Learning platforms
Pair learners by skill, not by guesswork — and watch cohorts form as they progress.
Professional networks
Introduce people who should actually meet. Expertise-weighted matches, ranked by likely signal.
Infrastructure
Production-ready before your first user signs up
Encryption, tenant isolation, and consent filtering are on by default — so the safe path and the fast path are the same path.
User PII stays encrypted — no extra work
Field-level encryption and blind search indexes run through ShrouDB Cipher by default. You never store plaintext.
Tenants are isolated from the first request
Every call is scoped to a client. Data, configuration, and scaling stay separate — no shared-state footguns to discover later.
Ship private tiers without building your own consent layer
Scope visibility and matchability per trust level. The data model already treats consent as a first-class filter.
Pay only for the tier you use
Start with the graph — signals, affinities, vocabulary. Turn on scoring, clustering, campaigns, and feed when your product needs them.
Your first API call is a minute away
Sign up, grab your key, and start sending signals. Free tier, no credit card.