Two practical personalization builds

Engineers shared two concrete approaches to news personalization this week: one thread describes building topic embeddings, quality weighting and an LLM reranker to beat platform baselines, while a demo shows a Confluence‑style recommender using pgvector, Gemini and FastAPI for semantic matching plus recency signals. These posts map onto a realistic pipeline for a briefing product: embeddings → behavioural signals → rerank. (Arnold on X, Ashish Kamboj on X)

Most recommendation systems still do the same blunt thing: they find articles that look similar to what you clicked before, then hope the top result is good enough. Two engineers posted builds this week that split that job into three smaller jobs instead: find by meaning, adjust with behavior, then rerank with a language model. (developers.openai.com) The first step is an embedding, which is just a long list of numbers that places each story near similar stories in a map of meaning. Google’s Gemini Embeddings docs describe this as semantic search, where related text lands close together even when it does not share the same keywords. (ai.google.dev) That fixes one old problem in news products: a reader who clicks “Federal Reserve rate cut” may also want “bond yields” or “mortgage costs,” even if none of those headlines repeat the same words. Meaning-based retrieval catches that relationship because the vector is comparing concepts, not just matching strings. (ai.google.dev) The second step is storage, and one practical choice is PostgreSQL with the pgvector extension. pgvector lets a normal PostgreSQL database store embeddings beside article IDs, timestamps, and user events, then run nearest-neighbor search without moving data into a separate vector database. (github.com) That matters because a briefing product usually needs two kinds of facts at once: “stories similar to this one” and “stories published in the last 6 hours.” Keeping vectors and ordinary columns in one PostgreSQL table makes it easier to blend semantic similarity with recency, source, and click history in a single query path. (github.com, access.crunchydata.com) The third step is behavior, which is where personalization stops being generic and starts feeling like memory. A system can raise the score for climate stories if a reader opened 8 climate pieces this week, or lower sports stories if the same reader skipped the last 20. (arxiv.org) But behavior alone has a trap: it can keep serving “more of the same” and miss the one article that is newly important. That is why the demo using semantic matching plus recency is practical for news, because a fresh article from 30 minutes ago can outrank a stale but similar article from 3 days ago. (github.com, access.crunchydata.com) The last step is reranking, which means taking maybe 20 decent candidates and asking a stronger model to sort them more carefully. OpenAI’s reranking example describes this as a second pass after embeddings, used when the first pass is fast but not accurate enough on its own. (developers.openai.com) That second pass is where a product can inject editorial taste without hard-coding thousands of rules. A reranker can weigh article quality, duplication, novelty, and user intent together, the way a human editor would scan a shortlist instead of the whole internet. (developers.openai.com, openreview.net) You can already see the shape of a realistic news stack in these builds: embeddings to cast a wide net, behavioral signals to personalize the catch, and reranking to decide what earns the top slot. Atlassian described a similar meaning-aware search goal for Rovo in March 2026, where users should not need exact titles or IDs to find the right item. (atlassian.com) The interesting part is not that any one ingredient is new. The interesting part is that the ingredients now fit inside ordinary tools like FastAPI, PostgreSQL, pgvector, and hosted embedding models, which means a small team can build a respectable personalized briefing engine without inventing a new search company first. (github.com, ai.google.dev)

Get your own daily briefing

Scout delivers personalized news, insights, and conversations tailored to your role and industry.

Download on the App Store

Shared from Scout - Be the smartest in the room.