Job Listings MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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: MCP JobSearch
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.txt2. Configure
cp .env.example .env
# Edit .env as needed3. Run
python main.pyThe 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 |
| string | Filter by location (substring, case-insensitive) |
| string | Filter by keyword in job title |
| int | Only jobs scraped within the last N hours |
| int | Max results (default 100, max 500) |
| 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/scrapeGET /status — Last Scrape Status
curl http://localhost:8000/statusGET /roles — Configured Role Tiers
curl http://localhost:8000/rolesDeployment
Railway
Fork the
mcp-serverrepo to a new GitHub repo (or subdirectory).Connect Railway to the repo.
Railway auto-detects the Dockerfile.
Add a Volume at
/datato persist the SQLite DB.Set environment variables in the Railway dashboard.
Render
Create a new Web Service.
Point to the repo/directory.
Set Build Command:
pip install -r requirements.txtSet Start Command:
python main.pyAdd a Disk at
/dataand setDATA_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
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Live job postings from 14+ ATS career sites (Greenhouse, Lever, Workday, Ashby and more) plus remote jobs, in one JSON format. Runs on Apify (Apify OAuth or API token).
Scrape job listings from Greenhouse, Workable, Reed, RemoteOK and other boards. Pay per row.
Personio Jobs Scraper turns any company's Personio job board into clean, de-duplicated JSON…
Global Job Search API for All Job Boards, Remote
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.2MIT
- FlicenseNot gradedqualityCmaintenancePersonal job posting management MCP server that fetches job postings from multiple Korean job sites and stores them for LLM analysis, enabling timeline tracking and cover letter draft management.1-
- AlicenseNot gradedqualityDmaintenanceMCP server that aggregates and deduplicates job listings from multiple public sources, ranks them against a user's resume, and exposes tools for searching, viewing details, explaining fit, and tracking applications.MIT
- AlicenseNot gradedqualityBmaintenanceEnables natural-language job search and aggregation from multiple recruitment websites with zero configuration, providing filtered results and standardized output for AI assistants.58 npmISC