<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rodrigo Rocco</title>
    <description>The latest articles on DEV Community by Rodrigo Rocco (@rrmdpm).</description>
    <link>https://dev.to/rrmdpm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1509990%2F6ce060aa-0e2e-40e8-8d56-81a36cbca6fd.jpg</url>
      <title>DEV Community: Rodrigo Rocco</title>
      <link>https://dev.to/rrmdpm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rrmdpm"/>
    <language>en</language>
    <item>
      <title>From a Static HTML File to 800+ Job Boards and $100K 💵 in Revenue</title>
      <dc:creator>Rodrigo Rocco</dc:creator>
      <pubDate>Thu, 27 Aug 2026 13:30:44 +0000</pubDate>
      <link>https://dev.to/rrmdpm/from-a-static-html-file-to-800-job-boards-and-100k-in-revenue-3k3h</link>
      <guid>https://dev.to/rrmdpm/from-a-static-html-file-to-800-job-boards-and-100k-in-revenue-3k3h</guid>
      <description>&lt;p&gt;Four years ago, I started &lt;a href="https://jobboardsearch.com/" rel="noopener noreferrer"&gt;JobBoardSearch&lt;/a&gt; with a static HTML file containing around a dozen niche job boards.&lt;/p&gt;

&lt;p&gt;Today, it has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;800+ niche job boards&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A searchable database of jobs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;26K members in the subreddit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;6K+ members in the Telegram community&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple revenue streams&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;$100K+ in lifetime revenue&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the funny thing is that the technology behind it is still pretty simple.&lt;/p&gt;

&lt;p&gt;It's mostly&amp;nbsp;&lt;strong&gt;PHP, vanilla JavaScript, raw CSS and SQLite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I didn't start with a big architecture.&lt;/p&gt;

&lt;p&gt;I just kept building useful things around the same data.&lt;/p&gt;

&lt;h2&gt;
  
  
  It started with a static HTML file
&lt;/h2&gt;

&lt;p&gt;The original idea was very simple.&lt;/p&gt;

&lt;p&gt;I wanted to create a directory of niche job boards.&lt;/p&gt;

&lt;p&gt;There are job boards for almost everything: developers, designers, healthcare, climate, remote work, startups, specific technologies, industries, locations, and hundreds of other niches.&lt;/p&gt;

&lt;p&gt;So I created a simple HTML page and added around a dozen of them.&lt;/p&gt;

&lt;p&gt;That was the whole product.&lt;/p&gt;

&lt;p&gt;No database.&lt;/p&gt;

&lt;p&gt;No job feeds.&lt;/p&gt;

&lt;p&gt;No bots.&lt;/p&gt;

&lt;p&gt;No marketplace.&lt;/p&gt;

&lt;p&gt;No fancy frontend.&lt;/p&gt;

&lt;p&gt;Just a list of links.&lt;/p&gt;

&lt;p&gt;Then job board owners started submitting their own boards.&lt;/p&gt;

&lt;p&gt;That's when things started getting interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  I didn't scrape the job boards
&lt;/h2&gt;

&lt;p&gt;One thing I'm particularly proud of is that I never scraped job boards to build the database.&lt;/p&gt;

&lt;p&gt;The 800+ job boards currently listed on JobBoardSearch were submitted organically by their founders.&lt;/p&gt;

&lt;p&gt;If someone wanted their job board listed, they submitted it.&lt;/p&gt;

&lt;p&gt;Over time, many of these job boards started providing job feeds.&lt;/p&gt;

&lt;p&gt;Some use APIs.&lt;/p&gt;

&lt;p&gt;Some use XML.&lt;/p&gt;

&lt;p&gt;Some use RSS.&lt;/p&gt;

&lt;p&gt;So I built the infrastructure to fetch those feeds.&lt;/p&gt;

&lt;p&gt;At first, I just wanted to show the jobs.&lt;/p&gt;

&lt;p&gt;Then I started asking myself:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What else can I do with this data?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question ended up shaping most of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  One feed became many features
&lt;/h2&gt;

