# io.github.TVLSS/hirejack-mcp (npm · @hirejack/mcp)

Tech job market intelligence: jobs, companies, salaries, skill velocity, hiring trends.

- Trust score: 69/100 (medium)
- Change this week: +36
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `hirejack.com`: 36/100, [markdown](https://verifymcp.io/servers/tvlss-hirejack-mcp/api-mcp.md), [page](https://verifymcp.io/servers/tvlss-hirejack-mcp/api-mcp)
- npm · `@hirejack/mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp.md), [page](https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp)

## Channel facts

- Registry: `npm`
- Package: `@hirejack/mcp`
- Version: `0.3.10`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 8 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 6651 tokens (~201/item across 33 items; 31 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add tvlss-hirejack-mcp -- npx -y @hirejack/mcp
```

### Codex

```bash
codex mcp add tvlss-hirejack-mcp -- npx -y @hirejack/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tvlss-hirejack-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@hirejack/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add tvlss-hirejack-mcp --command npx --arg -y --arg @hirejack/mcp
```

### Hermes

```yaml
mcp_servers:
  tvlss-hirejack-mcp:
    command: "npx"
    args: ["-y", "@hirejack/mcp"]
```

### Other

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

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 69, +45)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 24, +19)

- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100

### 2026-07-31 (score 5, −28)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 33)

First indexed and scored.

## MCP tools (31)

### `search_jobs` (~777 tokens)

Search Jobs

Search HireJack's database of live tech job postings. Filter by keyword, role family, seniority, skill, location, salary, remote policy, or visa sponsorship, and sort by newest or highest pay. 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+', 'highest paying Rust jobs' (sort='salary'), '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`).

Input parameters:

- `company` (string): Company domain to filter by, e.g. 'stripe.com'
- `cursor` (string): Opaque pagination cursor from a previous search_jobs call's `meta.next_cursor`. Pass it back with the SAME filters AND the same `sort` to fetch the next page of results.
- `education` (string): Minimum degree the job requires (AI-extracted). E.g. 'bachelor' returns jobs whose stated requirement is exactly a bachelor's.
- `experience` (string): Years-of-experience bucket the job asks for (AI-extracted yearsMin). E.g. '0-2' for entry-level-friendly roles, '10+' for very senior ones.
- `family` (string): Role family (software_engineering, machine_learning, etc.). Omit to search all families.
- `has_salary` (boolean): Set true to only include jobs with a disclosed salary range; omit to include jobs without pay data.
- `limit` (integer): Max results to return (default 25, max 100)
- `location` (string): Location substring filter, e.g. 'San Francisco' or 'New York'
- `posted_since` (string): Only include jobs posted on or after this date (YYYY-MM-DD). E.g. for 'jobs posted this week', pass the date 7 days ago.
- `q` (string): Free-text keyword search (case-insensitive substring) across raw and standardized title, company name, company domain, and location. Tip: use the `skill` parameter for skill matches — `q` does NOT se…
- `remote` (string): Remote policy filter; 'remote+hybrid' matches either mode. Omit to include onsite jobs too.
- `salary_max` (integer): Maximum salary ceiling (annual USD). Matches jobs whose floor is at or below this (i.e. salaryMin <= X).
- `salary_min` (integer): Minimum salary floor (annual USD). Matches jobs whose disclosed salary range *could pay at least* this much (i.e. salaryMax >= X). A job with range $150K–$250K matches salary_min=200000.
- `seniority` (string): Seniority level on the intern → vp ladder. Omit to include all levels.
- `skill` (string): Single skill name to require (case-insensitive substring match), e.g. 'Rust' or 'Kubernetes'
- `sort` (string): Result ordering. 'newest' (default) returns the most recently posted first. 'salary' ranks by the TOP of each disclosed USD range, highest first — use it for 'highest paying' / 'best paid' queries. J…
- `visa` (string): Visa sponsorship (AI-extracted): 'yes' returns jobs whose posting indicates sponsorship, 'no' those that rule it out. Omit to include jobs where the posting doesn't say.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Search results page; meta.next_cursor is present when more pages exist
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_job` (~240 tokens)

Get Job

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`).

