extract_job_adLABSCO SUMMARY
The salary parser is deterministic, and that is the right call.
Salary strings are where these tools usually fail quietly — a model reading "£45k to £60k per annum" will get it right most of the time, and the times it does not look identical to the times it does. Parsing them with rules instead makes the failures visible. The fit scorer is explicit about staying on skills, experience, tools and seniority with no protected-characteristic inference, and ships a disclaimer saying it should not be the sole basis for a hiring decision — worth honouring, since the output reads authoritative.
What it is
An MCP server over Streamable HTTP that reads job adverts. Five tools cover the pipeline from a raw posting to a decision: extract the structure, normalise the money, classify the level, compare a CV against it on skills alone, and generate the questions the advert leaves unanswered.
What you get
- A job advert turned into fields — title, company, location, remote policy, employment type, salary, seniority, required and preferred skills, responsibilities, requirements, benefits and application instructions, with a confidence value — from raw text or a URL —
extract_job_ad - Freeform salary strings parsed deterministically into minimum, maximum, currency and period, handling the shapes adverts actually use:
£45k–£60k,up to £70,000,from £500 per day,$120k,€80,000 pa,competitive,DOE—normalise_salary - A seniority classification with the signals behind it, across entry, junior, mid, senior, lead, head_of, executive and unknown —
detect_seniority - A CV compared against an advert on skills, experience, tools and seniority only, returning matched and missing skills, experience alignment, red flags and interview talking points — with no protected-characteristic inference —
score_candidate_fit - 5–10 questions to ask before applying or during screening, each with why it matters and a category — role, company, compensation, flexibility, process or expectations —
generate_application_questions
Requirements
No key to run it locally: build from a clone with npm install and npm run build, and connect over Streamable HTTP at the /mcp endpoint. PAYMENTS_ENABLED defaults to false, so all requests pass through freely with no wallet; switching it on turns the server into an x402 pay-per-call service settling in USDC. URL fetching is guarded — localhost and private IP ranges are rejected, responses are capped by FETCH_MAX_BYTES at 1 MB, and FETCH_TIMEOUT_MS bounds the wait at 10 seconds.
Setup effort
Build from source — git clone https://github.com/dannydaley76/job-ad-intelligence-mcp.git
USE CASES
Comparing adverts that describe pay differently
Normalise each salary string into a range with a currency and a period, so a daily rate and an annual figure become comparable.
Reading a long posting quickly
Extract the advert into fields and read the requirements and benefits directly rather than the marketing paragraphs around them.
Deciding whether it is worth applying
Score your CV against the advert on skills, and read the missing-skills list before you spend an evening on the application.
Working out what the advert is not telling you
Generate the screening questions with the reasons behind them, which points at the vague compensation or process language directly.
Checking whether a title means what it says
Classify the seniority from the title and description and read the signals, when "Senior" in one company is "Mid" in another.
5 tools
Listed in project docs. Your client may show a different list.
normalise_salarydetect_seniorityscore_candidate_fitgenerate_application_questionsBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- Node.js and npm to run the server
- an MCP client that connects over Streamable HTTP
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
# 1. Clone the project
git clone https://github.com/dannydaley76/job-ad-intelligence-mcp.git
cd job-ad-intelligence-mcp
# 2. Install dependencies
npm install
# 3. Configure environment
cp .env.example .env
# Edit .env as needed (defaults are fine for local development)
# 4. Run in development mode
npm run dev
# 5. Run tests
npm test
# 6. Build for production
npm run build
npm startMCP Clients
Any MCP client — Local
With npm run dev running, point a client that supports Streamable HTTP at the local endpoint on port 3100.
{
"mcpServers": {
"job-ad-intelligence": {
"url": "http://localhost:3100/mcp",
"type": "http"
}
}
}