Type something to search...

Job Market Analysis

Summary

Job descriptions are long, inconsistent, and written to be read once. Reading a hundred of them to work out what the market actually wants is a job nobody finishes by hand.

So I wrote a small Python tool that reads the postings and pulls out what employers actually ask for. It reads postings for Data and AI roles, pulls out the requirements, the nice-to-haves and the seniority level, and puts the result in a dashboard.


How it works

You feed it postings as JSONL, one posting per line. Each one is passed to Gemma 3 through Ollama, which returns the core requirements, the optional extras, and a read on seniority. Everything lands in an interactive Streamlit dashboard.

Job-market dashboard distilling requirements and seniority

The code is split into three parts (parsing, model calls, reporting), so changing one does not quietly break the others.


Tech

Python 3.12 or newer, Ollama with Gemma 3, Streamlit, and uv for dependencies.


What I would change

Running the model locally was a deliberate trade. It costs nothing per posting and the data never leaves my machine. In exchange it is slower than an API call and occasionally misreads a requirement. For a tool I point at a few hundred postings, that was the right side of the trade. If it ran daily, it would not be.


Source

The code is public: https://github.com/rasyidev/job-market-analysis