jobsmcpautomation

Automate Job Search with an MCP Server

Build job search automation using MCP. Agent searches Google Jobs and Reddit hiring threads via MCP tools.

5 min read

Job searching in 2026 still involves opening 5 tabs, typing the same query into each job board, and scrolling through hundreds of irrelevant listings. An MCP server that searches Google Jobs and Reddit hiring threads gives you a single tool that an AI agent can call to aggregate results across platforms. But a tool only solves the discovery part. The hard part -- networking, tailoring resumes, and following up -- is still manual and still matters more.

The MCP server setup

An MCP server exposes tools that an AI agent can call. Here we define two tools: one for Google Jobs search and one for Reddit hiring thread search.

Python
import requests, os
from mcp.server import Server
from mcp.types import Tool, TextContent

app = Server("job-search")
HEADERS = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
API_URL = "https://api.scavio.dev/api/v1/search"

@app.list_tools()
async def list_tools():
    return [
        Tool(
            name="search_jobs",
            description="Search Google for job listings",
            inputSchema={
                "type": "object",
                "properties": {
                    "role": {"type": "string", "description": "Job title"},
                    "location": {"type": "string", "description": "City or remote"},
                },
                "required": ["role"],
            },
        ),
        Tool(
            name="search_reddit_hiring",
            description="Search Reddit hiring threads",
            inputSchema={
                "type": "object",
                "properties": {
                    "role": {"type": "string", "description": "Job title or skill"},
                },
                "required": ["role"],
            },
        ),
    ]

Implementing the tool handlers

Python
@app.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "search_jobs":
        role = arguments["role"]
        location = arguments.get("location", "remote")
        query = f"{role} jobs {location} 2026"
        resp = requests.post(API_URL, headers=HEADERS,
            json={"query": query, "num_results": 10}, timeout=10)
        results = resp.json().get("results", [])
        formatted = []
        for r in results:
            formatted.append(f"- {r['title']}\n  {r['url']}\n  {r.get('snippet', '')}")
        return [TextContent(type="text", text="\n\n".join(formatted))]

    elif name == "search_reddit_hiring":
        role = arguments["role"]
        query = f"site:reddit.com hiring {role} 2026"
        resp = requests.post(API_URL, headers=HEADERS,
            json={"query": query, "num_results": 8}, timeout=10)
        results = resp.json().get("results", [])
        formatted = []
        for r in results:
            formatted.append(f"- {r['title']}\n  {r['url']}")
        return [TextContent(type="text", text="\n\n".join(formatted))]

Agent workflow example

Once the MCP server runs, an agent can call both tools in sequence. A typical workflow: search for jobs matching your criteria, search Reddit for hiring threads in relevant subreddits, then synthesize the results into a prioritized list.

  1. Agent calls search_jobs with role="senior backend engineer" and location="remote"
  2. Agent calls search_reddit_hiring with role="backend engineer"
  3. Agent deduplicates results across both sources
  4. Agent ranks by relevance and recency, filtering out listings older than 2 weeks
  5. Agent outputs a summary: company, role, link, source

Claude Code config for the MCP server

JSON
{
  "mcpServers": {
    "job-search": {
      "command": "python",
      "args": ["job_search_mcp.py"],
      "env": {
        "SCAVIO_API_KEY": "your-api-key"
      }
    }
  }
}

Cost for a daily job search routine

  • 3 role variations x 2 location variations = 6 Google job searches
  • 3 Reddit hiring thread searches
  • Total: 9 searches/day, 270/mo = $1.35/mo
  • Well within the 500 free credits/mo tier

What this tool cannot do

Job search automation solves the discovery bottleneck but not the conversion bottleneck. The tool finds listings. It does not write your resume, tailor your cover letter, or warm-intro you to the hiring manager. The highest-signal job leads still come from direct referrals, not search results. Use this tool to cast a wide net, but invest your time in networking for the roles you care about most.

Also: Google Jobs results depend on what employers post publicly. Many senior and executive roles are filled through recruiters and never appear in search results. The tool works best for mid-level individual contributor roles that are publicly listed.