Skip to main content
Glama
alialtunar

hn-hiring-trends-mcp

by alialtunar
README.md
# hn-hiring-trends-mcp

<!-- mcp-name: io.github.alialtunar/hn-hiring-trends-mcp -->

**Which skills are tech companies hiring for, and which are rising?** An MCP server that reads every Hacker News ["Ask HN: Who is hiring?"](https://news.ycombinator.com/submitted?id=whoishiring) thread (one per month, 250–500 job posts each) and turns them into skill demand trends, remote and salary stats, and searchable job posts.

No API keys. One line to install.

```
You:    Which skills gained the most demand on HN hiring threads this year?
Claude: [rising_skills(months=12)]
        • "AI agents" went from 11.3% to 14.7% of job posts (+3.4 pts); in
          September 2026 alone it was in 17.4% of posts.
        • Python +2.5 pts, LLM +2.1 pts.
        • Frontend fell 4.3 pts and React 2.7 pts.
```
<sub>Summarized from real tool output: Oct 2025–Sep 2026, 3,788 job posts.</sub>

![Rising and falling skills on HN Who is hiring, by hn-hiring-trends](docs/demo.gif)

## Why

| You want to know | Without it | With hn-hiring-trends |
|---|---|---|
| Is Rust (or Go, or Elixir) worth learning? | Gut feeling, hype on X | `skill_demand` shows its share of job posts, month by month |
| What's rising in tech hiring | Read 400 posts a month | `rising_skills` ranks ~70 skills by change |
| Who's hiring remote Rust devs with visa sponsorship | Ctrl-F across threads | `search_jobs(["Rust"], remote_only=True, visa_only=True)` |
| What a senior engineer earns | Scattered posts | `hiring_snapshot` gives median and middle-half salary from stated ranges |

## How it works

```mermaid
flowchart LR
    C[Claude / MCP client] -->|tool call| S[hn-hiring-trends-mcp]
    S --> A[HN Algolia API: monthly threads + all top-level job posts]
    A --> P[Parse: company, remote/hybrid/onsite, visa, salary range]
    P --> K[Skill matching: ~70 tuned patterns, or any phrase you pass]
    K -->|shares, trends, matching posts| C
```

A post "mentions" a skill once no matter how often it repeats it, so shares are "% of job posts asking for X". Ambiguous words get tuned rules: `Go` doesn't match "go-to-market", `C` doesn't match "Series C", `Java` doesn't match "JavaScript". Past months never change and are cached on disk (`~/.cache/hn-hiring-trends`).

## Install

Requires [uv](https://docs.astral.sh/uv/).

**Claude Code**
```bash
claude mcp add hn-hiring-trends -- uvx hn-hiring-trends-mcp
```

**Claude Desktop / Cursor** (`claude_desktop_config.json` / `.cursor/mcp.json`)
```json
{
  "mcpServers": {
    "hn-hiring-trends": {
      "command": "uvx",
      "args": ["hn-hiring-trends-mcp"]
    }
  }
}
```

## Tools

| Tool | What it does |
|---|---|
| `hiring_snapshot` | One month: post count, remote/hybrid/onsite and visa shares, salary medians, top skills |
| `skill_demand` | % of posts mentioning each of 1–10 skills, month by month, with the change |
| `rising_skills` | Biggest gainers and losers among ~70 skills (recent half vs earlier half of the period) |
| `search_jobs` | Posts mentioning all your terms; filter remote-only or visa; returns company, header, salary, link |
| `hiring_threads` | The monthly threads available |

**Prompts:** `monthly_hiring_report` (a shareable monthly summary), `skill_outlook` ("should I learn X, Y or Z?").

## Try these

- "Should I learn Rust, Go or Elixir? Use 18 months of HN hiring data."
- "Write this month's HN hiring report."
- "Find remote Python jobs that mention LLMs and sponsor visas."
- "What's the median salary in posts that mention Kubernetes?"

## Limits

- One slice of the market: HN skews toward startups, remote work and US/EU tech.
- Skill matching is keyword-based; context like "nice to have" is not separated from "required".
- Salaries are parsed from stated yearly ranges only (about a quarter of posts state one).

## Part of the keyless MCP series

Open-source MCP servers that answer one market question each, with public data and no API keys.

| Server | Question it answers |
|---|---|
| [review-miner-mcp](https://github.com/alialtunar/review-miner-mcp) | What do users hate about competitor apps and games? (App Store + Steam reviews) |
| [pricing-time-machine-mcp](https://github.com/alialtunar/pricing-time-machine-mcp) | How did a SaaS pricing page change over the years? (Wayback Machine) |
| **hn-hiring-trends-mcp** (this one) | Which skills are tech companies hiring for, and which are rising? (HN Who is hiring) |
| [model-price-radar-mcp](https://github.com/alialtunar/model-price-radar-mcp) | What does each LLM cost, and did it get cheaper? (OpenRouter + price history) |
| [launch-detector-mcp](https://github.com/alialtunar/launch-detector-mcp) | What is a company about to launch? (certificate transparency logs) |

## Development

```bash
uv sync --extra dev
uv run pytest                          # offline tests with a mocked Algolia API
uv run python scripts/smoke_live.py    # live check against hn.algolia.com
uv run --with rich python scripts/demo.py 12   # terminal demo (vhs docs/demo.tape records the GIF)
npx @modelcontextprotocol/inspector uv run hn-hiring-trends-mcp   # click-through UI
```

MIT © Ali Altunar

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation3/5

The job-listing tools (hiring_threads, search_jobs) are clearly distinct, but the analytics trio overlaps: rising_skills (recent vs earlier half), skill_demand (month-by-month shares + change), and hiring_snapshot (which also reports most-requested skills) all report skill-demand information. An agent could easily pick the wrong one for a given question.

Naming Consistency4/5

All names are lowercase snake_case and readable, forming a coherent set with recurring 'hiring_' and 'skill' prefixes. Only minor deviation: search_jobs is verb_noun while the others are noun phrases, but the style stays consistent.

Tool Count5/5

Five tools is well-scoped for a niche analytics server; each covers a distinct slice (thread listing, job search, monthly snapshot, skill trends, skill change).

Completeness4/5

The surface covers the main analytical needs: discovering threads, searching posts, monthly aggregation, and skill trends over time. Minor gaps remain (e.g. no company-level aggregation or filtering by thread directly in search), but core workflows are supported.

Maintenance

ActivityNo data
ResponsivenessNo issues