← ClaudeAtlas

integrate-new-providerlisted

Use when adding a new job-listings provider to openings-mcp — a new ATS platform (like Workday, Greenhouse, Lever, Ashby, SmartRecruiters) or a dedicated job board or careers site (like 104, Cake, Google, NVIDIA, TSMC) — or when finishing a stalled integration by wiring an existing provider package into the MCP server, e.g. its client, tests, and debug CLI all work but its companies aren't reachable through the MCP tools.
amikai/openings-mcp · ★ 92 · AI & Automation · score 80
Install: claude install-skill amikai/openings-mcp
# Integrate a New Provider ## Overview Every provider follows the same pipeline: **recon** (find and rank the site's real data surface) → capture fixtures → build a client that matches that surface → provider package with fixture-replaying tests → debug CLI → MCP surface (ATS adapter or dedicated tools, wired into the server). For **JSON REST**, the client path is: minimal OpenAPI spec → ogen-generated client. For **GraphQL, HTML, SSR-embedded state, RSS/Atom, or JSON Feed**, write a hand-rolled client instead — do not force ogen. Work the stages in order; each builds on the previous one's verified output. The integration is done when the provider is reachable through the MCP server, not when the debug CLI works — if a session stops before the surface stage, hand off the remaining stages explicitly. SmartRecruiters (`internal/provider/smartrecruiters`, `cmd/smartrecruiters`) is the most recent ogen/JSON worked example. Spec-less hand-written clients in-tree: LinkedIn, jobindex, join, iCIMS, SuccessFactors, UltiPro (HTML / GraphQL / `__NEXT_DATA__`). ## Pick the MCP Surface - **Multi-company ATS** (one API, many tenants/boards): implement `internal/ats.Adapter` so companies join the unified `search_jobs_by_company` tools. Examples: workday, greenhouse, lever, ashby. - **Single site or job board**: dedicated `<name>_search_jobs` / `<name>_get_job_detail` MCP tools in `internal/openingsmcp/<name>.go`. Examples: job104, cake, google, nvidia, tsmc, linkedin. RSS/Ato