Inspiration

Every evening, my parents spend 15-20 minutes scrolling through Netflix, arguing about what to watch. They ask each other "have we seen this?", forget which movies they loved, and end up rewatching the same films or settling for something mediocre. I realized this isn't just my parents - everyone faces this decision paralysis. We have endless content but no memory of our preferences. Streaming platforms show generic recommendations that don't actually learn what you like. I wanted to build something simple that actually solves this: a bot that remembers your taste, tracks what you've watched, and suggests films you'll genuinely enjoy. No complex apps to install, no accounts to create - just open Telegram and ask what to watch next.

What it does

Core Features:

  • Conversational Interface: Simply message the bot in natural language - "suggest a film", "something funny", or "I'm in the mood for a thriller"
  • Memory System: Tracks every film you've watched and your ratings, building a comprehensive profile of your taste over time
  • Smart Recommendations: Uses Claude AI to analyze your preferences and match them with highly-rated films from TMDb's database of thousands of movies
  • Learning Algorithm: Gets smarter with each interaction - the more you use it, the better it understands what you'll enjoy
  • Quick Access: Lives in Telegram, so no app installation needed. Forward a message, get a suggestion in seconds
  • Mood-Based Filtering: Ask for specific genres, time periods, or moods and get relevant suggestions from films you haven't seen

How I built it

Built with Anthropic's Claude SDK, Python-telegram-bot, TMDb API, and Mem0 AI for memory management. Mem0 handles persistent storage of viewing history, ratings, and learned preferences, automatically organizing user data for optimal retrieval. Claude AI processes natural language requests - users can ask for "something funny", "thrillers like Inception", or "films with my favorite actor" - and generates personalized recommendations by analyzing their taste profile. TMDb provides comprehensive film metadata (cast, genres, ratings) which Claude uses to match user preferences with highly-rated options. The system continuously learns from user feedback, refining recommendations over time.

Challenges I ran into

Performance Optimization: Initially, the bot was painfully slow - taking 15-20 seconds to generate recommendations because it had to fetch film data from TMDb, load user history, and wait for Claude's API response sequentially. Users would send a request and wait, creating a frustrating experience. I solved this through intelligent pre-fetching and parallel processing. Now, while the user is reading the current recommendation, the bot pre-fetches potential next films from TMDb in the background. When they ask for another suggestion, the data is already cached and ready. I also optimized the Claude API calls by structuring prompts more efficiently and caching frequently accessed user preferences with Mem0. Response time dropped from 15-20 seconds to 3-5 seconds - a 5x improvement that makes the bot feel instant and responsive. Memory Context Management: Balancing how much viewing history to include in Claude's context without hitting token limits or slowing responses. Solved by using Mem0's intelligent retrieval to surface only the most relevant past preferences rather than dumping entire watch history. Natural Language Ambiguity: Users phrase requests in countless ways ("something light" vs "not too heavy" vs "easy watch"). Tuned Claude's prompts to interpret these variations correctly while maintaining recommendation quality.

Accomplishments that I'm proud of

Performance Achievement: Reduced response time by 5x (from 10-15 seconds to 2-3 seconds) through intelligent pre-fetching and optimization. The bot now feels instant and responsive, which was critical for user experience. Recommendation Accuracy: The AI genuinely learns taste - after 10-15 rated films, recommendations become eerily accurate. Users consistently report being surprised by how well the bot "knows" them. Technical Growth: This is my first production agent built with Claude SDK from scratch. Mastered API integration, conversational AI design, memory management with Mem0, and performance optimization - skills directly applicable to building more complex AI agents.

What I learned

Building effective AI agents is about using AI where it genuinely helps, not everywhere. Performance matters more than features - a fast, simple bot beats a slow feature-rich one. Learned intelligent memory management with Mem0, API integration best practices with TMDb and Claude, and the importance of iterative development. Testing with real users (my parents) exposed assumptions I never considered. Most importantly: simple, fast, and useful beats complex and impressive.

What's next for WatchNext AI

Add support for TV shows and series recommendations. Implement group watching features where friends can get joint recommendations based on combined preferences. Integrate with streaming platforms to show which services have the recommended films. Expand to support multiple languages for international users. Add social features like sharing favorite films and comparing taste with friends. Long-term goal: make it the default way people decide what to watch.

Built With

  • anthropic-claude-sdk
  • json
  • mem0-ai
  • python
  • python-telegram-bot
  • tmdb-api
Share this project:

Updates