&lt;p&gt;The basic architecture is surprisingly simple.&lt;/p&gt;

&lt;p&gt;Plain textANTLR4BashCC#CSSCoffeeScriptCMakeDartDjangoDockerEJSErlangGitGoGraphQLGroovyHTMLJavaJavaScriptJSONJSXKotlinLaTeXLessLuaMakefileMarkdownMATLABMarkupObjective-CPerlPHPPowerShell.propertiesProtocol BuffersPythonRRubySass (Sass)Sass (Scss)SchemeSQLShellSwiftSVGTSXTypeScriptWebAssemblyYAMLXML&lt;code&gt;Job Board      |      v  RSS / XML / API      |      v  Feed ingestion      |      v  JobBoardSearch      |      +----&amp;gt; Job Search      |      +----&amp;gt; Job Board Pages      |      +----&amp;gt; SEO      |      +----&amp;gt; Reddit Bot      |      +----&amp;gt; Telegram Bot      |      +----&amp;gt; AI citations&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The important part is that I didn't create a separate data pipeline for each feature.&lt;/p&gt;

&lt;p&gt;The same job feed powers most of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "meta" part
&lt;/h2&gt;

&lt;p&gt;Every job board listed on JobBoardSearch has its own page.&lt;/p&gt;

&lt;p&gt;If that job board provides a feed, I can display its current jobs on that page.&lt;/p&gt;

&lt;p&gt;I call this the&amp;nbsp;&lt;strong&gt;"meta" part&lt;/strong&gt;&amp;nbsp;of JobBoardSearch.&lt;/p&gt;

&lt;p&gt;It's basically a job-search layer on top of the individual job boards.&lt;/p&gt;

&lt;p&gt;And again, I'm not scraping their websites.&lt;/p&gt;

&lt;p&gt;The job board provides the feed, and I consume it.&lt;/p&gt;

&lt;p&gt;This also creates a useful relationship with the job board owners.&lt;/p&gt;

&lt;p&gt;They get another place where their jobs can be discovered, while I get structured job data that I can use throughout the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reddit bot
&lt;/h2&gt;

&lt;p&gt;Once the feeds were working, I started looking for other ways to distribute the jobs.&lt;/p&gt;

&lt;p&gt;I built a bot that automatically posts jobs to the JobBoardSearch subreddit every hour.&lt;/p&gt;

&lt;p&gt;That subreddit has grown to around&amp;nbsp;&lt;strong&gt;26K members&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The nice thing is that I didn't need to manually create content for Reddit.&lt;/p&gt;

&lt;p&gt;The content was already being generated by the feeds.&lt;/p&gt;

&lt;p&gt;So the same infrastructure that powers the website also powers the subreddit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Telegram bot
&lt;/h2&gt;

&lt;p&gt;Then I built a free Telegram bot.&lt;/p&gt;

&lt;p&gt;The idea was to let job seekers receive personalized job alerts instead of having to constantly search for jobs themselves.&lt;/p&gt;

&lt;p&gt;Users can configure things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Keywords&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Industries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Roles&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notification cadence&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bot then uses the same job feed data to find relevant jobs.&lt;/p&gt;

&lt;p&gt;The Telegram community has grown to more than&amp;nbsp;&lt;strong&gt;6K members&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Again, no new data source.&lt;/p&gt;

&lt;p&gt;Just another way of using the same data.&lt;/p&gt;

&lt;h2&gt;
  
  
  This became a data flywheel
&lt;/h2&gt;

&lt;p&gt;At some point, I stopped thinking about JobBoardSearch as a directory.&lt;/p&gt;

&lt;p&gt;The directory was just the starting point.&lt;/p&gt;

&lt;p&gt;The feeds became the underlying infrastructure.&lt;/p&gt;

&lt;p&gt;And that infrastructure started powering several distribution channels:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Job search → SEO → Reddit → Telegram → AI citations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was a big lesson for me.&lt;/p&gt;

&lt;p&gt;You don't always need to build another product from scratch.&lt;/p&gt;

