Skip to main content
Glama
HireJack

HireJack

@hirejack/mcp

Model Context Protocol server that exposes HireJack's tech job market intelligence to MCP-compatible clients (Claude Desktop, Claude Code, Cursor, Cline, etc.) — tech jobs, companies, skills, salaries, hiring trends.

npm Glama score

Quick start

Claude Code:

claude mcp add hirejack -- npx -y @hirejack/mcp

Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "hirejack": {
      "command": "npx",
      "args": ["-y", "@hirejack/mcp"]
    }
  }
}

Restart Claude Desktop and ask away (see Example prompts).

The npm package uses stdio transport — no auth, runs locally as a subprocess, and the five public tools work out of the box.

claude.ai / Claude Desktop connector (all 31 tools): add https://hirejack.com/api/mcp as a custom connector (Settings → Connectors → Add custom connector), sign in with your HireJack account when prompted, and the full Pro/Premium/Analyst intelligence surface lights up — tier-gated server-side to your subscription.

Related MCP server: LinkedIn MCP

Example prompts

Job search (public, no account):

  • "Find remote senior backend roles paying $200K+ that sponsor visas"

  • "What is Stripe currently hiring? Break it down by team."

  • "Show me staff-level ML jobs in New York with published salary ranges"

  • "Which companies are hiring Rust engineers right now?"

Market research (public, no account):

  • "Which fintech companies are scaling hiring fastest this month?"

  • "What skills are trending in tech right now?"

  • "Compare the tech stacks of Datadog and Grafana Labs"

  • "What's the median advertised salary for senior data engineers?"

Career intelligence (Pro/Premium, via the hosted connector):

  • "Score my fit for this posting and tell me what's missing: hirejack.com/jobs/…"

  • "Which skill should I learn next to unlock the most jobs?"

  • "Where does my salary sit vs the market for staff platform engineers?"

  • "Rewrite my resume bullets for this Anthropic role"

Analyst (historical/segmentation, via the hosted connector):

  • "Which companies' hiring grew >50% in the last quarter from a real base?"

  • "Show Nvidia's hiring trajectory over the last 12 months"

  • "What skills are climbing consistently from a low base — early signals only"

Slash commands (MCP prompts)

Clients that support MCP prompts (Claude Desktop, Cursor) surface these as slash commands. All four are built only on the tools that work without an account, so they never dead-end on an auth error:

Prompt

Arguments

What it does

find_jobs

constraint (required)

Maps a free-form ask ("remote, $200K+, Rust") onto search_jobs filters, loosens one at a time if results are thin, pulls the strongest postings in full.

company_deep_dive

company (required)

Resolves a name to a domain, pulls the hiring profile, then shows what is open right now.

market_snapshot

focus (optional)

Aggregate market picture, optionally narrowed to a role, skill or city.

salary_landscape

role_or_skill (required), location (optional)

What a role actually pays, using only postings that disclose a range.

The hosted endpoint serves a different, personalized set (career check-ins, interview prep, match-scored role hunts) because those need an authenticated profile.

Resources

The server exposes HireJack's controlled vocabulary as MCP resources:

URI

Contents

hirejack://vocabulary/skills

Every skill HireJack extracts, with canonical name, id and category

hirejack://vocabulary/roles

The role taxonomy: titleId, title, family, IC/management track, typical skills

Read these before filtering. search_jobs.skill substring-matches the canonical names, so Kubernetes returns jobs while K8s returns none — and update_preferences.desired_roles expects titleId values from the roles resource.

Transports

Transport

Where

Tools available

stdio (this package)

npx -y @hirejack/mcp

5 public tools (search_jobs, get_job, get_company_profile, search_companies, get_market_pulse). Pro+/Analyst tools surface but require auth — point users at the hosted endpoint.

HTTP + OAuth 2.1 (HireJack-hosted)

https://hirejack.com/api/mcp

All 31 tools, including Pro+/Analyst intelligence and account actions tied to a HireJack subscription. Implementation lives in HireJack's private Lambda; this OSS package is the stdio half.

Tools

Public (no auth required):

Tool

Purpose

search_jobs

Search live tech job postings: role family, seniority, skill, location, salary, remote, visa, education, experience

get_job

Fetch one job posting by domain + jobId or HireJack URL: full details, salary, skills, AI summary

get_company_profile

Full hiring profile for one company (tech stack, trends, salary, AI brief)

search_companies

List tracked companies, filter by industry

get_market_pulse

Market-wide stats: totals, top skills, trending skills, top companies

Pro tier (requires authenticated HireJack user with pro or higher):

Tool

Purpose

match_job

Score how well the user matches a specific job (matchPct + 5-dim breakdown + ATS tips)

company_fit

