Inspiration
An experiment to enrich web browsing from the client side using your LLM conversations and browsing history.
What It Does
Humanize is a Chrome extension that personalizes every webpage you visit. It analyzes content against a persistent memory of your interests, highlights what's relevant, flags what isn't, and explains why via tooltips. Places on a page get enriched with live Google Maps data and a personalized reason you'd care.
A command palette (Cmd+K) lets you ask questions, create Google Calendar events, look up reviews, or modify the page through natural language or voice.
It also clusters your browsing history into research topics and generates shareable HTML digests enriched via Google Search, uploaded as Gists. Over time it detects patterns and suggests learned preferences with confidence scores you can accept or reject.
How We Built It
A Manifest V3 Chrome Extension connects over WebSocket to a local Python server. All data stays on-device in Qdrant via mem0, with Nomic-embed-text embeddings through Ollama so "loves vintage aesthetics" matches "retro camera shop" on any page.
Gemini 3.0 Flash handles page analysis, tool-calling commands, preference extraction, and digest generation. Page modifications stream immediately while place enrichment runs in parallel batches. Commands stream text with intermediate tool events to stay responsive.
The extension injects four content scripts: icons, utilities, a glassmorphism design system, and core DOM manipulation. A service worker manages WebSocket reconnect, Calendar OAuth, and background digests.
Challenges
Injecting highlights on every website means handling CSS specificity conflicts, broken listeners, dynamic content, and tooltip positioning without disrupting pages.
The harder problem was useful personalization. Connecting "loves Art Deco" to the Chrysler Building is great. Stopping it from connecting "eats food" to every restaurant took careful prompting and explicit rules about when not to personalize.
Latency remains unsolved and likely an inference-layer problem, not application-layer.
Accomplishments
A restaurant blog, travel article, YouTube video, and real estate listing all produce meaningfully different results based on who you are. The memory loop (browsing feeds memories, memories feed analysis, analysis surfaces interests) means the system improves with use. Research digests materialize from history automatically: topics clustered, research added, shareable pages generated. Highlights appear almost as soon as pages load.

Log in or sign up for Devpost to join the conversation.