&lt;p&gt;Sometimes you already have a useful piece of infrastructure.&lt;/p&gt;

&lt;p&gt;You just need to find another way to expose it.&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO became a major distribution channel
&lt;/h2&gt;

&lt;p&gt;The job-board pages naturally create a lot of long-tail pages.&lt;/p&gt;

&lt;p&gt;Every job board gets its own page.&lt;/p&gt;

&lt;p&gt;Jobs can be discovered through the search engine.&lt;/p&gt;

&lt;p&gt;Then I started building free tools for job board founders and job seekers.&lt;/p&gt;

&lt;p&gt;Some are SEO tools.&lt;/p&gt;

&lt;p&gt;Some help job board owners.&lt;/p&gt;

&lt;p&gt;Others are useful for job seekers.&lt;/p&gt;

&lt;p&gt;They provide value by themselves, but they also create additional pages and entry points into the site.&lt;/p&gt;

&lt;p&gt;Over time, SEO became one of the biggest acquisition channels for JobBoardSearch.&lt;/p&gt;

&lt;p&gt;And now I'm also seeing more visibility from AI-generated answers and citations.&lt;/p&gt;

&lt;p&gt;That's something I'm still experimenting with.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stayed simple
&lt;/h2&gt;

&lt;p&gt;One of the things I find funny about the project is how little the technology has changed.&lt;/p&gt;

&lt;p&gt;It's still mostly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PHP + SQLite + vanilla JavaScript + raw CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started it partly inspired by levelsio's approach of keeping things simple.&lt;/p&gt;

&lt;p&gt;And I've been tempted MANY times to rewrite everything.&lt;/p&gt;

&lt;p&gt;Use a modern frontend framework.&lt;/p&gt;

&lt;p&gt;Redesign the UI.&lt;/p&gt;

&lt;p&gt;Clean up the code.&lt;/p&gt;

&lt;p&gt;Make the architecture more elegant.&lt;/p&gt;

&lt;p&gt;Basically, rebuild the whole thing.&lt;/p&gt;

&lt;p&gt;But every time I seriously considered doing it, I asked myself:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will this actually make the business better?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes there were things that genuinely needed to be fixed.&lt;/p&gt;

&lt;p&gt;But a lot of the time, I just wanted to rewrite things because I didn't like looking at old code.&lt;/p&gt;

&lt;p&gt;Those are two very different things.&lt;/p&gt;

&lt;p&gt;So instead of rewriting everything, I kept adding useful features.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moat isn't the technology
&lt;/h2&gt;

&lt;p&gt;I don't think the technology is the moat.&lt;/p&gt;

&lt;p&gt;The code isn't particularly complicated.&lt;/p&gt;

&lt;p&gt;The moat is everything that has accumulated around the project over four years.&lt;/p&gt;

&lt;p&gt;Today that includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;800+ job board relationships&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A large amount of job data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organic search traffic&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO authority&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;26K Reddit members&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;6K+ Telegram members&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Free tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple revenue streams&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A marketplace&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Relationships with job board founders&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Someone could probably rebuild the basic website.&lt;/p&gt;

&lt;p&gt;But they can't instantly recreate four years of accumulated traffic, data, communities and relationships.&lt;/p&gt;

&lt;p&gt;That's the part I value most.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I started adding revenue
&lt;/h2&gt;

&lt;p&gt;Once the platform had traffic and an audience, I started experimenting with monetization.&lt;/p&gt;

&lt;p&gt;Today JobBoardSearch has multiple revenue streams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Featured listings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advertising&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Affiliates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Directory Submission Service&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO audits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marketplace commissions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Other services for job board owners&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some job boards have been sponsoring continuously for&amp;nbsp;&lt;strong&gt;10+ months&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Others have been buying recurring featured listings since the early days.&lt;/p&gt;

&lt;p&gt;That's actually more interesting to me than the $100K milestone.&lt;/p&gt;

&lt;p&gt;A one-time purchase is nice.&lt;/p&gt;

&lt;p&gt;But when someone keeps paying for months, you know you're providing some ongoing value.&lt;/p&gt;

