It was the start of 2024, I had a growing list of side project ideas, but I just couldn’t get started on any of them..
I had some big ideas, but with those came a lot of doubts.. I guess I was in the state that is commonly known as, “analysis paralysis”.
“Screw it!” I thought, “I just need to work on something, it doesn’t have to be groundbreaking or reinvent the wheel. Better to work on something and pick up new skills, than keep standing still.”
And with that, I decided to join thousands of other software engineers who set out to build a dedicated job board for people like us; other software developers.
It’s been 4 months since I made that decision, and in that time my side project has grown from nothing to a modest 5,000 unique visitors per month, with close to 2000 jobs listed.
In this short time, I’ve learned quite a lot about what it means to build a job board. Below I share my experience about key decisions and what I’d do differently.
Niche or Broad Target Market:
I’ve lived in Japan for many years, and I came across Paul McMahon, the founder of , a niche English-language software developer job site, when I was working on my first startup in Tokyo. In those days, Paul ran an event technology called Doorkeeper, but on the side he kept a blog of sorts sharing his experiences finding work as a software dev in Japan. It turned out that there were a lot of Japanese employers hoping to attract international developer talent, and a lot of non-Japanese devs who liked the idea of working in Japan. Soon, Paul’s blog became hugely popular and his side gig became his full time project; with TokyoDev morphing into the leading job site for English speaking devs in Japan.
For me, Paul’s experience was a really good example, that a seemingly very niche job board can actually have quite a lot of success. My job board is similarly positioned to Paul’s in the sense that I list software developer jobs for English speakers in a very specific location; Dubai and Saudi Arabia. I felt this was a good choice for me because I have middle eastern roots, know the region and because there are many international companies in the area who are hoping to attract international talent.
That said, niche isn’t the only way to go. Many other job board founders I know of chose a much broader category; remote work is a particularly popular category which is much broader than “Software jobs for English speakers in <country>”. I think the most obvious example of this is Pieter Levels’ , which is amongst the top job boards for remote workers in the world. However, Pieter has something I don’t; close to 500k followers (many of which are digital nomads) on twitter! When going broad there is a lot more competition. If you don’t have a solid method to reach your target audience it’s going to be very tough to get a big enough viewership. If your plan is to charge money for job ad placements, this is going to be even more keenly felt, because employers are going to be comparing your site view statistics against other broad sites, which tend to boast a lot of traffic.
Looking back, I am happy with the choice I made to go niche. If I was to start another job board, I’d probably make the same decision and look for another specific niche that is underserved.
Choosing a Revenue Model:
The classic revenue model for a job board is to charge employers to post job listings. However, it’s not the only way to make money on a job board. Many job boards have spun the classic model on its head; rather than charging employers to post, they charge the job seekers a subscription fee to access all their listings.
A good example of this is which was created by Morgan Gao. EchoJobs is in my opinion a very broad site, it targets software developers worldwide. My understanding is that when Morgan started out he was following the classic revenue model, but was struggling to generate any real income. This doesn’t surprise me because, even if the site had a large viewership, it wasn’t specific enough, so posting a job there would probably not be focused enough for most companies seeking to fill specific positions.
Morgan instead, started to experiment with charging his viewers to access the job postings. He saw the revenues start growing and his site is now going from strength to strength.
I chose the classic revenue model, and actually I have yet to make a sale (though I am not actually pushing for sales right now; I need to improve my visitor numbers). I must admit Morgan’s experience and others like him have made me think about giving this other model a go in the future. One reason I think it’s a very good idea right now is that the tech market is very tough for job seekers, and employers have the upper hand. As such it’s probably easier to monetize the job seekers, as Morgan seems to have experienced.
However, personally I like selling products where a positive outcome for my customer is a positive outcome for me and the jobseeker model is at odds with that. For example, I am charging money to customers to help them find a job, but once they find it, they’ll quit my service. I prefer the employer model, because when the employer has a positive outcome using my site, they’ll see my site is effective for hiring and they’ll place more ads with me. When the employer gets a positive result, I’m likely to get a positive result. That said, money is money, and I may yet find myself following it into this alternative model if that’s the best way to get to revenue!
Choosing a Data Source:
When you first start a job board one of your early problems is finding jobs to list. Some people naively go into it thinking that they can just offer to list jobs to employers for free, but the reality is that employers are busy and listing jobs on a new job board with limited traffic is a waste of their time. Really you’re going to need a way to get job postings onto your site and I think most job boards start off scraping other sites for job content.
There are a couple of ways to do this I’ve seen. The method I started with was to just scrape another job site, such as linkedin or indeed. I liked this method, because it gave a high volume of jobs and a lot of variety and I could just focus on filtering to remove jobs that didn’t suit my target audience. I felt this was enough to at least test my main value proposition for the site without having to build too much. This approach has gotten me to 5k unique views a month which I think is not amazing, but not bad, given my closest competitor is doing around 1k unique views and has been trying this for a lot longer than me.
However, another approach I see quite often is to write a scraper for the careers pages of specific companies. For example, Nithur who runs two job boards including s, seems to scrape the pages of the specific companies that have jobs his audience is interested in. I like this approach because you’ll end up with the freshest job listings. To explain, if you talk to hiring managers about how they use linkedin, you’ll learn that for many of them it’s not the first place they’d list their jobs. Why? Well listing one job on linkedin is free, but if you want to do some serious hiring you must pay for additional jobs, so of course companies would rather advertise the jobs on their own careers pages first, before resorting to ad spend on sites like linkedin and indeed. This means that a company’s own careers page tends to have jobs that might never reach linkedin. If you write scrapers for the careers pages of other sites, then you really are building a data source that is an alternative to linkedin or indeed, and this is valuable. However, it is more work.
If I was to start again, I think I would invest a bit more time in scraping careers pages rather than going to sites like linkedin and indeed first. I think this would make my site standout from the other sites in the region, which although they aren’t dedicated solely to software engineers, tend to have engineering sections with jobs which are similar to those that are listed on my site. This is definitely something I will work on when I have a bit more free time.
Choosing a Tech Stack
Something I didn’t mention earlier is that I did have an additional pressure when starting this project; I really wanted to build a full stack website in Go. I’d been messing around with Go for a few months and I really liked it and wanted an excuse to build something; a job site is a pretty straight forward site to build in any language, and I figured it wouldn’t be that hard in Go; it seems I was right. If anyone here is interested in getting into Go for web applications, I wholeheartedly recommend . I enjoyed it a lot, and Jon’s dedication to his slack community is really impressive to me.
That said, was Go the best choice for building a job board site? I have no idea… but having worked on this for several months I honestly think you could get away with running a job board on an excel sheet.. At least until you work out if there is an audience for what you are trying to do.
I personally think a job board side project is the kind of thing you can get away with writing in almost any language, probably best just to pick one you enjoy writing in and go from there. In that sense Go has been great for me.
Would I build my next job board in Go? I think so, simply because I know how to do it. I’d probably make slightly different choices with how I structure my postgres database because I was a bit too opinionated and had to make some changes as the position of my target audience became a bit clearer to me, but you code and learn!
Conclusion
Hopefully this is helpful to some other people out there who are thinking of starting a job board or indeed any side project. This project really helped me experience that just getting started and being consistent is powerful and brings a lot of opportunities and insights.
I am still very early on this journey, I am hoping I can continue to grow my viewership and maybe make some revenue in a year or so, but even if not it’s been a worthwhile experience.
If you’re interested in learning more about what I built or working as a . I also have some fun tools like a salary and cost of living calculator which can be found in the footer. Also, do reach out with any questions about this article or anything else; my email is on the page.
Thanks for reading,
Sam
**