Inspiration

People learning a language improve fastest with lots of comprehensible input: watching, reading and listening to things they understand and enjoy. But courses and learning apps give everyone the same material. Someone who loves Studio Ghibli, Indonesian indie music and self-improvement podcasts gets the same reading as everyone else, motivation drops, and many learners quit.

Asking a general chatbot to "recommend English films for a B1 learner" does not fix this. It returns the same popular titles for almost everyone, sometimes titles that do not exist, because it does not know what this learner actually likes. That gap is exactly what Qloo's taste graph fills.

What it does

TasteLingo is an agent that turns a learner's taste into a 7-day English-learning plan.

  1. Tell it what you love. Pick 1–5 favorite films, TV shows, books, podcasts or artists (found through Qloo search), plus your CEFR level (A2–C1), goal (conversation, work, academic) and daily time.
  2. The agent explores your taste. It calls Qloo Insights across five content types (movie, TV show, book, podcast, artist), using your favorites as signals, and uses Qloo tags and search to explore further.
  3. You get a 7-day plan. Each day has an English-language item, a concrete activity, a skill focus (listening, reading, vocabulary, speaking, writing), minutes that fit your day, and a one-line "why this fits you" that cites the favorite or tag it came from.
  4. Practice on any day. The agent writes vocabulary cards, comprehension questions and a speaking or writing task from the item's Qloo description, tags and metadata (never copying copyrighted content). Your answers are scored and you get short tutor feedback.
  5. The plan adapts. Mark a day Love it, Not my taste, Too hard or Too easy. The agent replans: liked items become new Qloo signals, disliked items cannot come back, and the new plan explains what changed.
  6. See the difference Qloo makes. A side-by-side view shows a plan from the LLM alone (same learner facts, no Qloo) next to the TasteLingo plan. LLM-only titles are marked as unverified.
  7. See how the agent works. An agent trace shows every reasoning step, tool call and result, and which model produced each step.

How we built it

TasteLingo was created from scratch during the hackathon submission period (started 23 October 2026).

  • Agent: a tool-calling loop written in Go. Tools: search_entities, get_tags and get_taste_insights (Qloo /search, /v2/tags, /v2/insights), plus terminal tools build_plan, adapt_plan and generate_exercise that validate the model's output before anything is saved.
  • LLM: Google Gemini with function calling, behind a provider port. When a model is rate-limited or unavailable, the backend automatically moves to the next configured model (and can discover other compatible models). The tool history is carried over, so the agent continues instead of starting again.
  • Backend: Go with Clean Architecture (domain, use cases, ports, adapters for Qloo, Gemini and PostgreSQL).
  • Frontend: React, TypeScript, Vite and Tailwind CSS. Responsive, works on a phone.
  • Database: PostgreSQL stores learners, plans, exercises, attempts, feedback and full agent traces.
  • Data rules: API keys stay on the server. Qloo responses are cached privately on the server and never committed to the public repository; tests use synthetic data. Exercise answer keys are hidden from the browser and from the visible trace.

Challenges we ran into

  • Keeping the LLM honest. Prompting alone did not stop the model from adding titles it "knew". The fix was structural: the final plan must go through a validating tool that accepts only entity IDs seen in Qloo results during that run.
  • Model limits during a live demo. Free-tier models return rate-limit and overload errors. We built per-model cooldowns, Retry-After handling and automatic model fallback that keeps the agent's tool history intact.
  • Honest comparison. For the "without Qloo" view, both sides receive the same learner facts, and the baseline is stored separately so it can never be mistaken for the learner's real plan.

Accomplishments that we're proud of

  • A complete loop: onboarding → taste exploration → plan → practice → feedback → adapted plan, all running on live Qloo data.
  • Every recommendation is traceable to a Qloo result, and the whole agent run is visible to the user.
  • A demo learner so judges can try the full flow in one click, without typing.

What we learned

Taste data changes what an agent can be trusted to do. With Qloo as the source of truth, the LLM's job becomes what it does well — explaining, sequencing and writing exercises — instead of guessing what a person might like.

What's next for TasteLingo

  • Teacher mode: a language school assigns personalized plans to each student.
  • Speech practice with pronunciation feedback.
  • Measuring outcomes with real learners. We do not claim proven effects on motivation or learning speed yet; the demo shows recommendation relevance and the exercises generated.

Built With

Share this project:

Updates

Submission history