&lt;h2&gt;
  
  
  The marketplace
&lt;/h2&gt;

&lt;p&gt;At some point I realized there was another business opportunity around the same audience.&lt;/p&gt;

&lt;p&gt;People wanted to buy and sell job boards.&lt;/p&gt;

&lt;p&gt;So I built a &lt;a href="https://jobboardsearch.com/marketplace" rel="noopener noreferrer"&gt;marketplace&lt;/a&gt; for that.&lt;/p&gt;

&lt;p&gt;Again, I didn't need to start from zero.&lt;/p&gt;

&lt;p&gt;I already had the audience.&lt;/p&gt;

&lt;p&gt;Job board founders were already using JobBoardSearch.&lt;/p&gt;

&lt;p&gt;Some wanted to grow their boards.&lt;/p&gt;

&lt;p&gt;Some wanted to sell them.&lt;/p&gt;

&lt;p&gt;Some wanted to buy them.&lt;/p&gt;

&lt;p&gt;So I added another layer to the existing ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  I also built free tools
&lt;/h2&gt;

&lt;p&gt;Another thing I've done over the years is build free tools.&lt;/p&gt;

&lt;p&gt;Some are for job board founders.&lt;/p&gt;

&lt;p&gt;Others are for job seekers.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;Build something useful → get discovered → provide value → bring people into the ecosystem.&lt;/p&gt;

&lt;p&gt;And yes, SEO is part of the reason I build them.&lt;/p&gt;

&lt;p&gt;But I try to make the tools genuinely useful first.&lt;/p&gt;

&lt;p&gt;The SEO benefit comes second.&lt;/p&gt;

&lt;h2&gt;
  
  
  $100K wasn't the goal
&lt;/h2&gt;

&lt;p&gt;When I created that first HTML file with a dozen job boards, I wasn't thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'm going to build a $100K business."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This could be useful."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then I kept adding things.&lt;/p&gt;

&lt;p&gt;A dozen job boards became hundreds.&lt;/p&gt;

&lt;p&gt;A static HTML page became a database.&lt;/p&gt;

&lt;p&gt;The database became a search engine.&lt;/p&gt;

&lt;p&gt;The feeds became a data pipeline.&lt;/p&gt;

&lt;p&gt;The data pipeline became Reddit and Telegram bots.&lt;/p&gt;

&lt;p&gt;The traffic became revenue.&lt;/p&gt;

&lt;p&gt;The revenue became more products.&lt;/p&gt;

&lt;p&gt;And four years later, the project passed&amp;nbsp;&lt;strong&gt;$100K in lifetime revenue&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's still mostly just me running it.&lt;/p&gt;

&lt;p&gt;My wife helps me with the newsletter, so technically I'm not doing everything alone. 😄&lt;/p&gt;

&lt;p&gt;I've also been building it in public on X/Twitter for years, documenting the wins, failures, experiments and random things I build.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson for me is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't confuse building software with building a business.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can spend six months rewriting your frontend and end up with a nicer website but exactly the same business.&lt;/p&gt;

&lt;p&gt;Or you can spend those six months adding another useful feature, improving distribution, talking to customers or finding another way to monetize the asset you already have.&lt;/p&gt;

&lt;p&gt;I've had to learn to ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Will this make the business better?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;before asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can I build this?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question has probably saved me a lot of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;I honestly don't have a complete roadmap.&lt;/p&gt;

&lt;p&gt;That's another thing I like about indie projects.&lt;/p&gt;

&lt;p&gt;The original plan was a static HTML directory with a dozen links.&lt;/p&gt;

&lt;p&gt;I couldn't have predicted the Reddit community, the Telegram bot, the marketplace, the free tools, the SEO traffic, the different revenue streams or the AI citations.&lt;/p&gt;

&lt;p&gt;Most of those things appeared because I kept looking at what I already had and asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What else can I do with this?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Four years later, I'm still asking the same question.&lt;/p&gt;

&lt;p&gt;And that's probably how I'll keep building it.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>php</category>
      <category>saas</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
