惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Last Week in AI
Last Week in AI
The Cloudflare Blog
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
S
SegmentFault 最新的问题
量子位
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
100Hires MCP Server — Connect Claude, ChatGPT and Cursor ...
kravetsss · 2026-06-16 · via Hacker News: Show HN

Developer Portal — MCP

Connect 100Hires to Claude, ChatGPT, Cursor, and any AI assistant

100Hires is an AI-native applicant tracking system (ATS). The 100Hires MCP server gives Claude, ChatGPT, Cursor, and any MCP-compatible AI assistant secure access to 130 tools for candidates, jobs, applications, and interviews — driven entirely by natural-language prompts.

One MCP endpoint, 130 tools — manage candidates, jobs, applications, interviews and messages with natural language.

Endpoint https://mcp.100hires.com/mcp

  • MIT License
  • Glama.ai verified
  • Official MCP Registry

Recruiting MCP, ATS MCP, hiring AI integration — bring your applicant tracking system into Claude, ChatGPT and Cursor with secure OAuth 2.1. Building a direct integration instead? See the 100Hires REST API documentation. New to 100Hires? Start a 14-day free trial.

What is MCP?

Model Context Protocol is an open standard from Anthropic that lets AI assistants connect to external systems through a uniform interface — think of it as USB-C for AI tools.

Hosts

AI assistants and IDEs that talk to MCP servers — Claude (web, Desktop, Code), ChatGPT, Cursor, VS Code, Codex, Windsurf, Zed.

Clients

The transport layer inside the host that speaks MCP over Streamable HTTP or stdio.

Servers

100Hires MCP server — exposes 130 tools backed by the public REST API, secured by OAuth 2.1.

100Hires runs a remote MCP server, not a local one. There’s nothing to install, deploy or update on your machine — every client, including Claude Desktop and Cursor, points at https://mcp.100hires.com/mcp and authorizes via OAuth. New tools and bug fixes land server-side and reach all your assistants the next time they call tools/list.

What you can ask

Ten real prompts that work today, in plain English.

  • “Show me candidates who applied this week for the Senior PM role”
  • “Move all rejected candidates from this job to the talent pool”
  • “Schedule a 30-minute interview with Sarah next Tuesday for the Backend Engineer role”
  • “Draft a follow-up email to candidates who haven't replied in 5 days and send it”
  • “Open a new Senior Product Designer job in New York and publish it to LinkedIn”
  • “Find every LinkedIn candidate with Python on their resume and tag them 'pythonista'”
  • “What's on my interview calendar tomorrow?”
  • “How many candidates do we have at each stage in the Sales Rep pipeline?”
  • “Reject everyone still in 'Phone Screen' for the Marketing Manager job with reason 'No response'”
  • “Pull the resume and last 3 notes for the candidate I interviewed yesterday”

Quickstart

