Models
Closed beta. Inference access is granted per engagement. Reach out to get a key.
You can ask a language model what a person will do next. It will answer fluently, because it has read an enormous amount of what people say about themselves: reviews, surveys, forum posts, interviews. What it has barely seen is what those same people then did.
Our models are trained the other way round. The training data is ordered sequences of real actions with real consequences attached, so predicting the next one is the task the model was built for rather than a thing it infers from self-report.
That is the claim. It is falsifiable, it is the one we care most about testing, and every engagement starts by scoring it against a holdout you withheld from us.
What that buys you
| Question | A language model | A behavioral model |
|---|---|---|
| What would someone say about this product? | Strong. This is what it was trained on. | Not the task. |
| What will this person do next? | Inferred from how people describe themselves. | Learned directly from sequences of what people did. |
| Which two of these people fit together? | Reasons over stated preferences. | Scored on outcomes that actually held. |
| How does a population respond to a change? | One persona at a time, from description. | Run the sequence model forward over a real distribution. |
A behavioral model is narrower than a language model and better inside that range. If your question is really about language, use a language model. We are not trying to win that comparison.
What we serve
| Model | Task | Status |
|---|---|---|
jean-rec-1 | Next-item recommendation over your catalog | Closed beta |
More heads come off the same pretrained backbone as they get good enough to be adaptations rather than separate systems. See Foundation models for how that is sequenced, and Simulation for where it leads.
Three ways to call a model
The endpoints overlap less than they look. Pick by what you want back.
| You want | Endpoint | Bound to |
|---|---|---|
| Ranked items from your catalog | POST /generate | A fitted tokenizer |
| A distribution over what happens next, including action type | POST /models/{id}/predict | A model |
| A vector for a person, to use in your own model | POST /models/{id}/embed | A model |
/generate decodes semantic IDs under a beam constrained to your catalog, so everything it
returns is a real item. /predict is the raw backbone: it does not need a tokenizer and it can
answer about actions that are not catalog items at all. /embed skips prediction entirely and
hands you the representation.
Deployment
| Hosted | Dedicated | Your environment | |
|---|---|---|---|
| Operated by | Us | Us | You |
| Isolation | Shared capacity | Reserved capacity | Full |
| Data leaves your boundary | Yes, under the agreed scope | Yes, under the agreed scope | No |
| Weights | Not exposed | Not exposed | Delivered to you |
Which one is right is usually decided by your data governance rather than by latency. That conversation happens during scoping.
Request beta access: jonathan@jeantechnologies.com