
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:
Candidate Generation – What content should we even consider?
Ranking – What’s most relevant right now for this user?
Visibility Filtering – What should we hide or prioritize before showing?
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.