How to build a personalized feed using ❜embed’s feed builder

May 26, 2025

Introducing ❜embed’s Feed Builder

The ❜embed Feed Builder is your no-code tool for creating personalized, real-time feeds from Farcaster data—soon expanding to include on-chain sources like swaps, prediction markets, mints, DeFi protocols, and more.

In this article, we’ll break down how the Feed Builder works under the hood, and how you can use it to create fast, relevant, and engaging feeds for your app.

How Recommendation Algorithms Work: A High-Level Overview

Building a recommendation algorithm is hard. You need to wrangle datasets, choose ranking models, serve results at scale, and hit engagement goals. We’ve broken this down into four core steps:

  1. Candidate Generation – What content should we even consider?

  2. Ranking – What’s most relevant right now for this user?

  3. Visibility Filtering – What should we hide or prioritize before showing?

  4. Feed Construction – How do we compose a final feed that feels dynamic?

Let’s quickly review each of these in detail.

Step 1: Candidate Generation

What content should we even consider recommending?

Goal: Narrow millions of potential posts down to a manageable shortlist (~hundreds) for ranking.

We do this by:

  • Encoding attributes (content type, text, likes, behaviors) into embeddings

  • Applying similarity-based filtering (collaborative + content-based)

  • Removing spam, NSFW content, and irrelevant topics or authors

Filters you can apply:

  • Include: apps, FIDs, authors, channels, AI labels, embed domains, publication types, languages, geos

  • Exclude: specific authors, AI labels, or locations

  • Engagement thresholds: minimum/maximum likes

Under the hood:

  • We use Sentence-BERT for embedding text (posts, bios, titles)

  • We explore multi-modal models like OpenAI’s CLIP for matching text and images

Step 2: Ranking

What’s most relevant right now for this user?

Goal: Score the shortlist of candidates to surface the most relevant content.

We do this by:

  • Choosing a scoring function based on your engagement goals (likes, shares, clicks)

  • Combining multiple interaction signals into a single relevance score

Ranking algorithms that are available to you:

  • DEFAULT: balanced_feed_v0.0.1 – balanced mix of interest + affinity

  • balanced_feed_interest_bias_v0.0.1 – Lean toward user interests

  • balanced_feed_affinity_bias_v0.0.1 – Lean toward social graph affinity

  • user_affinity_all_following_v0.0.1 – Based on interactions from all followed users

  • user_affinity_closest_following_v0.0.1 – Focus on tightest connections

  • user_interest_all_v0.0.1 – Long-term interaction history

  • user_interest_recent_v0.0.1 – Recent behavior-driven interests

Under the hood:

Our models combine open-source LLMs for classification and moderation with custom ML layers fine-tuned for web3 data and Farcaster-specific interaction patterns.

Step 3: Visibility Filtering

Let’s tidy up our recommended posts before we display them.

Goal: Ensure the final list is fresh, diverse, and safe.

Filters you can configure:

Freshness

  • Hide content after impressions

  • Remove posts already interacted with

Relevance

  • Show posts with social proof (liked/commented by people you follow)

  • Exclude user’s own posts

Diversity

  • Max posts per author

  • Author spacing: ensure posts by the same author are spaced out

​​Step 4: Feed Construction

Should we compose the final feed with existing feeds to enhance the experience?

Goal: Mix different content sources together to ensure quality, coverage, and diversity.

Tools at your disposal:

  • Fallback feeds – Define secondary feeds in case primary feed runs out

  • Cold start feeds – Serve curated content for new or inactive users

  • Promotions – Insert content intentionally:

    • Feed promotion – Blend a secondary feed (e.g., trending) at a set % (e.g., 30%)

Practical Guide: Creating a Simple “For You” Feed for Farcaster

You don’t need to start from scratch. Use the Console’s For You template and customize it slightly to match your app’s needs.

Step 1: Candidate Generation

Let’s say you’re building a video-focused Farcaster app.

  • Go to the “Embed domains” section and enter your app’s domain (e.g., zora.co)

  • Filter the publication type to show only videos

Step 2: Ranking

Use the default balanced_feed_v0.0.1 ranking algorithm.

  • This blends interest-based and affinity-based scoring

  • Ensures users get content they care about and content their close connections engage with

Step 3: Visibility Filtering

Set diversity controls:

  • Max 2 posts per author

  • Minimum spacing of 5 posts between posts from the same author

Step 4: Feed Construction

Mix content sources:

  • 70% from users the viewer follows

  • 30% from ❜embed’s recommendation model trained to predict likely engagement

Cold start configuration:

  • New or dormant users see content from credible, active Farcaster users with solid reputations and followings

Get Started

Visit the Console to start building your own custom or template-based feed.

If you’re unsure how to get started or want to build something advanced, reach out or check out our Docs.

Let us help you power your app with the best Farcaster and onchain content—curated and customized in real time.

© 2024 ZKAI Labs. All rights reserved.

© 2024 ZKAI Labs. All rights reserved.

© 2024 ZKAI Labs. All rights reserved.