The Soul Company, Inc.
See it livePricingBook a demo

The Soul Agent is ours, and this is what it knows.

A community manager reads the room, decides what should happen this week, writes it, puts it in front of the right people, and remembers what worked. The Soul Agent does all five, for every company at once, without being asked. Below is exactly how, named honestly: which parts are ours and took years of decisions to get right, and which parts are a language model doing the one thing a language model is good at.

What is actually ours.

Anybody can call a model and ask it for event ideas. Four things make this a product instead of a prompt, and none of them is the model.

One vocabulary, so people from different apps are comparable.
A ring says early riser. A running app says runner. Different strings, so two people who both get up and run at dawn matched on nothing. Every person is read once into one fixed set of words, and everything downstream runs on that rather than on whatever a third party API happened to call it. It is the layer that makes a person from one company legible at all, and it is the reason this works on the second company as cheaply as the first.
Taste, enforced in code rather than asked for in a prompt.
Told to write for a ring company, a model writes about the ring. You get "Dawn HRV Walk" and "Midday Nap Science Chat": correct, relevant, and not a thing any human wants to do on a Sunday. The rule that fixes it is that the activity has to be good with the company name taken off, and the audience shows up in the hour and the place rather than in the vocabulary. That rule is checked at the point of writing, because a rule living only in a prompt holds until the day the model is in a mood, and that failure lands on a customer board under their brand.
Matching that is arithmetic, not a model.
Once people are described in one vocabulary, working out who overlaps is whole-word comparison plus a bias toward the hours somebody actually keeps. Deterministic, inspectable, the same answer every time, and explainable to the person it ranked. We would rather say that than imply a learned matcher we do not have.
A supply rule that lets it program a city it has never touched.
Every gathering is somewhere anyone can walk into for free. Nothing booked, nothing held, no owner to call. That is not a limitation we settled for, it is what removes the only real blocker to scale: a company can sign up at 10am and have a real board in a city we have never operated in by lunch, because there was never anything to arrange.

What it does, in the order it does it.

Nothing in this sequence waits for a person to have an idea. That is the whole difference between an agent and a tool for running events: a tool needs somebody to open it.

01
It reads the company.
From the name and the work email, before anyone has installed anything. Who their users are, what those people are into, and what the product actually is. A company we have never heard of gets a board written for their users on day one instead of a generic city calendar in their colours.
A model call, once per company, stored on the row.
02
It reads their design language.
It opens their real site and reads it the way a designer would: what the page is made of, what type they set, how round a corner is, whether cards are outlined or filled, and how they write. The tab renders in that, so it looks like their own team built it rather than like a widget someone pasted in.
Their site, parsed for design tokens, then judged by a model.
03
It reads each person.
A ring says early riser. A running app says runner. Those are different strings, so two people who both get up and run at dawn used to match on nothing. The agent reads each person once and writes down what it understands about them in one shared vocabulary, and everything downstream runs on that instead of on whatever words a third party API happened to choose.
Refreshed on a schedule, not once at signup.
04
It writes things people actually want to do.
This is the part that is hard, and the part everything else is in service of. A model told to write for a sleep company writes about sleep, and you get a seminar with the seats taken away. The rule is that the activity has to be good with the company name removed, and the fit shows in the hour and the place instead: what makes a gathering right for people who wake at five is that it is at six in the morning and everybody there also wakes at five. The test is whether somebody would text it to a friend in those words.
Checked at the point of writing, not asked for in a prompt.
05
It programs the week.
Real gatherings, at free public walk-in places, written for that company’s people in that company’s voice. Nothing is reserved and nobody is billed for a room, which is why it can program a city it has never touched on the day a company signs up.
Runs every six hours, for every company, unprompted.
06
It learns from who turned up.
Every run reads that company’s own past board first: which shapes of gathering filled, which drew nobody twice, which hours worked. That goes in as evidence rather than as a rule, because a model is better at "these three filled and these two did not" than at any rule we could invent about a stranger’s users.
Arrivals once there are enough of them, commitments until then.
07
And from what each person did on a Saturday.
Tags describe somebody the way their device sees them. Turning up describes them the way a Saturday does, and where the two disagree the Saturday is right. Two people with identical tags used to get an identical board forever, however differently they had behaved. Now an arrival counts for more than a yes, a yes counts for more than nothing, and the hour somebody genuinely leaves the house beats any tag claiming to know their rhythm. It reorders their board and never filters it, so the worst it can do is put something last.
Three passes before anything is demoted, and one arrival outranks five.
It takes no for an answer.
The company can pull any gathering off their own board before it happens, and say why. That refusal is not weighed against how well the idea polled, it is obeyed: the agent never writes anything of that shape again, and a reworded version of it is refused at the point of writing rather than only in the prompt. It is the one control they get, and it exists because handing an agent your brand and hoping is not a thing anyone should have to do.
Reversible, and nothing is ever deleted.

How it learns a person.

This is the part that is ours. The inputs are coarse tags anyone could collect. The translation into something two strangers can be matched on is the asset, and reading our API shows you the output and none of it.

The vocabulary is closed.
The agent may only describe someone using a fixed set of traits. Free text would be fluent and useless: "loves early mornings" and "morning person" do not match each other, and we would be back to matching strings with better prose. A fixed set is the only way two people arriving from different apps land on the same word.
A trait is a join key, so it is never renamed.
Entries get added. None is ever renamed, because everyone already carrying the old word would silently stop matching anyone. Anything the model returns outside the vocabulary is dropped rather than trusted, and it does reach for plausible neighbours.
The matching itself is not a model.
Once people are described in one vocabulary, deciding who overlaps is whole word comparison plus a bias toward the hours someone actually keeps. It is deterministic, inspectable and the same every time. We would rather say that than imply a learned matcher we do not have.
It reads what it was given, not everything it could reach.
Coarse tags that were already reduced when the account was connected, and the titles of gatherings the person committed to. No heart rates, no sleep records, no locations, no listening history, no other members. A prompt cannot leak what was never loaded.

What it will not do.

Each of these is enforced in code rather than asked for in a prompt, which is the only version of a rule that survives a model having a creative afternoon.

It never invents a venue relationship.
Every gathering is somewhere anyone can walk into for free. Nothing is booked, nothing is held under our name, and if money is spent each person buys their own.
It never writes the same gathering twice.
Near duplicates are caught by shape, not by exact title, because a model varies the tail every time and a board carrying both reads generated.
It never fills a board with somebody else’s events.
A company’s tab is theirs. Shared gatherings only ever top up what is left after their own.
It never claims a turnstile.
A check in is self reported and can only be tapped while the gathering is happening. That is what makes it worth more than an RSVP, and it is still not proof of presence. We will not describe it as one.

Watch it program a board for your company.

The sandbox is free, needs no card and no call. Give it your company name and it writes your users a week, in your brand, in front of you.

Try it now →Book a demo
© 2026 The Soul Company, Inc.
PricingDocsPrivacyTermsDPABook a demo