A lightweight chrome extension that lets you bookmark LeetCode + Codeforces problems directly from the problem page, then manage them in a clean popup UI with status, tags, company chips, and reminders.
- works on:
leetcode.com/problems/...codeforces.com/problemset/problem/...andcodeforces.com/contest/.../problem/...
- saves:
- title, url, site
- LeetCode: slug + difficulty
- Codeforces: contestId/index + rating
- one click bookmark button on:
- leetcode problem pages (
/problems/...) - codeforces problem statements
- leetcode problem pages (
- tags (comma separated) + filtering
- status tracking:
- Unsolved / Revise / Solved / Didn’t understand
- optional custom status
- company tags for LeetCode problems (offline mapping)
- “Remind me in” (1/3/7/14 days) stored per bookmark
- search across title / tags / companies / site / status
- uses
chrome.storage.local(no accounts, no backend)
- programmers doing LeetCode + Codeforces
- students preparing for interviews
- people tired of scattered bookmarks / notion pages
- open a problem on leetcode or codeforces
- click the blue ➕ bookmark icon
- add tags / status / reminder
- later, open the popup to filter by:
- company
- status (Revise / Unsolved / custom too!)
- tags
content.jsinjects a small bookmark icon into leetcode/codeforces pages.- when clicked, it scrapes problem metadata (title, difficulty/status/tags, rating, etc.) and stores a record in
chrome.storage.local. popup.html + popup.jsrenders bookmarks and provides an edit modal to update tags/status/reminders.- company data is loaded from a local
companies_map.jsonbuilt from a public dataset. - source for companies dataset is public as per 2025 november
- clone this repo
- open chrome:
- chrome:
chrome://extensions
- chrome:
- enable developer mode
- click load unpacked
- select the extension folder (the one containing
manifest.json)
this repo includes:
scripts/build_companies_map.mjsit generatescompanies_map.json- the extension reads
companies_map.jsonat runtime, no API calls
company list comes from a public repo:
snehasishroy/leetcode-companywise-interview-questions
i don’t ship their repo data inside this project. i keep it locally and generate the json.
if you want to regenerate mapping locally:
- clone dataset repo into
data/companywise/(ignored by git) - run:
node scripts/build_companies_map.mjs
- it generates:
companies_map.json
- everything is stored locally in chrome (
chrome.storage.local) - no account, no tracking, no analytics
- no external api calls required for normal usage
- i kept bookmarking in random places for leetcode and codeforces
- some days in leetcode, some days in a doc, sometimes notion and sometimes even a notebook.
- it came to a point where it became a mess!
- when it came to revsion or keeping track, i had no clue what i had even solved or missed out on :(
- so i made this bookmark
- this is present in all problem pages of leetcode and codeforces
- and with one press it gets added in bookmarks
- along with tags and reminders
- and for leetcode it even presents company -> got through public dataset see more in credits
- so when preparing for interviews and test it filters out easily and i don't need to search or make new roadmaps daily!
Starter Files/
content.js # injects bookmark icon + scraping
popup.html # ui
popup.js # list/search/edit/save logic
popup.css # styling
manifest.json
scripts/
build_companies_map.mjs
companies_map.json # generated
- leetcode is a spa, so the conentent script re-run mounts using
MutationObserver - ui changes may change or break some selectors
- reminders currently stores timestamp, doesn't trigger OS notifications yet
- source for dataset : snehasishroy/leetcode-companywise-interview-questions
- not affiliated with dataset author. this project only uses it to build an offline companies map
built by Manya Kalra
- if you liked it or it helped you make sure to give it a star!
- feel free to reach out for any bugs/enhancements


