Bosca / Recommendations

Placements

A surface for every spot

A placement is a named serving surface — a home feed, an article sidebar, a "you might also like" row. It binds a set of strategies and an item limit, and every request runs through the same ranking pipeline before it returns.

The building block

Name it, bind it, place it

A placement has a slug your app requests by, a set of strategies it draws candidates from, and a limit. Ask for it by slug and it assembles a ranked set from whatever its strategies have materialized — personalized when you pass a profile, general when you don't.

  • Bind more than one strategy; priority decides who contributes first.
  • Editing the bound strategies replaces the list — the placement is exactly what you declare.
  • Empty results almost always mean the strategies haven't been evaluated yet — the test console can trigger that in one place.
placement
{
  "slug": "home_feed",
  "name": "Home Feed",
  "maxItems": 20,
  "strategyIds": ["personalized", "trending"]
}

The serving pipeline

From pool to polished feed

Every request runs the candidate pool through the same fixed sequence. It's what turns a raw set of candidates into a feed that feels considered — fresh, personal, and varied.

  1. 1

    Filter dismissals

    Anything the viewer hid is dropped up front.

  2. 2

    De-duplicate

    The same item from two strategies keeps its highest score.

  3. 3

    Freshen

    Recent content gets a boost so the surface never goes stale.

  4. 4

    Re-rank for the viewer

    Scores tilt toward the categories this person favors.

  5. 5

    Diversify

    A per-category cap keeps one topic from taking over.

  6. 6

    Floor & trim

    A score floor drops weak candidates; the rest is cut to the limit.

Quality on the surface

Only what's worth showing

Two controls keep a placement honest. A score floor drops candidates the engine isn't confident about, so a thin surface shows fewer results rather than weak ones. A per-category cap keeps any single topic from crowding out the rest.

  • The floor is off by default — turn it up when you'd rather show less than show filler.
  • Diversity is applied before the final trim, so the cut set is already balanced.
before → after floor
The Deep Field0.94
Notes on Slow Media0.88
Field Guide: Tides0.62
score floor · 0.50
Loosely Related0.41
Barely a Match0.28

Keep exploring

More on Recommendations