dating apps // decisioning infrastructure

Who to show next,
ranked per user.

The discovery layer between candidate generation and the profiles a user swipes. Gortex orders the stack per user and places boosts and promoted profiles in one call, so your team ships product instead of running a ranking engine.

# 01 / the problem

Match quality is a ranking problem that never stops moving.

Who a user should see next changes with every swipe, every new signup, and every shift in intent. On top of that, every boost, super-like, and promoted profile is a monetization surface that has to stay consistent with the organic order, or paid visibility starts to feel like noise. The team that ranks the stack keeps re-tuning it, on the request path, forever.

01 a moving target on every load
Attraction, mutual intent, and freshness shift constantly. The order that was right an hour ago is stale by the next session, for both sides of the match.
02 latency on every swipe
Ranking runs on the request path. Every added signal is latency you pay on every discovery load, for every user, at peak evening traffic.
03 boosts bolted on later
Boosts and promoted profiles get built as a second system, then reconciled with organic ranking by hand, release after release.
04 no record of why a profile placed
When a user questions why they saw a profile, or a boost buyer disputes reach, there is often no trace of why it ranked where it did.
# 02 / how gortex fits

One endpoint ranks the stack and places boosts in the same response.

You send a user, a surface, and the candidate profiles you already retrieved. Gortex returns the organic order and the boosted or promoted placements together, inside one sub-200ms call, with a decision id you can audit later. The ranking is a recommendation engine api and a personalization api resolving together, so paid visibility never fights the order a user actually wants.

01
your retrieval
you gather the candidate profiles: nearby, mutual intent, or fresh signups.
02
gortex decides
rank the profiles per user and resolve boosts and promoted slots against that order, in one call.
03
your surface
render the discovery stack with boosts and promoted profiles already placed and priced.
01 you keep retrieval
Gortex ranks the profiles you bring. No data migration, no re-platforming, no candidate store to hand over.
02 ranking and monetization in one call
Organic order and paid placement resolve against each other via the sponsored listings api, so a boost or promoted profile only takes a slot when the placement still fits the user.
03 every decision is traceable
Each response carries a decision_id and a trace_id. The reason a profile ranked is recorded, not reconstructed after a dispute.
04 one sub-200ms call
Ranking and boost placement resolve inside a single sub-200ms p99 budget, so you can call it on every discovery load without a ranking team to run it.
# 03 / the call

One request. A ranked stack and its boosts.

POST /v1/decide
200 OK · 73ms
// Rank a discovery stack and place its boosts.
$ curl api.gortex.ai/v1/decide \
  -H "Authorization: Bearer $GORTEX_KEY" \
  -d '{
    "recipient": { "id": "u_8120" },
    "context":   { "surface": "discovery_stack" },
    "items":     [ /* 200 candidate profiles */ ]
  }'

{
  "ranked":      [ /* ordered profile IDs */ ],
  "sponsored":   [{ "slot": 4, "price": 0.37 }],
  "decision_id": "d_01HXZ3M",
  "trace_id":    "t_01HXZ3N"
}
# 04 / questions

Dating app ranking, answered plainly.

What is a ranking API for a dating app?

An endpoint that takes the profiles you retrieved for a user and returns the order they should see them in the discovery stack. Gortex places boosts and promoted profiles in the same response, so the organic order and monetization resolve together.

Do I need to move my match data to use Gortex?

No. You keep retrieval and send the candidate profiles you already have. Gortex ranks who to show next and returns the order plus any boosted or promoted slots. There is no re-platforming and no data migration.

How fast is a discovery ranking call?

Ranking and boost placement resolve inside one sub-200ms p99 budget, on the request path, so you can call it on every discovery load and every refresh of the stack.

# 05 / start

See a discovery ranking decision, live.

The private beta is by invitation. Tell us the surface you rank and how you monetize it, and we will get you a key.