LinkedIn Brand Assistant
Manifest V3 Chrome extension that injects an AI comment assistant into the LinkedIn feed. Built and shipped a self-healing DOM injection system — an AI-driven strategy generator that re-derives selectors when LinkedIn's markup shifts — to survive LinkedIn's obfuscated, hashed-class DOM. Published to the Chrome Web Store; development is now paused after LinkedIn's anti-automation defenses outpaced what the self-healing system could keep up with.
- Client
- Leadswave / Chrome Web Store
- Role
- Full-Stack & Chrome Extension Developer
- Timeline
- 2025 – 2026
- Stack
- 7 technologies
A closer look



- AI comment generation with tone selection (Insightful, Inquiring, Supportive), grounded in extracted post text
- Manifest V3 service worker state persisted to chrome.storage.local — survives worker termination between interactions
- Self-healing DOM injection: a privacy-pruned DOM snapshot (PII stripped, ~3,000-token budget) is sent to an AI strategy generator, which returns fresh CSS selectors when LinkedIn's markup changes
- 5-step fallback chain per page load: cached AI strategy → re-validate against live DOM → regenerate via AI (rate-limited to once per 30 min) → hardcoded fallback selector bank → legacy heuristic parser
- Corrupted-DOM detection: LinkedIn periodically ships builds with every semantic class name replaced by a hashed token; the extension detects this and falls back to data-view-name attribute anchors and text-content heuristics
- Full Supabase-backed account system: login, subscription tiers, and usage tracking — not a bring-your-own-API-key tool
- Published to the Chrome Web Store
Need a similar delivery process for your product? I can help shape the scope and ship the implementation end to end.
Start a projectActive LinkedIn professionals spend meaningful time reading posts and composing thoughtful replies. Composing a genuinely engaged response takes understanding the post's content and matching an appropriate tone — friction that interrupts reading flow. The harder problem, though, wasn't the AI part. It was staying alive inside a page you don't control: LinkedIn's DOM structure shifts across deployments, and periodically ships fully obfuscated builds where every semantic class name is replaced with a hashed token, breaking any extension built against fixed selectors.
The extension renders an AI companion button next to each post, generating tone-selectable comment drafts from extracted post text. To survive LinkedIn's shifting DOM, later development moved from hardcoded selectors to a self-healing system: a background script periodically snapshots a pruned, privacy-safe representation of the feed DOM (PII stripped, structural attributes and short text previews only) and sends it to an AI model, which returns a JSON strategy describing where to find posts, post text, and the right injection point. That strategy is cached, validated against the live DOM on each load, and regenerated (rate-limited to avoid runaway calls) when validation fails. If the AI path is unavailable, the extension falls back to a bank of hardcoded selectors, and if that also fails, to text-content heuristics that specifically target LinkedIn's obfuscated-class builds.
A working self-healing Chrome extension: AI-driven selector generation as the primary defense against DOM changes, with two layers of deterministic fallback beneath it so a failed AI call never fully breaks injection. Authentication and AI calls run through a Supabase backend with real subscription tiers, not a client-managed API key.
Shipped and published to the Chrome Web Store. The self-healing system is real, working engineering — but LinkedIn's DOM obfuscation and anti-automation measures kept escalating faster than a single-developer side project could track, and active development stopped after the last self-healing iteration landed. The extension remains live on the store; it isn't under active maintenance.