Skip to content

shaiksohelll/Klar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

311 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ Klar

What developers actually get hired for.

Klar reads the developer job market in real time and tells you which skills companies are genuinely hiring for β€” straight from live job postings. No influencer hot takes. No "you must learn X" threads. No predictions. Just the data.

MongoDB Express React Node.js Tailwind CSS Clerk Vite PRs Welcome

πŸ™ Repo Β· πŸ› Report Bug Β· ✨ Request Feature


Everyone tells you what to learn. Almost nobody shows you the evidence. Klar is the evidence.


Table of Contents


The Why

I taught myself to code from a tier-3 college with a slow connection and a tight budget. The hardest part was never the syntax β€” it was the noise. Every day, a new thread told me to learn a different language, framework, or "must-have" skill. Roadmaps contradicted each other. Influencers sold urgency. None of them showed me a single shred of proof.

So I asked a simple question: what are companies actually hiring for, right now?

Not opinions. Not a 12-month-old survey. Not someone's personal roadmap. Live, current, verifiable demand.

That question became Klar.

The Problem

Developers β€” especially students and early-career engineers without insider networks β€” make high-stakes learning decisions based on vibes:

  • Job boards show you listings to apply to, not patterns across the market.
  • "Roadmaps" and influencer content are opinion, often months or years behind reality.
  • Annual developer surveys are self-reported and stale the day they ship.

The result: people spend months learning the wrong things while the market quietly moves on.

Klar fixes the information asymmetry. It turns thousands of live job postings into a clear, honest picture of demand β€” so your effort goes where the market actually is.

What Klar Does

  • πŸ“Š Skill Demand Rankings β€” the most-requested skills right now, ranked by real posting counts, filterable by role (Frontend, Backend, Full-stack, DevOps, Data, Mobile).
  • πŸ”Ž Skill Search β€” type any skill and instantly see how the market values it.
  • 🧠 Rich Skill Drawer β€” for any skill: live demand, remote share, the skills it most often appears alongside (co-occurrence), and disclosed salary insights.
  • πŸ’° Salary Insights (disclosed-only) β€” real, employer-disclosed pay β€” never predicted or estimated β€” with full transparency on how many postings actually disclosed it.
  • 🏒 Who's Hiring β€” top companies ranked by active openings, the skills each one asks for most, and their remote share.
  • 🎯 Skill-Gap Advisor β€” compare your skill set against live market demand and see exactly where your gaps are.
  • ⭐ Watchlist β€” save the skills you're tracking (secured with real authentication).
  • πŸ”„ Daily Auto-Refresh β€” the dataset rebuilds itself on a schedule, so what you see is current.

Every number on Klar traces back to a real, active job posting. Descriptive, never predictive.

Built Different

Job boards Roadmaps / influencers Annual surveys Klar
Source of truth Listings to apply Opinion Self-reported Live listings, analyzed
Tells you what's in demand ❌ ⚠️ subjective ⚠️ stale βœ…
Real-time partial ❌ ❌ βœ… daily refresh
Hype / predictions β€” ❌ heavy β€” βœ… none β€” facts only
Salary honesty hidden ❌ aggregated βœ… disclosed-only + transparency

Klar isn't another job board. It's a lens on the market that no listing site gives you.

Under the Hood

Klar ingests postings from two independent live sources, normalizes and de-duplicates them, extracts skills against a curated taxonomy, and serves fast aggregated insights through a cached API.

Live Job Sources                  Klar Engine                      Client
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    ingest   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   API  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Adzuna     β”‚ ──────────▢ β”‚  Normalize roles          β”‚ ─────▢ β”‚   React     β”‚
β”‚              β”‚             β”‚  Extract skills (taxonomy)β”‚        β”‚   Tailwind  β”‚
β”‚  Google for  β”‚             β”‚  Cross-source dedupe      β”‚        β”‚   + Framer  β”‚
β”‚  Jobs (JSearch)β”‚ ────────▢ β”‚  (company + title + city) β”‚        β”‚   Motion    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚  Aggregate β†’ Cache (6h)   β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Engineering highlights:

  • 🧩 Cross-source de-duplication β€” the same role often appears on multiple platforms. A normalized company + title + city key collapses true duplicates while preserving genuinely distinct openings, so counts stay honest.
  • πŸ›°οΈ Multi-source ingestion β€” Adzuna + Google for Jobs (via JSearch), each behind its own quota-aware, sequential fetch loop with backoff so free-tier limits are never blown.
  • 🧠 Skill taxonomy extraction β€” a single shared taxonomy parses messy job descriptions into clean, comparable skills (and normalizes role titles into six canonical lenses).
  • ⚑ Aggregation + caching layer β€” MongoDB aggregation pipelines power every chart, fronted by a 6-hour in-memory cache and a warm-up routine for snappy first loads.
  • πŸ” Production posture β€” Clerk authentication, Helmet, CORS allow-listing, and per-route rate limiting out of the box.
  • 🎨 A UI that respects the data β€” an OnePlus-inspired black-and-torch-red system, spring-physics motion, and tactile 3D-tilt cards that make raw numbers feel alive.