From zero to your first MCP prompt in under five minutes.

  1. Prerequisites

    A 100Hires account on any plan, including the 14-day free trial. The MCP endpoint is available to every workspace.

  2. Pick your AI client

    One-click install for Cursor and VS Code; copy a snippet for everything else. All clients connect to https://mcp.100hires.com/mcp over Streamable HTTP; stdio-only clients use the mcp-remote shim.

    Open 100Hires in ChatGPT

    Or in ChatGPT go to Settings → Apps and find 100Hires in the directory.

    Click Connect, sign in, and click Allow.

    In claude.ai, open the sidebar and click Customize.

    Claude sidebar with the Customize menu item
    Step 1 — open the sidebar → Customize.

    Go to Connectors, click +, and choose Add custom connector.

    Claude Customize → Connectors with the + menu showing Add custom connector
    Step 2 — Connectors → +Add custom connector.

    In the Add custom connector dialog, fill in:

    • Name: 100Hires
    • Remote MCP server URL: https://mcp.100hires.com/mcp
    • Click Add.
    Claude Add custom connector dialog with Name and Remote MCP server URL fields
    Step 3 — fill in the form and click Add.

    Claude opens the 100Hires consent screen. Sign in, click Allow, and you’re connected.

    Install in Cursor

    Click Install in Cursor to add 100Hires MCP automatically. Or paste the snippet below into ~/.cursor/mcp.json.

    Install in VS Code

    Opens VS Code and registers the server. Or paste the snippet into .vscode/mcp.json in your workspace.

    Add the snippet to your Claude Desktop config and restart the app:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    Run this in your terminal:

    OpenAI Codex CLI — add the server, then run codex mcp login 100hires to authorize.

    From OpenAI Responses API

    Connect 100Hires MCP headless from your own scripts, backends, and AI agents — no desktop client required. Pass the server as a tool with type: "mcp" and the OpenAI platform calls the endpoint directly. The example exposes only the read-only hires_list_jobs tool and skips approval for that tool — add more tools to allowed_tools only after deciding which actions require approval.

    Requires an OAuth access token — your app obtains it via the OAuth 2.1 flow (see Authentication). OpenAI does not store the token: send it with every request and refresh it yourself when it expires (access tokens live 1 hour).

    from openai import OpenAI
    
    client = OpenAI()
    
    response = client.responses.create(
        model="gpt-5",
        tools=[{
            "type": "mcp",
            "server_label": "100hires",
            "server_url": "https://mcp.100hires.com/mcp",
            "authorization": "YOUR_OAUTH_ACCESS_TOKEN",
            "allowed_tools": ["hires_list_jobs"],
            "require_approval": "never"
        }],
        input="List all open jobs in 100Hires"
    )
    
    print(response.output_text)

    From Anthropic Messages API

    Connect 100Hires MCP headless from the Anthropic SDK — the MCP connector lets the Messages API call the server for you via mcp_servers, no local MCP client needed. The connector runs tools without approval prompts, so the example enables only the read-only hires_list_jobs tool — extend the allowlist in configs deliberately.

    Requires an OAuth access token — your app obtains it via the OAuth 2.1 flow (see Authentication). Anthropic does not store the token: send it with every request and refresh it yourself when it expires (access tokens live 1 hour).

    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-opus-4-8",
        max_tokens=16000,
        messages=[{"role": "user", "content": "List all open jobs in 100Hires"}],
        mcp_servers=[{
            "type": "url",
            "url": "https://mcp.100hires.com/mcp",
            "name": "100hires",
            "authorization_token": "YOUR_OAUTH_ACCESS_TOKEN"
        }],
        tools=[{
            "type": "mcp_toolset",
            "mcp_server_name": "100hires",
            "default_config": {"enabled": False},
            "configs": {"hires_list_jobs": {"enabled": True}}
        }],
        betas=["mcp-client-2025-11-20"]
    )
    
    for block in response.content:
        if block.type == "text":
            print(block.text)

    For stdio-only clients (Zed, Windsurf, n8n, older builds) use the mcp-remote shim. It’s a third-party open source bridge: github.com/geelen/mcp-remote.

    Full list of MCP-compatible clients: modelcontextprotocol.io/clients.

  3. Authorize

    Your client opens the 100Hires consent screen. Sign in, review the requested scope, click Allow. Tokens are stored on the client; 100Hires never sees its credentials.

  4. Verify

    Ask your assistant: “List all open jobs in 100Hires.” If you get a list back — you’re wired up. If not, see FAQ.

  5. Next steps

    • Browse all 130 tools
    • Understand OAuth and scopes
    • Review the safety model

Tools

Keep human confirmation on for destructive tools. Feedback: support@100hires.com.

Authentication

OAuth 2.1 with PKCE and Dynamic Client Registration. Hosts onboard themselves — no API keys to copy and paste, no client secrets to leak.

Flow

AI client → GET  /.well-known/oauth-authorization-server   (RFC 8414)
          → POST /oauth/register                            (DCR, RFC 7591)
          → GET  /oauth/authorize  + PKCE                   (consent in 100Hires)
          → POST /oauth/token                               (code → access_token)
          → POST /mcp  Authorization: Bearer <token>

Scopes

A single scope, mcp:full, mirrors the permissions of the authorizing user.

Token lifetime & refresh

  • Access tokens expire after 1 hour.
  • Refresh tokens are issued automatically; clients refresh transparently.
  • Tokens are bound to the authorizing user and revoked when they leave the workspace.

Manage sessions

Settings → Integrations → Connected AI clients lists every active session: client name (from DCR), last used, IP, scope, and a one-click Revoke.

Safety

  • Access is controlled by your API key permissions.
  • Read operations are always safe.
  • Destructive actions (delete, reject) require explicit IDs.
  • Rate limiting with automatic retry is built-in.
  • API key is never sent to third-party hosts.

Access model

Every token — OAuth or API key — is bound to a single 100Hires user. The MCP server only ever sees data that user could see in the UI; cross-company access is impossible. Sessions are listed under Settings → Integrations → Connected AI clients.

Destructive tools

These tools modify or remove data and always require explicit IDs — assistants cannot batch-delete by query:

  • hires_delete_*
  • hires_reject_application
  • hires_disqualify_candidate
  • hires_batch_reject_applications

Best practices

  • Don’t hand AI assistants a blanket “delete by filter” permission — keep human confirmation on for destructive tools.
  • Use a separate token per client so you can revoke one without disrupting the others.
  • Revoke unused sessions on a regular cadence.
  • For CI, prefer a restricted API key over a personal token.

FAQ

I’m getting 401 Unauthorized or Internal server error

Your access token has likely expired or was revoked. Disconnect and reconnect the MCP server in your client.

Claude clients store tokens locally. To force a fresh OAuth flow:

rm -rf ~/.mcp-auth/100hires
I’m getting an error from the server

Email support@100hires.com with the failing tool name, the time of the request and the error message your client showed.

WSL / Windows quirks with npx mcp-remote

Run mcp-remote from the same shell as your client (e.g. WSL → WSL, not WSL → Windows host). Clear the on-disk token cache (~/.mcp-auth/100hires) when switching environments.

Does the server support Streamable HTTP?

Yes. Both application/json and text/event-stream responses are supported. If you’re reverse-proxying, set proxy_buffering off for the SSE path.