Anjin
FreeNot checkedMCP server for anjin.tech — Japan tech jobs, searchable by LLM agents
About
MCP server for anjin.tech — Japan tech jobs, searchable by LLM agents
README
MCP server for anjin.tech, a Japan tech-jobs aggregator that pulls from Findy, Green, HERP and Levtech. Roughly 7,700 listings with parsed salaries across ~3,500 companies, machine-translated to English. Gives an agent a way to search the Japanese job market, pull up a listing, and match a profile against open roles.
Things you can ask for:
"Find me remote Rust jobs in Japan paying over ¥10M"
"What's the salary distribution for backend roles?"
"Which companies are hiring TypeScript engineers in Osaka?"
Tools
| Tool | What it does |
|---|---|
search_jobs |
Filter by tech tags, role, remote policy, min salary, prefecture, recency, board, English-friendly. Returns short cards with job ids. |
get_job |
Full listing by id: requirements, tech stack, work style, compensation, apply link. |
search_companies |
Name / category / prefecture search over the cached company dataset. |
get_company |
Profile + open jobs, by slug or exact company name. |
get_market_report |
Market stats by topic: salary, roles, tech demand, remote split, top employers, AI adoption. |
match_jobs |
Takes a candidate profile (skills, roles, salary floor, remote, location) and returns ranked matches with a note on why each one scored. |
Install
Requires Node.js 20+ and git.
npm install -g github:egegungordu/anjin-mcp
This puts an anjin-mcp command on your PATH. Then register it with your client:
Claude Code
claude mcp add anjin -- anjin-mcp
Codex
codex mcp add anjin -- anjin-mcp
opencode, in opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"anjin": { "type": "local", "command": ["anjin-mcp"], "enabled": true }
}
}
VS Code
code --add-mcp "{\"name\":\"anjin\",\"command\":\"anjin-mcp\"}"
Other clients (Claude Desktop, Cursor, Gemini CLI, Windsurf, Zed)
Same block for all of them, just a different file:
{
"mcpServers": {
"anjin": { "command": "anjin-mcp" }
}
}
| Client | File |
|---|---|
| Claude Desktop | claude_desktop_config.json (Settings → Developer → Edit Config) |
| Cursor | ~/.cursor/mcp.json, or .cursor/mcp.json per project |
| Gemini CLI | ~/.gemini/settings.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Zed | settings.json, under context_servers |
Run from a local clone instead
git clone https://github.com/egegungordu/anjin-mcp.git
cd anjin-mcp && npm install # builds via the prepare script
claude mcp add anjin -- node /absolute/path/to/anjin-mcp/dist/index.js
No API key or account needed. anjin.tech is public.
How it works
anjin.tech has no API, no sitemap and no feeds, so this server fetches the site's Next.js pages and reads the JSON that's already sitting inside them: the RSC flight payload on list pages, streamed Suspense HTML on detail pages. Parsing the streaming protocol instead of CSS selectors means a redesign of the site won't break anything here.
Requests go out one at a time with a 400 ms gap between them. Pages are cached for 5 minutes, the company dataset for 12 hours. Everything times out at 20 s and retries once if the failure looks transient.
The tool surface follows Anthropic's tool-design guidance. Six tools shaped around a whole task each, instead of one tool per endpoint. Responses are short by default, with a detailed flag when you want the rest. Ids are readable. Enums and defaults cover the common case so the model only has to spell out what it actually cares about, and romaji prefecture names map to Japanese on the way in. Errors say what to try next instead of printing a stack trace. Scraped listing text is labeled as data, not instructions, so a job post can't steer the model.
Known limits, all of them upstream. There's no free-text keyword search over jobs, only the filter vocabulary. Wantedly listings can't be browsed. About 68% of the headline job count has detail data that parses. The company index is mostly stub records (name, HQ, a few metrics, categories on maybe 7%), so a question like "which companies use Go" has to go through search_jobs instead. Report figures come from the site's daily snapshot, so they lag live search counts.
Development
npm install # installs deps and builds
npm test # offline parser tests against captured fixtures
npm run test:handshake # offline MCP protocol handshake + tool surface
npm run test:smoke # live end-to-end suite (hits anjin.tech)
npm run test:protocol # live MCP round-trip
src/index.ts server entry: tool registration (stdio transport)
src/lib/http.ts fetch layer: serialization, rate gap, TTL cache, retry
src/lib/flight.ts RSC flight payload + React streamed-HTML resolution
src/lib/jobs.ts job search params/parsing + job detail parsing
src/lib/companies.ts company dataset cache, search, resolution, detail
src/lib/report.ts market report section extraction
src/lib/match.ts multi-search candidate matching + scoring
src/lib/format.ts concise/detailed renderers shared by tools
License
MIT. This is an unofficial client for a public site and isn't affiliated with anjin.tech.
Install Anjin in Claude Desktop, Claude Code & Cursor
unyly install anjinInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add anjin -- npx -y github:egegungordu/anjin-mcpStep-by-step: how to install Anjin
FAQ
Is Anjin MCP free?
Yes, Anjin MCP is free — one-click install via Unyly at no cost.
Does Anjin need an API key?
No, Anjin runs without API keys or environment variables.
Is Anjin hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Anjin in Claude Desktop, Claude Code or Cursor?
Open Anjin on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
mkinf
An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
Compare Anjin with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
