ENTRA Jobs

Verified AI/tech jobs from company ATSs: search, fit matching, salary stats; employer job posting

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
96%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_job' description lacks action verbin get_job
  • LOWTool 'match_profile' description lacks action verbin match_profile

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,783Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.39% 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": {
    "entra-mcp": {
      "command": "npx",
      "args": [
        "entra-mcp"
      ]
    }
  }
}

Runnable packages

npmentra-mcp0.4.0stdio

Remote endpoints

https://mcp.entracareers.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸขsearch_jobs(query, work_location, remote, country, company, ...)

Search thousands of verified AI & tech jobs on ENTRA (aggregated directly from company hiring systems โ€” zero ghost jobs). Filters: work location, country, company, annual salary, experience, posted_within_days. rank_by date | salary | fit (fit needs profile_keywords). Returns total_found and live roles with salary bands and apply links.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Free-text search, e.g. \"machine learning engineer\""
    },
    "work_location": {
      "type": "string",
      "enum": [
        "remote",
        "onsite",
        "hybrid"
      ],
      "description": "Filter by work location"
    },
    "remote": {
      "type": "boolean",
      "description": "Shorthand for work_location=\"remote\""
    },
    "country": {
      "type": "string",
      "description": "ISO-2 country code (US, GB, DE, AEโ€ฆ) or country name"
    },
    "company": {
      "type": "string",
      "description": "Company slug or name, e.g. \"openai\" or \"Stripe\""
    },
    "salary_min": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum ANNUAL salary (default currency USD; ENTRA converts other currencies)"
    },
    "salary_currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Currency for salary_min (default USD)"
    },
    "experience": {
      "type": "string",
      "enum": [
        "no_experience",
        "1_3_years",
        "3_6_years",
        "6_plus_years"
      ],
      "description": "Experience level"
    },
    "posted_within_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "Only roles published in the last N days"
    },
    "rank_by": {
      "type": "string",
      "enum": [
        "date",
        "salary",
        "fit"
      ],
      "description": "date (default) ยท salary (listed bands only, highโ†’low) ยท fit (needs profile_keywords)"
    },
    "profile_keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 30,
      "description": "Candidate skills for rank_by=\"fit\", e.g. [\"python\",\"pytorch\",\"llm\"]"
    },
    "sort_by_salary": {
      "type": "boolean",
      "description": "Deprecated โ€” use rank_by=\"salary\""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Max results (default 10, max 50)"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขget_job(job_id)

Full details of one ENTRA job by id: description, requirements, skills, salary band, company, apply link.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Job id from search_jobs / match_jobs"
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขlist_companies(query, limit)

List companies hiring on ENTRA (OpenAI, Anthropic, SpaceX, Stripe and 300+ more) with open-role counts and profile links.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Filter by company name"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Max results (default 20)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขmatch_jobs(resume_text, skills, target_role, remote_only, country, ...)

AI matching, live: pass resume_text (free text) or skills[] plus optional target_role / remote_only / country / min_salary. Extracts skills, role and seniority deterministically, runs 2โ€“4 searches, dedupes and ranks with an explainable fit_score (0โ€“100), why[], matched_skills, skill_gaps, salary and a qualitative interview_chance_hint. ENTRA finds and ranks; the human applies.

Input Schema

{
  "type": "object",
  "properties": {
    "resume_text": {
      "type": "string",
      "maxLength": 8000,
      "description": "Free-text resume / profile (โ‰ค8000 chars). Skills, role and seniority are extracted deterministically."
    },
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "description": "Key skills if you have no resume text, e.g. [\"python\",\"llm\",\"rag\"]"
    },
    "target_role": {
      "type": "string",
      "description": "Target role, e.g. \"machine learning engineer\" (overrides the role detected in resume_text)"
    },
    "remote_only": {
      "type": "boolean",
      "description": "Only remote roles"
    },
    "country": {
      "type": "string",
      "description": "ISO-2 country code or country name"
    },
    "min_salary": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum ANNUAL salary in USD"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Max matches (default 10, max 20)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขmatch_profile(skills, role_hint, remote_only, limit)

Backward-compatible alias of match_jobs: skills[] (+ role_hint, remote_only, limit) โ†’ ranked verified roles with fit explanation.

Input Schema

{
  "type": "object",
  "properties": {
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Key skills / technologies, e.g. [\"python\",\"llm\",\"rag\"]"
    },
    "role_hint": {
      "type": "string",
      "description": "Target role, e.g. \"ML engineer\""
    },
    "remote_only": {
      "type": "boolean"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 15
    }
  },
  "required": [
    "skills"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขsalary_stats(query, country, remote_only, experience)

Salary statistics for a role query from ENTRA listings that publish a band (up to 150 most recent): count_with_salary, min / p25 / median / p75 / max per currency (annualized; USD reported as USD-equivalent, other currencies as-is), top 5 companies by count. Listed bands only โ€” no estimates.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Role query, e.g. \"machine learning engineer\""
    },
    "country": {
      "type": "string",
      "description": "ISO-2 country code or country name"
    },
    "remote_only": {
      "type": "boolean",
      "description": "Only remote roles"
    },
    "experience": {
      "type": "string",
      "enum": [
        "no_experience",
        "1_3_years",
        "3_6_years",
        "6_plus_years"
      ],
      "description": "Experience level"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขcompanies_hiring(query, country, remote_only, limit)

Which companies are hiring for a role right now: aggregates ENTRA search results (up to 300 most recent roles) into companies with open-role counts, sample titles, latest post date, verified flag and profile URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Role query, e.g. \"AI engineer\""
    },
    "country": {
      "type": "string",
      "description": "ISO-2 country code or country name"
    },
    "remote_only": {
      "type": "boolean",
      "description": "Only remote roles"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Max companies (default 15, max 25)"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
๐ŸŸขprepare_application(job_id)

Prepare an application for an ENTRA job: returns the direct apply link and a short checklist. The human reviews and applies โ€” no auto-submission.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Job id from search_jobs / match_jobs"
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools