I built a Chrome extension
As someone who occasionally stumbles upon an interesting job opportunity, one thing that always bugged me was the lack of information about when a job was posted. Sure, some sites provided that data, but many didn't - leaving me to wonder if that "amazing role" was actually posted months ago.
Well, I decided to solve that problem by building my very own Chrome extension to add a "Date posted:" element to job listings on greenhouse.io, lever.co, and ashbyhq.com.
The Process
Going into this project, I had zero experience building browser extensions. But I was pleasantly surprised by how straightforward and easy the process turned out to be.
The first step was literally starting from square zero and learning what exactly goes into creating a modern browser extension. Thankfully, the Chrome developer docs are super helpful with lots of useful examples. They proved to be an excellent resource.
Next, I needed to figure out how to inject custom HTML and styling via a content script. This involved a decent amount of Googling and Stack Overflow searching to figure out whether I needed to detect the domain of the current tab (complicated) or if I could handle it through the manifest.json file (easy). Fortunately I came across online examples showing that I could have multiple conditions in manifest.json, which drastically simplified what I had to do.
After grasping those fundamentals, the rest was relatively smooth sailing in terms of writing the actual code for my extension. Sure, there was plenty of trial and error and I became best friends with the "Reload Extension button. But overall, the development cycle looked like:
- Write code to extract the date from the page source
- Figure out the ideal place to inject the "Date posted:" element
- Try it out and debug
- Rinse and repeat
What I Learned
Beyond gaining some new knowledge and technical skills around browser extensions, I walked away from this project with a much deeper appreciation for the flexibility and power that browsers have to improve user experiences across the web.
By spending just a few hours building this handy extension, I solved a personal pain point that I'm sure many others have experienced as well. And now, anytime I visit one of those job postings, I can quickly see at a glance how recent each listing is - removing frustration and saving me time.
Of course, there's potential room for improvement in areas like supporting more sites, adding functionality, more robust formatting, etc. But for a first attempt, I'm thrilled with how this extension turned out.
If you're interested in trying it out please check out "Add Job Posting Dates" on the Chrome Web Store! I'm happy to share what I built and provide any tips for others looking to dip their toes into the world of browser extensions.
Postscript: I used Anthropic's Claude 3 Sonnet to create the first draft of this blog post...and frankly I was impressed at how good it was. Sure, I made some tweaks and did some rewriting, but it was a lot easier than staring at a blank page trying to start from scratch.