Skip to main content
Glama
itsyashvardhan

Job Listings MCP Server

MCP Server

A standalone Python microservice that scrapes fresh job listings using Jobspy, stores them in SQLite with deduplication, and exposes a /jobs REST endpoint for embedding in a portfolio site as a live feed.


Features

  • Multi-site scraping

  • Tiered role search

  • Smart deduplication

  • APScheduler

  • Query filtering

  • CORS-enabled

  • Deploy-ready


Related MCP server: MyCareersFuture MCP Server

Architecture

APScheduler (1hr)  →  Jobspy Scraper  →  SQLite (deduped)  ←  FastAPI /jobs
                                                                    ↕
                                                          Portfolio Site (fetch)

Quick Start

1. Clone & Install

cd jobs-mcp-server
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

2. Configure

cp .env.example .env
# Edit .env as needed

3. Run

python main.py

The server starts at http://localhost:8000. An initial scrape runs automatically in the background.


API Endpoints

GET / — Health Check

{
  "status": "healthy",
  "service": "Job Listings MCP Server",
  "total_jobs_in_db": 142,
  "scrape_interval_hours": 1
}

GET /jobs — List Job Listings

Query Params:

Param

Type

Description

location

string

Filter by location (substring, case-insensitive)

keyword

string

Filter by keyword in job title

hours

int

Only jobs scraped within the last N hours

limit

int

Max results (default 100, max 500)

offset

int

Pagination offset

Example:

curl "http://localhost:8000/jobs?location=San%20Francisco&keyword=AI&hours=24"

Response:

{
  "count": 5,
  "filters": {
    "location": "San Francisco",
    "keyword": "AI",
    "hours": 24
  },
  "jobs": [
    {
      "id": 1,
      "job_title": "AI Solutions Engineer",
      "company": "Acme Corp",
      "location": "San Francisco, CA",
      "salary": "USD 120,000–160,000/yearly",
      "apply_link": "https://linkedin.com/jobs/...",
      "date_posted": "2025-01-15",
      "date_scraped": "2025-01-15T12:00:00+00:00",
      "source_site": "linkedin",
      "role_tier": "T2 — Secondary"
    }
  ]
}

POST /scrape — Manual Trigger

Triggers a scrape run in the background.

curl -X POST http://localhost:8000/scrape

GET /status — Last Scrape Status

curl http://localhost:8000/status

GET /roles — Configured Role Tiers

curl http://localhost:8000/roles

Deployment

Railway

  1. Fork the mcp-server repo to a new GitHub repo (or subdirectory).

  2. Connect Railway to the repo.

  3. Railway auto-detects the Dockerfile.

  4. Add a Volume at /data to persist the SQLite DB.

  5. Set environment variables in the Railway dashboard.

Render

  1. Create a new Web Service.

  2. Point to the repo/directory.

  3. Set Build Command: pip install -r requirements.txt

  4. Set Start Command: python main.py

  5. Add a Disk at /data and set DATA_DIR=/data.


🔗 Portfolio Integration

In your Next.js portfolio, fetch from the deployed URL:

// In a Next.js API route or client component
const API_URL = process.env.NEXT_PUBLIC_JOBS_API_URL || 'https://your-jobs-server.up.railway.app';

async function fetchJobs(filters?: { location?: string; keyword?: string; hours?: number }) {
  const params = new URLSearchParams();
  if (filters?.location) params.set('location', filters.location);
  if (filters?.keyword) params.set('keyword', filters.keyword);
  if (filters?.hours) params.set('hours', String(filters.hours));

  const res = await fetch(`${API_URL}/jobs?${params.toString()}`);
  return res.json();
}

License

MIT

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A FastAPI-based microservice that analyzes job URLs and extracts detailed company information by crawling job postings and company websites, with data enrichment from external providers.
    Last updated
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    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.
    Last updated
    1
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Live job postings from 30+ ATS feeds and job boards, one schema. Live results need a Bearer key.

  • Job platform for AI agents. Track tech jobs from companies that match your stack.

  • Hiring, SEC, research papers, GitHub & Hacker News as JSON for AI agents. Pay-per-result on Apify.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itsyashvardhan/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server