A two-stage system produces recommendations in two steps: a nominator presents a small number of candidates selected from a larger pool. Then, the ranker rearranges nominated items and serves them to the user. In this talk, Denis Vorotyntsev shows the motivation for having a two-stage system at Unity. Denis presents the overview of the pipeline and architecture of the ML part. He also shares tricks they used to improve the quality of the solution and pitfalls they have faced.