Score the user's fit for a company (fitScore + tech-stack/role/seniority breakdown)

recommendations

Top jobs ranked by composite match against the user's profile

salary_benchmark

Percentile + career-ladder benchmark vs the live market for a role/seniority

skill_gap

Compare user skills to desired-roles' market requirements; ranked missing skills

market_position

0–100 market-position score (skill demand, seniority fit, remote, breadth) + matching jobs, salary median, top-aligned companies

skill_impact

Simulate learning each missing skill: jobs unlocked, boosted matches, companies needing it — ranked by impact

watchlist_intelligence

Aggregate hiring signals across every watched company: open jobs, week-over-week trend %, top skills, median salary, sparkline

Premium tier (requires premium):

Tool

Purpose

resume_rewrite

Bullet-by-bullet resume rewrites tailored to a specific job

interview_prep

Targeted prep: key topics, likely questions by type, company research items

Analyst (dedicated Analyst tier — $49/mo founding pricing; free for working journalists in exchange for a linked citation):

Tool

Purpose

get_company_history

Per-company time-series: monthly hiring snapshots + wider job-count history

get_skill_history

Per-skill time-series: companyCount + jobMentions per month with MoM deltas

get_market_history

Market-wide time-series: 90 days daily or 24 months monthly

compare_companies

Up to 5 companies side-by-side: current state + monthly trajectory

find_companies

Multi-axis segmentation: industry × family × skill × trend × job-count band

find_breakout_companies

Companies with extreme hiring growth (% threshold + min size)

find_emerging_skills

Skills climbing consistently across the last 3 monthly snapshots from a low base, with a real absolute company-count gain — early signal, not small-base noise (the "what should I learn before everyone else" tool)

find_emerging_roles

Roles gaining company adoption over a tunable window (default 21 days, daily rollup) plus genuinely new titles the classifier just started seeing — the role-level companion to find_emerging_skills

