I used AI to fix my Chrome bookmarks

I built a smarter bookmark tool that auto-sorts links using GPT-4 — no tags, no folders, just one click.

I save links constantly. But every time I hit the bookmark icon in Chrome, it tries to file the new link in the last folder I used. That means a hike in northern Spain ends up in “Ecomm inspiration”, a design process post in “Euro hiking/running”, and a new recipe in 'Article ideas'. It's a minor annoyance to change it, but one that has frustrated me for a while.

Recently I got annoyed enough to see if I could build a better way.

The rough idea

I wanted a one-click bookmark tool that:

  • Reads the content of the current page
  • Understands what kind of page it is
  • Chooses the right folder from my existing Chrome bookmarks
  • Saves it there — automatically, with a nice little confirmation

No tagging. No manual folder-picking. Just a smart guess, based on actual content, that feels like it “gets it” most of the time.

Prototyping with AI

I started in ChatGPT. I'm pretty comfortable in code, but much better at understanding and modifying than creating from scratch. So I went through a few conversations focused on:

  • How to access bookmarks?
  • How to scrape the current page?
  • How to send that info to OpenAI and get back a decision?
  • What's the best prompt to ensure the kind of accuracy I'm looking for?

Before I even started coding, I wrote an initial prompt and then went back and forth with ChatGPT to test success. I provided a screenshot of my current bookmarks folder structure for it to reference, and then tested against a series of prompts + web urls to see if it would categorize as I expected.

Once I started actually working on the extension, I ended up with a working prototype pretty quickly. I had code that could grab content from the current tab, send it to OpenAI (using my personal API key), and get a folder path in return. With a working prototype, and then mocked up the interface in Figma, then used GPT again to help scaffold the UI interactions, build the settings view, and wire it all up.

Once the basics were in place, I jumped over to Cursor for more precise control, faster iterations, and more visibility into changes on individual files. I went through bunch of manual and AI-assisted work on everything from animation timing to API edge cases, bugs, and more nitty UI fixes.

The actual extension went through a bunch of iterations (Chrome extensions are actually kind of annoying to test).

Some less-than-perfect LLM implemented UI. Cleaned this up manually.
Early prototype
Debugging tab functionality
Pretty close to the final version

What It Does

Today, the extension:

  • Auto-categorizes the current page using GPT-4
  • Saves it to the best matching folder from your existing Chrome bookmark tree
  • Shows you where it went, and lets you override if needed
  • Stores your OpenAI key and preferences via syncable Chrome storage
  • Has a settings page to control which folders are 'available'

The AI does the heavy lifting. The vast majority of the time I just click and move on.

A 'finished' version at work, although I'm still tinkering.

As useful as the extension is, it’s definitely not perfect. A few areas still feel rough:

  • Cold starts are fragile. The extension relies heavily on an existing bookmark structure. If your folders are vague, inconsistent, or too few, the model has very little signal to work with. In my case, it works well because I have a semi-organized hierarchy with clear folder names like “Product Strategy” or “Running Inspiration.” Without that, GPT doesn’t have much to anchor its decisions, and the guesses get less consistent.
  • Misclassifications still happen. Even with a decent structure, the model occasionally misreads a page’s intent. It might file a technical blog post under “Design Systems” instead of “AI Tools” just because of a shared keyword or tone. I did add the ability to see the classification and fix if necessary.
  • Folder names need to be human-readable. GPT isn’t parsing folder metadata or tags, it’s relying purely on the names of folders. The more descriptive and semantic your folder names are, the better it performs. If I was to continue to work on this, I might adjust the settings page to allow for specfic 'descriptions' of each folder that the llm can derive more specific context from.

I’m not trying to launch this to the world, so I'm not too concerned about handling all the edge cases. But the process highlights how good AI is at filling in the gaps between idea and execution, particularly for niche, personal tools that probably wouldn’t be worth building from scratch a few years ago.

As a "designer who codes" AI has definitely changed how I work. I'm still think through the problem, design the flow, and make key decisions, but LLMs help me move through scaffolding, logic, code, and even polish faster than I could alone. This is the kind of tool I’d never bother to build without AI. But with the right setup, it was fast, fun, and surprisingly easy to get working.