Input parameters:

- `domain` (string): Company domain (e.g. 'stripe.com'). Required unless `url` is provided.
- `jobId` (string): Job canonical id — pass the `id` field from a `search_jobs` result VERBATIM (it may contain '#' separators, e.g. 'greenhouse#stripe#4921361'; keep them). The dashed URL form also works. Required unle…
- `url` (string): Full HireJack job detail URL, e.g. 'https://hirejack.com/jobs/stripe.com/sw-eng-12345/'. Convenience alternative to passing `domain` + `jobId` separately.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): The job posting (metadata only — description HTML is intentionally omitted; meta.gated marks postings the website would paywall)
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_company_profile` (~137 tokens)

Get Company Profile

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`).

Input parameters:

- `domain` (string, required): Company domain (e.g. 'stripe.com', 'anthropic.com'). Use the apex domain, not subdomains.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Full hiring profile for one company; additional aggregate fields may be present
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `search_companies` (~208 tokens)

Search Companies

List HireJack's tracked companies with hiring volume. Filter by name/domain (`q`) or industry. Returns slim records with domain, name, industry, total open jobs, and engineering job count. Use this to find companies in a sector ('which fintech companies are hiring?') or to resolve a company name to its domain before calling get_company_profile. Not for deep per-company data (`get_company_profile`) or multi-axis segmentation by trend/skill/job-count (`find_companies`, Analyst).

Input parameters:

- `industry` (string): Industry substring filter (case-insensitive). Examples: 'fintech', 'health tech', 'gaming', 'defense', 'AI'.
- `limit` (integer): Max companies to return (1-200, default 50)
- `q` (string): Company name or domain substring (case-insensitive). Use this to resolve a company name to its domain, e.g. q='stripe' → 'stripe.com'. Combines with `industry` (AND).

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Slim company records; meta.fetchedAt stamps the embedded snapshot
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_market_pulse` (~96 tokens)

Get Market Pulse

Get HireJack's market-wide snapshot: total open tech jobs, tracked companies, remote share, top skills by demand, top companies by hiring volume, and trending skills (week-over-week movers). Use for high-level market questions like 'how is the tech job market right now?' or 'what skills are trending?'. Not for history or time-series (`get_market_history`, Analyst) or job-level search (`search_jobs`).

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Daily market snapshot; meta.fetchedAt is its build timestamp
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `match_job` (~325 tokens)

Match Job

Score how well the authenticated user matches a specific job. Pro tier. Returns matchPct (0-100, the same score the website shows for this job), requirementsPct (how much of this posting's own requirement list the user meets), a dimension breakdown (skills, role, seniority, location, remote — plus experience when both the user's resume-derived years and the job's required years are known, and semantic when both the user's profile and the job carry embeddings), matched/missing/bonus skill lists, an experienceFit comparison, ATS-specific resume tips for the company's ATS, and a priorityScore that factors hiring velocity. Use for queries like 'how well do I match this job?' or 'should I apply?'. Not for company-level fit (`company_fit`) or discovering new jobs (`recommendations`).

Input parameters:

- `domain` (string): Company domain (e.g. 'stripe.com'). Required unless `url` is provided.
- `jobId` (string): Pass the `id` field from a `search_jobs` result VERBATIM — do not reformat, do not replace `#` with `-`. The id is the literal value search_jobs returned (e.g. 'greenhouse#stripe#4921361'). Always fe…
- `url` (string): Full HireJack job detail URL (e.g. 'https://hirejack.com/jobs/stripe.com/sw-eng-12345/'). Convenience alternative to passing `domain` + `jobId` separately.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Job match score for the authenticated user against one posting
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `company_fit` (~127 tokens)

Company Fit

Score how well the authenticated user fits a company. Pro tier. Returns fitScore (0-100), 5-dimension breakdown (tech stack 40%, roles 25%, seniority 15%, location 10%, hiring trend 10%), matching skills, skill gaps, role alignment, and a hiring-momentum signal. Use for 'is Anthropic a good fit for me?' or 'compare these companies for me'. Not for scoring a specific job posting — use `match_job` for that.

Input parameters:

- `domain` (string, required): Company domain (e.g. 'anthropic.com')

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Company fit score for the authenticated user
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `recommendations` (~139 tokens)

Recommendations

Get top job recommendations for the authenticated user, scored against their profile (skills, desired roles, seniority, location, remote preference) and hard-filtered by their remote/US-only/minimum-salary preferences. Pro tier. Returns jobs ranked by composite match score with per-job match details (default 10, `limit` up to 50). Use for 'show me jobs that match me' or 'what should I apply to this week?'. Not for unpersonalized filter searches (`search_jobs`) or scoring one known job (`match_job`).

Input parameters:

- `limit` (integer): Max recommendations to return (1-50, default 10)

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Personalized job recommendations for the authenticated user
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `salary_benchmark` (~191 tokens)

Salary Benchmark

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`).

Input parameters:

- `family` (string): Role family to benchmark against. Omit to benchmark against the whole market.
- `salary` (integer): User's current annual USD salary. When provided, the response includes the user's percentile ranking within the slice.
- `seniority` (string): Seniority level to benchmark against. Omit to include all seniority levels in the slice.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Salary percentile benchmark for a role family + seniority slice
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `skill_gap` (~118 tokens)

Skill Gap

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.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Gap between the user's skills and their desired roles' requirements
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `market_position` (~132 tokens)

Market Position

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.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): The authenticated user's overall market position
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `skill_impact` (~138 tokens)

Skill Impact

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.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Simulated market impact of skills the user could learn
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `watchlist_intelligence` (~129 tokens)

Watchlist Intelligence

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.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Hiring intelligence for every company on the user's watchlist
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `resume_rewrite` (~214 tokens)

Resume Rewrite

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.

Input parameters:

- `domain` (string): Company domain (e.g. 'stripe.com'). Required unless `url` is provided.
- `jobId` (string): Pass the `id` field from a `search_jobs` result VERBATIM — do not reformat (the id contains '#' separators; keep them). Always fetch a real id via search_jobs first. Required unless `url` is provided.
- `url` (string): Full HireJack job detail URL. Convenience alternative to passing `domain` + `jobId` separately.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): AI resume rewrite suggestions targeted at one job posting
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `interview_prep` (~210 tokens)

Interview Prep

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.

Input parameters:

- `domain` (string): Company domain (e.g. 'anthropic.com'). Required unless `url` is provided.
- `jobId` (string): Pass the `id` field from a `search_jobs` result VERBATIM — do not reformat (ids may contain '#' separators; keep them). Required unless `url` is provided.
- `url` (string): Full HireJack job detail URL. Convenience alternative to passing `domain` + `jobId` separately.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): AI interview preparation for one job posting
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_company_history` (~163 tokens)

Get Company History

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`).

Input parameters:

- `domain` (string, required): Company domain (e.g. 'stripe.com')
- `months` (integer): Months of history to return (default 12, max 24). Note: detailed monthly snapshots only began March 2026, so depth is currently capped by available history.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Monthly hiring history plus current state for one company
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_skill_history` (~159 tokens)

Get Skill History

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.

Input parameters:

- `months` (integer): Months of history to return (1-24, default 12). Monthly snapshots began March 2026, so depth is capped by available history.
- `skill` (string, required): Skill name or id (e.g. 'Rust', 'kubernetes', 'Machine Learning'). Aliases resolve via codex/skills.json.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Monthly market-adoption history for one skill
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_market_history` (~285 tokens)

Get Market History

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.

Input parameters:

- `days` (integer): Days of daily history (1-90, default 30). Only used when range='daily'; ignored for range='monthly'.
- `detail` (string): 'compact' (default) returns a slim per-snapshot series (date, jobs, companies, remote share, median comp) plus full distributions for only the first and latest snapshots — enough for trend analysis a…
- `months` (integer): Months of monthly history (1-24, default 12). Only used when range='monthly'; ignored for range='daily'.
- `range` (string): Granularity. 'daily' returns up to 90 days back (rich, recent). 'monthly' returns up to 24 months back (coarser, longer view). Defaults to daily.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Market-wide hiring time-series; shape depends on `detail` (compact: series+endpoints, full: snapshots)
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `compare_companies` (~175 tokens)

Compare Companies

Compare hiring profiles of multiple companies side-by-side. Analyst tier. tier. Returns per-company current state (totalJobs, medianSalary, trend, top skills) plus monthly snapshot history for the chosen window. Up to 5 companies. Use for 'compare hiring at Stripe vs Plaid vs Adyen' or 'which of these is growing fastest?'. Not for one company in depth (`get_company_profile`) or the user's personal fit (`company_fit`).

Input parameters:

- `domains` (array, required): Up to 5 company domains to compare side-by-side (e.g. ['stripe.com', 'plaid.com', 'adyen.com'])
- `months` (integer): Months of monthly-snapshot history per company (1-12, default 6). Snapshots began March 2026, so depth is capped by available history.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Side-by-side hiring comparison of up to 5 companies
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `find_companies` (~284 tokens)

Find Companies

Multi-axis company segmentation. Analyst tier. Filter by industry, role family they're hiring for, top-skill match, hiring trend, job-count range. Returns companies sorted by total open jobs descending. Use for 'fintech companies hiring ML engineers', 'defense tech companies scaling up', or 'who's hiring 100+ engineers and growing?'. Not for a simple name or industry lookup — use `search_companies` for that.

Input parameters:

- `family` (string): Only companies hiring for this role family (e.g. 'machine_learning'). Omit to include all families. ANDs with the other filters.
- `industry` (string): Industry substring filter (case-insensitive). E.g. 'fintech', 'health', 'AI', 'defense'.
- `limit` (integer): Max companies to return (1-100, default 25)
- `maxJobs` (integer): Maximum total open jobs (default unlimited)
- `minJobs` (integer): Minimum total open jobs (default 0)
- `skill` (string): Only companies whose top skills include this (case-insensitive substring, e.g. 'Rust'). Omit to skip skill filtering.
- `trend` (string): Hiring trend filter, from each company's 2-month rolling job-count average: 'up' = growing, 'down' = shrinking, 'stable' = flat.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Companies matching the segmentation filters
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `find_breakout_companies` (~159 tokens)

Find Breakout Companies

Companies with extreme hiring growth right now. Analyst tier. Returns companies whose computed trendPct exceeds the threshold (50% by default), sorted by growth descending, with their recent monthly job counts. Use for 'who's scaling fastest right now?' or 'find companies doubling their hiring'. Useful for investors and recruiters tracking momentum. Not for custom-axis segmentation by industry/family/skill — use `find_companies` for that.

Input parameters:

- `limit` (integer): Max companies to return (1-50, default 20)
- `minJobs` (integer): Minimum total open jobs to be considered (default 20, filters out tiny companies)
- `minPct` (integer): Minimum % hiring growth over the trailing window (default 50)

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Companies whose hiring growth exceeds the threshold
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `find_emerging_skills` (~348 tokens)

Find Emerging Skills

Skills with low-but-consistently-growing market adoption — early-stage signals. Analyst tier. Tracks companyCount across the last 3 monthly snapshots and surfaces skills that climbed consistently (non-decreasing) from a low base, with a meaningful absolute company-count gain — not just a big percentage on a tiny base. Use for 'what skills are quietly trending?' or 'what should I learn before everyone else?'. Defaults: adoptionMin 5, adoptionMax 25, growthMin 30%, minDelta 4, baseMax 8, limit 20. Returns a deliberately tight list; loosen minDelta / baseMax / growthMin to widen it. Not for trend lines on an established, named skill (`get_skill_history`) or role-level emergence (`find_emerging_roles`).

Input parameters:

- `adoptionMax` (integer): Maximum companies — excludes already-mainstream skills (default 25). The point is to find what's *emerging*, not what's already everywhere.
- `adoptionMin` (integer): Minimum companies that must currently mention the skill (default 5). Lower = catches earlier-stage skills.
- `baseMax` (integer): Maximum companies at the START of the window (default 8). Enforces the 'started obscure' criterion so already-established skills don't qualify.
- `growthMin` (integer): Minimum growth percentage across the snapshot window (default 30)
- `limit` (integer): Max skills to return (1-50, default 20)
- `minDelta` (integer): Minimum ABSOLUTE company-count gain over the window (default 4). Filters small-base noise — a skill going 2→4 is +100% but only +2 companies.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Skills climbing consistently from a low adoption base
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `find_emerging_roles` (~305 tokens)

Find Emerging Roles

Job roles gaining company adoption — which titles are spreading across the market. Analyst tier. Compares each canonical role's company count today against a daily rollup snapshot windowDays ago (default 21) and returns roles that cleared the growth thresholds, plus genuinely NEW titles the classifier just started seeing (how 'Forward Deployed Engineer' was first caught). Use for 'what roles are companies suddenly hiring for?' or 'is the AI-engineer title spreading?'. Defaults: windowDays 21, minCompanies 5, minDelta 2, growthMin 25%, limit 20. Not for skill-level signals — use the companion `find_emerging_skills` for those.

Input parameters:

- `growthMin` (integer): Minimum growth percentage over the window (default 25).
- `limit` (integer): Max roles to return (1-50, default 20)
- `minCompanies` (integer): Minimum companies that must currently post the role (default 5).
- `minDelta` (integer): Minimum ABSOLUTE company-count gain over the window (default 2). Filters small-base noise.
- `windowDays` (integer): Growth window in days (default 21). Company adoption today is compared against the newest daily snapshot at or before this many days ago. The daily rollup began 2026-07-03 (90-day retention) — if the…

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Roles gaining company adoption plus genuinely new titles
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `save_job` (~202 tokens)

Save Job

Save a job to the authenticated user's saved-jobs list on HireJack (or remove it with action='unsave'). Saved jobs appear at hirejack.com/saved.html and feed batch match scoring. Idempotent — saving an already-saved job is a no-op. Use when the user says 'save this one', 'bookmark these three', or 'remove that from my saved jobs'. Not for tracking an actual application (`track_application`) or following companies (`watch_company`).

Input parameters:

- `action` (string): Default 'save'. 'unsave' removes a previously saved job.
- `domain` (string): Company domain (e.g. 'stripe.com'). Required unless `url` is provided.
- `jobId` (string): Pass the `id` field from a `search_jobs` result VERBATIM. Required unless `url` is provided.
- `url` (string): Full HireJack job detail URL — convenience alternative to domain + jobId.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Result of the save/unsave action
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `watch_company` (~149 tokens)

Watch Company

Add a company to the authenticated user's watchlist on HireJack (or remove it with action='unfollow'). Watched companies power `watchlist_intelligence`, daily job alerts, and the weekly digest. Idempotent — following an already-watched company is a no-op. Use when the user says 'watch this company', 'follow Stripe for me', or 'stop watching them'. Not for saving individual job postings — use `save_job` for that.

Input parameters:

- `action` (string): Default 'follow'. 'unfollow' removes the company from the watchlist.
- `domain` (string, required): Company domain to watch, e.g. 'stripe.com'. Find domains via `search_companies`.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Result of the follow/unfollow action
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `track_application` (~264 tokens)

Track Application

Track a job application in the authenticated user's pipeline on HireJack — mark a job applied, advance its stage (applied → phone_screen → interview → offer / rejected / withdrawn), attach notes, or un-track it with remove=true. Powers the Kanban pipeline at hirejack.com/saved.html. Use when the user says 'I applied to this', 'move Stripe to interview', or 'log that I got an offer'. Not for mere bookmarking without applying — use `save_job` for that.

Input parameters:

- `domain` (string): Company domain (e.g. 'stripe.com'). Required unless `url` is provided.
- `jobId` (string): Pass the `id` field from a `search_jobs` result VERBATIM. Required unless `url` is provided.
- `notes` (string): Free-text notes to attach to this application (interviewer names, dates, etc.).
- `remove` (boolean): true = un-track this application entirely (removes it from the pipeline board).
- `stage` (string): Pipeline stage (default 'applied'). Set later stages as the process advances: phone_screen, interview, offer, rejected, withdrawn.
- `url` (string): Full HireJack job detail URL — convenience alternative to domain + jobId.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Result of the track/advance/remove action
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `list_saved_jobs` (~116 tokens)

List Saved Jobs

List the authenticated user's saved jobs on HireJack, newest first — the read companion to `save_job`. Returns title, company, ids (reusable with get_job/match_job/save_job), and flags for postings that have since closed. Use when the user asks 'what jobs have I saved?' or wants to review/prune their shortlist. Not for application-pipeline status — use `list_applications` for that.

Input parameters:

- `limit` (integer): Max entries to return (1-100, default 50, newest first).

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): The user's saved (bookmarked) jobs
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `list_applications` (~113 tokens)

List Applications

List the authenticated user's tracked job applications with their pipeline stage (applied / phone_screen / interview / offer / rejected / withdrawn), newest first — the read companion to `track_application`. Use when the user asks 'what's in my pipeline?', 'where did I apply?', or before moving an application to a new stage. Not for the saved/bookmarked list — use `list_saved_jobs` for that.

Input parameters:

- `limit` (integer): Max entries to return (1-100, default 50, newest first).

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): The user's tracked applications with pipeline stage
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `list_watchlist` (~107 tokens)

List Watchlist

List the companies on the authenticated user's HireJack watchlist — the read companion to `watch_company`. Returns company name, domain (reusable with get_company_profile/company_fit/watch_company), and follow date. Use for 'what companies am I watching?' or before adding/removing one. Not for per-company hiring trends and stats — use `watchlist_intelligence` (Pro) for that.

Input parameters:

- `limit` (integer): Max companies to return (1-100, default 50).

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Companies on the user's watchlist
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `get_profile` (~96 tokens)

Get Profile

Get the authenticated user's HireJack profile: skills, desired roles, tier, and the matching preferences (seniority, city, remote, US-only, minimum salary) that hard-filter their recommendations, For You feed, and email alerts. Call this before explaining match results or recommendations — a minimum-salary floor or remote-only preference changes what the user sees. Not for changing preferences — use the companion write tool `update_preferences` for that.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): The authenticated user's profile and matching preferences
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

### `update_preferences` (~328 tokens)

Update Preferences

Update the authenticated user's HireJack matching preferences: minimum salary (USD), require-listed-salary strict mode, remote preference, US-only, target seniority, preferred city. Changes persist to the user's profile and immediately re-filter their For You feed, recommendations, weekly digest, and daily job alerts — same effect as editing Settings on the website. Returns the full updated preference set. Use for 'raise my minimum salary to $150K', 'only show me remote US jobs', 'set my target level to staff'. Not for reading current settings — use `get_profile` for that.

Input parameters:

- `country_preference` (string): 'US' hard-filters matches to US-available jobs; 'any' clears.
- `location_city` (string): Preferred city, e.g. 'San Francisco, CA'. Empty string clears.
- `min_salary_usd` (integer): Minimum annual salary in USD. Matches must pay at least this — the bottom of a job's listed range must clear it. Pass 0 to remove the minimum. Jobs without listed pay still match unless require_salar…
- `remote_preference` (string): 'remote' and 'remote-us' HARD-filter matches to remote (US-remote) jobs; 'hybrid'/'onsite' only boost scoring; 'any' clears.
- `require_salary_usd` (boolean): When true, only jobs with a listed USD salary can match (strict mode for the minimum-salary filter). Default false.
- `seniority_preference` (string): Target seniority level, used in match scoring.

Output parameters:

- `citation_url` (string): hirejack.com URL to cite when surfacing this result
- `data` (object): Confirmation plus the updated profile
- `meta` (object): Request/response metadata (pagination cursors, snapshot timestamps, applied filters)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 24
- 2026-07-31: 5
- 2026-07-30: 33
- 2026-07-28: 33
- 2026-07-27: 33

## Links

- npm package: https://www.npmjs.com/package/@hirejack/mcp
- Socket report: https://socket.dev/npm/package/@hirejack/mcp
- Repository: https://github.com/TVLSS/hirejack-mcp
- Website: https://hirejack.com/
- Changelog RSS feed: https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/tvlss-hirejack-mcp/hirejack-mcp