Account & profile (any authenticated HireJack account — reads and writes on the user's own data):

Tool

Purpose

save_job

Save a job to (or remove it from) the user's saved-jobs list

watch_company

Follow (or unfollow) a company — powers watchlist intelligence, alerts, and the weekly digest

track_application

Track an application through the pipeline: applied → phone_screen → interview → offer / rejected / withdrawn, with notes

list_saved_jobs

List the user's saved jobs (read companion to save_job), flagging postings that have since closed

list_applications

List tracked applications with their pipeline stage (read companion to track_application)

list_watchlist

List watched companies (read companion to watch_company)

get_profile

Read the user's profile: skills, desired roles, tier, and the matching preferences (seniority, city, remote, US-only, minimum salary) that hard-filter recommendations and alerts

update_preferences

Update matching preferences from the conversation — minimum salary, require-listed-salary, remote / US-only, seniority, city — persists to the profile and re-filters everything immediately

Unlike the website's toggle endpoints, these use explicit, idempotent actions (state is checked first), so an agent retrying a "save" can never silently unsave. The write tools (save_job, watch_company, track_application, update_preferences) are annotated readOnlyHint: false so MCP clients ask for approval appropriately.

Pro+ tools are thin wrappers over the website's existing intelligence Lambdas. Tier gating happens server-side in those Lambdas — the MCP server just forwards the user's identity. If the user lacks the required tier, the API returns 403 and the tool surfaces a clear upgrade hint.

Build from source

git clone https://github.com/TVLSS/hirejack-mcp
cd hirejack-mcp
npm install
npm run build       # tsc → dist/
node dist/index.js  # waits on stdin/stdout for JSON-RPC

Releasing

Publishing is automated by GitHub Actions (.github/workflows/release.yml). Pushing a version tag builds, publishes to npm, and updates the MCP Registry:

npm version patch          # bumps package.json + creates the vX.Y.Z tag
git push && git push --tags

The workflow verifies the tag matches package.json, then runs npm publish (using the NPM_TOKEN repo secret) and a best-effort MCP Registry update via GitHub OIDC. Keep server.json's version in step with package.json.

Configuration

Env var

Default

Purpose

HIREJACK_API_BASE

https://hirejack.com/api

Override if you're self-hosting a fork against a different backend

HIREJACK_SITE_BASE

https://hirejack.com

Used in citation_url fields returned by tools

The npm package ships the stdio transport only. The hosted HTTP+OAuth endpoint at https://hirejack.com/api/mcp is run separately by HireJack and not implemented in this repo.

Project layout

src/
├── index.ts            # stdio entry point
├── registry.ts         # transport-agnostic tool registry
├── prompts.ts          # slash commands (public-tool-only by design)
├── resources.ts        # controlled vocabulary (skills, roles)
├── lib/
│   ├── api.ts          # HireJack REST client
│   ├── format.ts       # tool result helpers
│   └── proAuth.ts      # Pro+ auth check (returns "use hosted endpoint" in stdio)
└── tools/              # 29 files, 31 registered tools

License

MIT — see LICENSE.

Support

Available Tools

13 tools
get_company_historyGet Company HistoryA
Read-only
Inspect

Time-series of a company's hiring profile. Analyst tier. Returns monthly snapshots (totalJobs, engineeringJobs, medianSalary, hiringTrend, trendPct, top skills, seniority + family distribution) plus the wider monthlyPostings job-count series and current-state summary. Use for 'how has Anthropic's hiring changed since January?' or 'is Stripe growing or shrinking?'. Not for a current-state snapshot (get_company_profile) or side-by-side comparison (compare_companies).

Inputs: domain (required), months. Returns: data, meta, citation_url

get_company_profileGet Company ProfileA
Read-only
Inspect

Fetch HireJack's full hiring profile for a single company by domain. Returns: tech stack (top skills with counts), role distribution, seniority breakdown, location breakdown, hiring trend (% MoM), salary medians where disclosed, and an AI-generated hiring brief. Use this for queries like 'what is Stripe hiring?', 'what tech does Anthropic use?', or before comparing companies. Not for historical trends (get_company_history, Analyst) or the user's personal fit (company_fit).

Inputs: domain (required). Returns: data, meta, citation_url

get_jobGet JobA
Read-only
Inspect

Fetch one job posting by domain + jobId, or by HireJack detail URL. Returns title, company, location, salary, skills, seniority, posted date, visa/remote/education metadata, and (when available) the AI summary. Use after search_jobs when the user picks a specific role to discuss, or when the user pastes a HireJack job URL. Not for browsing or filtering postings (search_jobs) or personal fit scoring (match_job).

Inputs: url, jobId, domain. Returns: data, meta, citation_url

get_market_historyGet Market HistoryA
Read-only
Inspect

Time-series of market-wide hiring stats: total jobs, remote share, compensation, seniority + family distribution, top skills. Analyst tier. Daily resolution back to early March 2026; monthly resolution from March 2026. Use for 'how has the market shifted in 2026?' or 'is remote hiring trending up?'. Not for the current snapshot — use get_market_pulse for that.

Inputs: days, range, detail, months. Returns: data, meta, citation_url

get_skill_historyGet Skill HistoryA
Read-only
Inspect

Time-series of a skill's market adoption. Analyst tier. Returns monthly companyCount + jobMentions for the skill, top companies hiring for it each month, and computed MoM deltas. Use for 'how fast is Rust adoption growing?' or 'is React still dominant?'. Not for discovering early-stage skills you can't yet name — use find_emerging_skills for that.

Inputs: skill (required), months. Returns: data, meta, citation_url

interview_prepInterview PrepA
Read-only
Inspect

Generate targeted interview prep for a specific job: 5 key topics (deep vs surface depth based on job seniority), 5 likely questions by type (technical, behavioral, system design) with answer tips, and 3 company-specific research items. Premium tier. Uses job description + company tech stack + user skills as context. Use for 'help me prep for my Anthropic interview' or 'what should I expect in this loop?'. Not for resume tailoring — use resume_rewrite for that.

Inputs: url, jobId, domain. Returns: data, meta, citation_url

market_positionMarket PositionA
Read-only
Inspect

Compute the authenticated user's market position score (0-100). Pro tier. Weighted: 50% skill demand against current market, 20% seniority fit, 15% remote availability for the user's preference, 15% skill breadth. Returns score, matchingJobs count, salaryMedian for matching roles, per-skill demand breakdown, and the top companies whose tech stacks align best with the user's skills. Use for queries like 'how do I stack up against the market?' or 'what's my market position right now?'. Not for job-specific (match_job) or company-specific (company_fit) scores.

Inputs: no named parameters. Returns: data, meta, citation_url

resume_rewriteResume RewriteA
Read-only
Inspect

Generate targeted resume bullet rewrites for a specific job, using the user's uploaded resume + the job description as context. Premium tier. Returns before/after bullet rewrites, missing keywords from the JD, and ATS-format tips. The user must have a resume uploaded to HireJack (via Settings or Onboarding). Use for 'rewrite my resume for this Stripe role' or 'tailor my bullets for this JD'. Not for interview preparation — use interview_prep for that.

Inputs: url, jobId, domain. Returns: data, meta, citation_url

salary_benchmarkSalary BenchmarkA
Read-only
Inspect

Compare a salary against the live HireJack market for a role family + seniority slice. Pro tier. Returns precomputed P10/P25/P50/P75/P90 percentiles, the user's percentile ranking (when salary is supplied), and a career-ladder progression of medians by seniority. Use for 'am I paid well as a senior backend engineer?' or 'what should I ask for?'. Not for a specific job's posted range (get_job) or market-wide comp stats (get_market_pulse).

Inputs: family, salary, seniority. Returns: data, meta, citation_url

search_jobsSearch JobsA
Read-only
Inspect

Search HireJack's database of live tech job postings. Filter by keyword, role family, seniority, skill, location, salary, remote policy, or visa sponsorship. Returns a slim list of jobs with title, company, location, salary range, posted date, and key skills. Use this for queries like 'remote senior backend roles paying $200K+', 'data engineer jobs at fintech companies', 'who is hiring Rust developers in NYC'. Not for a single known posting (get_job), company-level questions (get_company_profile), personalized ranking (recommendations), or aggregate market stats (get_market_pulse).

Inputs: q, visa, limit, skill, +12 more. Returns: data, meta, citation_url

skill_gapSkill GapA
Read-only
Inspect

Analyze the gap between the authenticated user's current skills and what their desired roles require in the live market. Pro tier. Returns matchPct (0-100), the list of skills the user already has that map to their target roles, and the list of missing skills ranked by impact (how often the skill appears in target-role postings). Use for 'what should I learn next?' or 'how close am I to senior PM roles?'. Not for simulating the payoff of skills the user might LEARN — use skill_impact for that.

Inputs: no named parameters. Returns: data, meta, citation_url

skill_impactSkill ImpactA
Read-only
Inspect

For each skill the authenticated user does NOT have, simulate adding it and compute the market impact. Pro tier. Returns a ranked list of skills with: newJobsUnlocked (jobs that previously didn't match but would after learning the skill), boostedJobs (existing matches that would score higher), companiesNeedingIt, relevantRoles, and a composite impactScore. Also returns profileCompleteness so the caller can suggest filling missing profile fields. Use for queries like 'what should I learn next?' or 'which skill would unlock the most jobs for me?'. Not for auditing the user's CURRENT skills against their target roles — use skill_gap for that.

Inputs: no named parameters. Returns: data, meta, citation_url

watchlist_intelligenceWatchlist IntelligenceA
Read-only
Inspect

Aggregate hiring intelligence on every company the authenticated user is watching. Pro tier. For each watched company returns: totalJobs currently open, hiringTrend (up/down/stable), trendPct (week-over-week %), topSkills the company is hiring for, medianSalary, sparkline data (last ~12 weeks of job counts), and jobDelta since the previous snapshot. Use for queries like 'what's happening at the companies I'm watching?' or 'which of my watched companies are scaling up right now?'. Not for a plain list of watched companies — use list_watchlist for that.

Inputs: no named parameters. Returns: data, meta, citation_url

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 13 tools

    Disambiguation4/5

    Each tool has a distinct resource and generally clear purpose, with explicit 'not for' notes that reduce ambiguity. skill_gap vs skill_impact and market_position vs salary_benchmark are the closest pairs, but their descriptions draw adequate boundaries.

    Naming Consistency3/5

    The six get_* retrieval tools follow a clear verb_noun pattern, but the rest are mixed noun phrases like salary_benchmark, skill_gap, and interview_prep, or inverted patterns like resume_rewrite. The names are readable but the convention is not uniform.

    Tool Count5/5

    Thirteen tools is well within the ideal range and each tool earns its place for a job-search and career-intelligence platform. The set covers search, job details, company profiles, skills analysis, resume prep, interview prep, and historical analytics without feeling bloated.

    Completeness3/5

    Core workflows like searching jobs, viewing roles, benchmarking salary, analyzing skill gaps, and preparing for interviews are covered. However, several tools defer to tools not exposed in this server, such as get_market_pulse, list_watchlist, compare_companies, match_job, company_fit, and find_emerging_skills, creating notable dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      A Model Context Protocol (MCP) server that provides tools to interact with LinkedIn's Feeds and Job API. You can do "search for 3 data engineer jobs in . For each job check if it a good match for me by analyzing it against my resume in file resume.md."
      207
      -
    • A
      license
      A
      quality
      B
      maintenance
      Released 3.0.0: 22 MCP tools, guided offline setup, local stdio, Chrome and manual login. No hosted deployment or job-research brief. Writes need opt-in, reviewed preview and human approval. Unofficial; provider compatibility, first-use cohorts, coordinated erasure and Windows privacy proof remain unverified. No mandatory paid service.
      22
      393 npm
      12
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
      -
    • A
      license
      A
      quality
      D
      maintenance
      A personal job-search assistant for Claude Desktop that searches real job boards, scores each job 0–100 for fit, and displays a ranked board for fast triage.
      10
      69 npm
      5
      MIT