Skip to main content
Glama
theomatrix

offer-quest mcp

by theomatrix

OfferQuest MCP Server (mcp_j.py)

Available on Glama

A fast, secure, and LLM-friendly Model Context Protocol (MCP) server that scrapes job listings from major platforms (LinkedIn, Indeed, Google) and converts them into structured Markdown format.

offer-quest mcp MCP server

Features

  • Blazing Fast API Scraping: Uses python-jobspy to pull latest jobs instantly without heavy browser automation overhead.

  • Multi-Search Support: Automatically handles parallel searching for multiple comma-separated job titles and locations in a single unified run.

  • LLM-Optimized Output: Jobs are formatted into a clean, easy-to-read Markdown table specifically designed for AI agents and LLMs to parse and understand securely.

  • Strict Security:

    • All user inputs are sanitized to drop executable scripts and strange characters (_sanitize_text).

    • Limits max input length to prevent denial-of-service (DoS).

    • Internal errors/stack traces are masked from the user to prevent data leakage.

  • Granular Targeting:

    • Dynamic Country selection explicitly prevents the APIs from serving out-of-bounds global results.

    • "Max Hours Old" filter perfectly isolates ultra-fresh job postings.

Related MCP server: LinkedIn MCP Server

Installation

Ensure you have Python 3.10+ installed.

  1. Clone or navigate to this project directory.

  2. Create a virtual environment (Recommended):

    python3 -m venv myenv
    source myenv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt

Usage

Start the server locally:

python3 mcp_j.py
  • The server will boot up a local Gradio interface (usually http://127.0.0.1:7860).

  • If you are plugging this into an MCP client, the endpoint is exposed at /gradio_api/mcp/.

Deployment

Since the codebase is stateless and doesn't rely on background Playwright Chromium browsers, this script is highly viable for lightweight containerized deployments (Docker, Render, Heroku) or standard VPS setups.

Security checklist completed for deployment:

  • Catch-all error blocks to hide raw API tracebacks.

  • Built-in input sanitization using rigorous Regex.

  • Hard limits on payload size (max_results=25 upper-bound).

Note: For highest stability on cloud providers, ensure that the IP address you are querying from isn't strictly blacklisted by Indeed/LinkedIn.

Available Tools

1 tool
search_jobsB

Search for the latest jobs and internships and return them as a structured, LLM-ready Markdown report. Supports multiple titles and locations.

Args: job_titles: The roles you are looking for (e.g., 'Python Developer Intern'). locations: Cities or locations (e.g., 'Delhi, Remote'). country: The target country for the search. max_results: Number of jobs to fetch per source per combo (1-10). hours_old: Only show jobs posted within this many hours (default 48, max 168).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_titlesYes
locationsYes
countryNoIndia
max_resultsNo
hours_oldNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions the output format ('structured, LLM-ready Markdown report') and time filtering ('hours_old'), but lacks details on rate limits, authentication needs, data sources, pagination, error handling, or what 'latest' means operationally. This leaves significant gaps for a tool with 5 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose. The 'Args:' section is well-structured but slightly verbose; every sentence adds value, though it could be more streamlined. No redundant information is present, making it efficient for understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters with 0% schema coverage and no annotations, the description does a fair job explaining inputs and output format. However, it lacks details on behavioral aspects like rate limits or error handling. The presence of an output schema means return values don't need explanation, but overall completeness is adequate with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining each parameter's purpose with examples (e.g., 'job_titles: The roles you are looking for'), default values, and constraints (e.g., 'max_results: 1-10', 'hours_old: default 48, max 168'). This clarifies semantics beyond the bare schema, though it doesn't cover all nuances like format specifics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for 'latest jobs and internships' and returns them as a 'structured, LLM-ready Markdown report.' It specifies the verb (search), resource (jobs/internships), and output format. However, with no sibling tools mentioned, there's no opportunity to differentiate from alternatives, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus other methods or tools. It mentions supporting 'multiple titles and locations' but doesn't specify prerequisites, exclusions, or alternative approaches. Without siblings, it could implicitly be the go-to for job searches, but explicit usage context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 1 tool updatev0.1.0
    • First observedsearch_jobs

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'search_jobs' has a clearly defined and distinct purpose focused on job searching.

Naming Consistency5/5

The single tool name 'search_jobs' follows a clear verb_noun pattern, and with only one tool, consistency is inherently perfect. There are no other tools to create inconsistency.

Tool Count2/5

A single tool is too few for a server named 'offer-quest mcp', which implies a broader scope related to job offers or quests. This minimal toolset feels thin and incomplete for the apparent domain, limiting functionality to only searching without other operations like applying, tracking, or managing jobs.

Completeness2/5

The tool surface is severely incomplete for a job-related domain. While 'search_jobs' covers discovery, there are significant gaps such as creating, updating, or deleting job applications, managing profiles, or handling notifications, which are typical in job search workflows. This will likely cause agent failures when trying to perform full tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    A production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.
    8
    106
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.
    31
    -
  • A
    license
    A
    quality
    D
    maintenance
    Official Model Context Protocol (MCP) server to search, filter, and retrieve live remote job listings from the Jobicy database in real-time. Works with Claude Code, Cursor, Cline, and custom AI agents.
    2
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.
    18
    1
    AGPL 3.0