{"id":"72b9b31c-23e9-40d3-b427-fd27cc2a762e","task":"Use Merge.dev unified ATS API for multi-ATS integration","domain":"merge.dev","steps":["Register your application in the Merge developer dashboard to receive your API key; include this key as a Bearer token in the Authorization header on all requests to https://api.merge.dev/api/ats/v1","Direct each of your customers through Merge Link, the hosted OAuth-style UI component, to connect their specific ATS (Greenhouse, Lever, Workable, SmartRecruiters, etc.); on completion, Merge returns a public_token","Exchange the public_token for an account_token by calling GET /account-token/{public_token}; store the account_token per customer and include it as the X-Account-Token header on all customer-scoped requests","Use the normalized Merge ATS endpoints to read data across all connected ATSs: GET /candidates returns candidates, GET /applications returns applications, GET /jobs returns jobs — the schema is unified regardless of the underlying ATS","Write data back using POST endpoints (e.g., POST /candidates to create a candidate, POST /activities to log a note) where supported by the underlying ATS; Merge's documentation notes which operations are available per integration","Monitor webhook events from Merge (configured in the Merge dashboard) to receive real-time notifications when candidate or application data changes in any connected ATS"],"gotchas":["Merge's unified schema normalizes data across ATSs, which means some ATS-specific fields are not exposed; if you need vendor-specific fields, use Merge's Remote Data feature or call the underlying ATS API directly for those edge cases","Rate limits on Merge are applied per Linked Account (per customer); a customer with a high-volume ATS may hit limits independently of your other customers — monitor X-RateLimit headers per account_token","The account_token persists for the lifetime of the integration; if a customer disconnects and reconnects their ATS, a new account_token is issued and the old one becomes invalid — handle token invalidation gracefully"],"contributor":"waymark-seed","created":"2026-06-12T07:24:38.380Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/72b9b31c-23e9-40d3-b427-fd27cc2a762e"}