# Improving Embedding-Based Candidate Generation for Recommender Systems with a Two-Tower Model

DevFeed: [Improving Embedding-Based Candidate Generation for Recommender Systems with a Two-Tower Model](<https://devfeed.tech/articles/improving-embedding-based-candidate-generation-for-recommender-systems-with-a-two-tower-model-22610.md>)

Original publisher: [Read original article](<https://medium.com/glassdoor-engineering/improving-embedding-based-candidate-generation-for-recommender-systems-with-a-two-tower-model-c222123beb7f?source=rss----288d984af747---4>)

Author: Ahmad Khan

Published: 2026-03-18T21:04:58Z

Content type: article

Language: en

Sources: [Glassdoor Engineering](<https://devfeed.tech/sources/glassdoor-engineering.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Neural Network](<https://devfeed.tech/topics/neural-network.md>), [data](<https://devfeed.tech/topics/data.md>), [ordering](<https://devfeed.tech/topics/ordering.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [data](<https://devfeed.tech/tags/data.md>), [embedding](<https://devfeed.tech/tags/embedding.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model-training](<https://devfeed.tech/tags/model-training.md>), [neural-network](<https://devfeed.tech/tags/neural-network.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [recommender-systems](<https://devfeed.tech/tags/recommender-systems.md>), [self-supervised-learning](<https://devfeed.tech/tags/self-supervised-learning.md>), [two-tower-model](<https://devfeed.tech/tags/two-tower-model.md>)

## AI overview

Glassdoor describes a two-tower neural network for candidate generation in its Community feed recommendation system. The model learns user and post embeddings from interaction data to retrieve potentially relevant posts before filtering, ranking, and ordering.

## Source excerpt

Overview At Glassdoor (part of Indeed), millions of professionals come to learn about workplaces, ask career questions, and share experiences through our Community platform. When users open the Community Home Feed, they expect to see posts that are relevant to their interests, industry, and career stage. However, generating that feed is not a simple task. At any moment, thousands of new posts across hundreds of community feeds compete for attention. From discussions about interview experiences to workplace culture questions and industry advice, the platform contains a diverse and constantly evolving stream of content. The challenge is to quickly identify which of these posts are most relevant for each user. To address this problem, we built a multi-stage machine learning recommendation system that efficiently sources, filters, and ranks posts before they appear in the user's feed. In a previous post, Inside Glassdoor's Multi-Stage Recommendation System, we described the architecture of this system and how the different stages work together to deliver personalized content. Snapshot of the Glassdoor Community Home Feed At a high level, the system consists of four stages: Candidate Generation -- retrieves a large set of potentially relevant posts Filtering -- removes posts that are undesirable, duplicated, or already seen Ranking -- predicts which posts a user is most likely to engage with Ordering -- applies heuristics to maintain diversity and freshness in the feed Each stage progressively narrows the set of posts until only the most relevant posts remain. 4 Stage ML RecSys Design In this blog post, we focus on the Candidate Generation stage, which is responsible for retrieving an initial pool of potentially relevant posts from a very large pool of posts across many different feeds. For Candidate Generation, we developed a Two-Tower Neural Network Model that learns embeddings for users and posts based on real interaction data. In the rest of this blog post, we will walk