Inspiration

K-pop fans love to "sonminsoo" (손민수): follow what their idol wore, ate and visited. Today that means scrolling through fan accounts, wikis and blogs, and starting from zero every time. Fans visiting Korea for a concert face the same problem with places. We already run 'sonminsoo wiki' (sonminsoo.kr), where fans ask "what is my idol wearing?" and the community verifies the answer. We wanted a personal agent that sits on top of that verified data and actually remembers you.

What it does

  • [Remembers you]: favorite groups and members (several at once), clothing sizes, budget, colors, shopping-vs-travel mode and preferred language. Memory survives new chats and restarts, and the fan can see and delete every remembered fact in the "My fandom record" panel.
  • [Finds what your idol wore]: "the brown corduroy cap Sion wore at the airport" returns the fan-verified original product, clearly labeled as 'verified', 'similar' or 'unverified fan-account claim'.
  • [Suggests budget alternatives] when the original is over your budget.
  • [Plans pilgrimage routes]: one- or multi-day routes through places your idol's group visited, skipping places you've already been and adding the store of an item you just wishlisted, shown on a map.
  • [Tracks your fandom life]: wishlist → bought, planned → visited.
  • [Multilingual]: Korean, English, Japanese, Simplified and Traditional Chinese, for international fans visiting Korea.
  • [Never makes things up]: if the data doesn't have it, FanMate says so and points the fan to ask the community on the wiki.

How we built it

  • [Brain: NVIDIA Nemotron on Nebius Token Factory.] The agent runs on nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B through Token Factory's OpenAI-compatible API with native function calling.
  • [Our own agent loop]: multi-step tool calling (up to 8 iterations per turn, so "I love Sion, find his cap, wishlist the cheaper one and plan a Mokpo route" is handled in one message), a per-turn tool budget guard, and per-user conversation history.
  • [Personal memory]: a rememberFact tool for free-form long-term memory plus a structured fan profile (favorites, budget, sizes, wishlist, owned items, visited places) injected into every turn.
  • [Semantic search with Nebius embeddings**: when a fan's description doesn't literally match product text, candidates are ranked by embedding similarity, with vectors cached on disk.
  • [8 user-controlled skills]: searchItem, findAlternative, addWishlist, planRoute, findPlaces, updateOwned, markVisited, savePreferences.
  • [Data]: 600+ idol-worn items from Sonminsoo Wiki and fan accounts (verified and unverified kept separate) and 500+ fan pilgrimage places with real coordinates.
  • Node.js + TypeScript server, vanilla JS web UI, one always-on service with isolated storage per visitor.

Challenges we ran into

  • [Keeping the model honest]: fan data mixes verified products with unverified claims, so every result carries a verification label and the agent is forbidden to invent items or attribute one group's items to another.
  • [Names are messy]: members share names across groups, and fans use nicknames and romanizations, so we built an alias catalog that resolves names before the model sees the query.
  • [Moving to Nemotron] meant writing our own tool-calling loop and memory layer instead of relying on a hosted agent SDK.

Accomplishments that we're proud of

  • A personal agent built on real, community-verified fandom data, not generated guesses.
  • Memory that the user can see and delete.
  • One message chains search → alternative → wishlist → route.

What we learned

Open models like Nemotron handle multi-step tool use well when tools are narrow and results are structured, and embeddings close the gap between how fans describe things and how products are named.

Note on data

The public repo ships a sample (141 items, 137 places for NCT WISH, aespa and BTS) so judges can run it. The full fan-verified dataset is our community's core asset and is not published.

What's next for FanMate

  • Connect with 'concertrip' (concertrip.kr) so overseas fans get concert-day routes and travel packages.
  • Fine-tune a small Nemotron model on Sonminsoo Wiki Q&A on Nebius AI Cloud.
  • Alerts when a new item from your idol is verified on the wiki.

Built With

Share this project:

Updates

Submission history