VeritaHire live jobs

Live US jobs from employers' own career sites, still-open checks, competitive hiring reports.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
79%
Naming quality
89%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,673Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.31% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "jobs": {
      "url": "https://veritahire.com/mcp"
    }
  }
}

Remote endpoints

https://veritahire.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_live_jobs(what, where, radius_miles, min_pay, employment_type, ...)

Search US jobs that are live right now on employers' own careers sites (re-read on a schedule, retired within about 36 hours of leaving). Give what (title or keywords) and where (City, ST or ZIP), or remote_only. Returns up to 25 jobs with posted pay, what each posting asks for (education, licences, years), distance, when it was last confirmed, the employer's industry and size, the employer's own apply link, and a job_id for the whole posting. Only the filters given are applied; the "asks" are listed, never used to drop a job. To keep a daily feed for one person (e.g. from their resume), run the same search each day with posted_within_days=1, title_exclude for titles they do not want, and page through next_page.

Input Schema

{
  "type": "object",
  "properties": {
    "what": {
      "type": "string",
      "description": "Job title or keywords, e.g. \"registered nurse\", \"forklift\""
    },
    "where": {
      "type": "string",
      "description": "\"City, ST\" or a 5-digit ZIP"
    },
    "radius_miles": {
      "type": "integer",
      "enum": [
        10,
        25,
        30,
        50,
        100
      ],
      "default": 25
    },
    "min_pay": {
      "type": "number",
      "description": "Minimum pay: annual, or hourly if under 300. Jobs that do not post pay are kept, listed last."
    },
    "employment_type": {
      "type": "string",
      "enum": [
        "full_time",
        "part_time",
        "contract",
        "seasonal",
        "temporary"
      ]
    },
    "remote_only": {
      "type": "boolean"
    },
    "posted_within_days": {
      "type": "integer",
      "enum": [
        1,
        3,
        7,
        14,
        30
      ]
    },
    "title_exclude": {
      "type": "string",
      "description": "Comma-separated words; jobs whose title contains any of them are left out, e.g. \"senior, travel\""
    },
    "sort": {
      "type": "string",
      "enum": [
        "new",
        "pay",
        "near"
      ],
      "description": "Default: best match"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "25 jobs a page; pass next_page from the previous result"
    }
  }
}
🟢get_job(job_id, url)

The whole posting text from the employer, its requirement facts (education, licences, years required and preferred, skills), pay, any sign-on bonus it offers (the amount, quoted from the posting), benefits, whether it is still open, and the apply link.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "description": "VeritaHire job id, as returned in search results"
    },
    "url": {
      "type": "string"
    }
  }
}
🟢save_search(what, where, radius_miles, employment_type, remote_only)

Returns a link for the person. They open it on veritahire.com, enter their own email address and confirm; after that they get a daily email of new jobs matching this search (still live on employers' own careers sites). This tool sends no email and takes no email address: VeritaHire only emails the address the person types there.

Input Schema

{
  "type": "object",
  "properties": {
    "what": {
      "type": "string"
    },
    "where": {
      "type": "string",
      "description": "\"City, ST\" or ZIP"
    },
    "radius_miles": {
      "type": "integer",
      "enum": [
        10,
        25,
        30,
        50,
        100
      ]
    },
    "employment_type": {
      "type": "string",
      "enum": [
        "full_time",
        "part_time",
        "contract",
        "seasonal",
        "temporary"
      ]
    },
    "remote_only": {
      "type": "boolean"
    }
  }
}
🟢report_problem(kind, job_id, detail, search)

Records a problem with VeritaHire data: a job listed as open that the employer's site shows closed (job_closed), wrong place, wrong pay, wrong employer name, a search that returned irrelevant results or missed jobs it should have found, or duplicates. job_id identifies one job; search holds the search arguments for a results problem. Reports are about data, not people, and a person at VeritaHire reads every one.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "job_closed",
        "wrong_location",
        "wrong_pay",
        "wrong_employer",
        "irrelevant_results",
        "missing_jobs",
        "duplicate",
        "other"
      ]
    },
    "job_id": {
      "type": "integer"
    },
    "detail": {
      "type": "string",
      "description": "What was wrong, in a sentence or two"
    },
    "search": {
      "type": "object",
      "description": "The search arguments that produced the problem"
    }
  },
  "required": [
    "kind"
  ]
}
🟢benchmark_role(job_url, job_id, employer, title, city, ...)

Competitive Hiring Report, free summary, for the employer of one US healthcare, finance, IT, engineering, science, HR, legal or marketing job posting (nurses, therapists, pharmacists, accountants, bankers, software engineers, data roles, engineers, scientists, attorneys, recruiters, marketers) that is not filling: the posted pay range in that market (salary benchmarking) and how many employers are hiring it. The full report, first one free (request_full_report), names each competitor with the pay it posts and how fast it closes the role (posting up to posting down), and shows where this posting sits and how hard the role is to fill there. Measured from employers' own careers sites. Identify the posting by job_url (the careers-site link, or a veritahire.com/j/ link), job_id, or employer + title (+ city, state). A role not yet benchmarked returns status "building" with retry_after_seconds, the time until it is ready.

Input Schema

{
  "type": "object",
  "properties": {
    "job_url": {
      "type": "string",
      "description": "The posting's URL on the employer's careers site, or a veritahire.com/j/ URL"
    },
    "job_id": {
      "type": "integer",
      "description": "VeritaHire job id"
    },
    "employer": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "description": "Two-letter US state"
    }
  }
}
🟢request_full_report(job_url, job_id, employer, title, city, ...)

Returns a link for the person who will use the full Competitive Hiring Report for a posting (first report free). They open it on veritahire.com with the posting already filled in, enter their own work email, and get the report. This tool sends no email and takes no email address: VeritaHire only emails the address the person types there.

Input Schema

{
  "type": "object",
  "properties": {
    "job_url": {
      "type": "string"
    },
    "job_id": {
      "type": "integer"
    },
    "employer": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "state": {
      "type": "string"
    }
  }
}
🟢is_job_still_open(url, job_id)

Checks whether a job posting is still on the employer's own careers site (VeritaHire re-reads employer sites and marks a posting closed within about 36 hours of it leaving). Returns open, closed or unknown, with the last time it was confirmed. Works for postings found anywhere, given the employer's careers-site link.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The posting URL (careers site or veritahire.com/j/)"
    },
    "job_id": {
      "type": "integer"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools