HONED: Bridging the Gap Between Graduation and Employment

When we graduated and started looking for jobs, we realized something was missing. Platforms like LinkedIn and JobStreet felt like empty bulletin boards—you could see what jobs were out there, but never why someone got hired or how to actually get there. HONED started as a simple idea: what if we could give every student the kind of insider knowledge that usually only comes from connections and luck?


What We Actually Learned

Building HONED taught us far more than we initially expected:

Your degree is just the price of admission

Employers don’t hire candidates because of a diploma alone. They hire for demonstrable, practical skills—React, SQL, Docker, and other technologies that appear directly in job descriptions.

Clean data is everything

We assumed the recommendation algorithm would be the most difficult part. In reality, nearly 80% of the effort went into cleaning and standardizing messy job listings—where one employer writes “Junior” and another lists “0–2 years experience” for the same role.

People need to see the math

Simply displaying a match score was not enough. Users only began to trust the system once we showed the breakdown—for example, “You match 3 out of 5 required skills.” Transparency turned confusion into clear, actionable feedback.


How We Put It Together

We intentionally kept the architecture simple. Next.js was used for the frontend because React was familiar and flexible, while Express powered the backend due to its reliability and minimal overhead. Instead of deploying a traditional database, we relied on CSV files. While unconventional, this choice allowed us to iterate quickly and focus on delivering a working product.

The Stack

  • Frontend: Next.js + React
  • Backend: Node.js + Express
  • Data Storage: CSV files
  • Version Control: Git

Making Sense of the Chaos

Job listings are highly inconsistent. To handle this, we built a data processing pipeline that:

  • Streams through thousands of listings efficiently without overwhelming memory
  • Normalizes labels such as “Junior,” “Entry Level,” and “0–2 yrs” into a single Entry category
  • Parses semicolon-separated skill strings (e.g., React;TypeScript;AWS) into structured arrays
  • Assigns default values when critical fields—such as location—are missing

The Brains of the Operation

The Match Score

We measure how well a candidate fits a role by comparing their skills against the job’s requirements:

(number of matching skills ÷ total required skills) × 100


A key challenge was ensuring consistent matching. Differences such as “react” vs “React” or “Typescript” vs “TypeScript” initially caused false mismatches. The solution was simple—case-insensitive normalization—but discovering it took longer than expected.


Finding Similar Jobs

We wanted to go beyond exact matches. Often, the best opportunities are adjacent roles a candidate might not initially consider. Our job similarity scoring system accounts for:

  • Same company → +30 points
  • Same location → +15 points
  • Each shared skill → +10 points
  • Similar salary range → +10 points

For example, someone viewing a frontend role might be recommended a higher-paying full-stack position at the same company.


The Hard Parts

Everyone Describes Jobs Differently

Some listings include dozens of skills, while others list only a few. Locations may appear as “Singapore,” “SG,” or not at all. Although our normalization logic handles most cases, edge cases remain unavoidable.

The Capitalization Trap

Our earliest version treated “Java” and “java” as different skills—a simple but humbling mistake.

What’s Actually Required?

Job descriptions often mix essential requirements with optional skills. At present, all listed skills are weighted equally, but we recognize this limitation and plan to refine this distinction further.


Bottom Line

HONED is not perfect—but it is practical. It is the tool we wish we had when we were graduating: one that explains not just where to apply, but how to improve your chances of getting hired. While we continue to iterate, add features, and fix bugs, HONED already helps students move from uncertainty to clarity—transforming static job listings into a clear path forward.

Built With

  • axios
  • cors
  • csv-parser-(streaming-large-datasets)
  • es6+)
  • express.js
  • file-based-csv-persistence
  • git
  • javascript-(node.js
  • next.js-(react)
Share this project:

Updates