Tech Stack

Layer Technology
Frontend React, Vite, Tailwind CSS v4, Framer Motion
Backend Node.js, Express
Database MongoDB (Atlas) + Mongoose
Auth Clerk
Data sources Adzuna API, Google for Jobs (JSearch)
Infra Render (web + API), cron-based scheduled ingestion

Run It Locally

You don't need to. Klar is live and always current: https://klar-dev.onrender.com

But if you want to contribute or fork it:

Local setup for contributors

Prerequisites: Node.js 18+, a MongoDB URI, and free API keys from Adzuna + RapidAPI (JSearch).

git clone https://github.com/shaiksohelll/Klar.git
cd Klar

Create Server/.env and Client/.env (see .env.example for the full list of variables), then:

cd Server && npm install && npm run dev
cd ../Client && npm install && npm run dev

Trigger one ingest to seed data (use your own secret), then open http://localhost:5173:

curl -X POST http://localhost:5000/api/ingest/adzuna -H "X-Ingest-Secret: your_secret"

⚠️ Never commit your .env files or real keys β€” keep .env in .gitignore.

Roadmap

  • Live multi-source ingestion (Adzuna + Google for Jobs)
  • Cross-source de-duplication
  • Skill demand rankings + role lenses
  • Rich skill drawer (demand, remote, co-occurrence)
  • Who's Hiring leaderboard
  • Skill-Gap Advisor
  • Disclosed-only salary insights
  • Skill velocity badges (πŸ”₯ rising / β–Ό cooling)
  • More legal sources (Jooble, Remotive, Himalayas)
  • Salary by experience level & region
  • CI pipeline + test coverage
  • Public, documented API

Known Limitations

  • Salary bands apply to disclosed INR roles only. The salary band facet filters on salaryRange.currency === "INR" and salaryDisclosed === true. Jobs denominated in USD, GBP, CAD, or AUD β€” or jobs where the salary was predicted rather than disclosed β€” are excluded from salary-band results. Cross-currency normalization is on the roadmap.

Contributing

Klar is built in the open. If this resonates with you:

  • ⭐ Star the repo β€” it genuinely helps more people find honest market data.
  • πŸ› Open an issue for bugs or ideas.
  • πŸ”§ Have an improvement? New data sources, a better skill taxonomy, and UI polish are especially welcome β€” open an issue first so we can chat.

The Person Behind Klar

Klar was designed, built, and shipped solo by Sohel β€” @shaiksohelll.

I'm 21, and I graduated from a tier-3 engineering college. No elite network, no Silicon Valley internship, no mentor handing me a roadmap β€” just a laptop, a patchy internet connection, and a stubborn refusal to believe that where you start has to decide where you finish.

I built Klar because I needed it. As a self-taught developer, I was tired of guessing what to learn next while everyone shouted different answers. So instead of asking louder voices, I went to the source: the job market itself. Every aggregation pipeline, every dedupe edge case, every 2 a.m. "why is this returning an empty array" β€” I learned it by building it, one failure at a time.

If you're reading this from a small town, a tier-3 college, or a tight budget: this repo is proof that the gate was never as locked as they told you. Build the thing you wish existed. I did.

License

Klar doesn't carry an open-source license yet β€” for now, all rights reserved. Want to use or build on it? Open an issue or reach out and let's talk.


If Klar helped you see the market clearly, drop a ⭐ β€” it means the world to a solo builder.

Built with sheer determination, one commit at a time.

About

Klar reads the developer job market in real time and shows what skills companies are actually hiring for - pulled from live postings across multiple sources. Descriptive, not predictive. No hype, just the data. Built on the MERN stack.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages