11,068 active openings across 1,200 law firms, normalized into one queryable feed. Refreshed at 04:00 UTC. Pushed to your CRM, your underwriting model, or your editor's inbox by the time the market opens.
# Python · query the Hiring Index import httpx, os r = httpx.get( "https://api.placement.solutions/v1/postings", params={"firm_id": "firm_8a31", "role_family": "ai_governance", "since": "2026-04-01"}, headers={"Authorization": f"Bearer {os.environ['PS_TOKEN']}"}, ) print(r.json()["data"][0])
# cURL curl https://api.placement.solutions/v1/postings?firm_id=firm_8a31&role_family=ai_governance \ -H "Authorization: Bearer $PS_TOKEN"
// Node 20+ · global fetch const res = await fetch( "https://api.placement.solutions/v1/postings?firm_id=firm_8a31&role_family=ai_governance", { headers: { Authorization: `Bearer ${process.env.PS_TOKEN}` } }, ); console.log((await res.json()).data[0]);
{ "id": "pst_01HZP...", "firm_id": "firm_8a31", "role_family": "ai_governance", "role_title": "Director, AI Governance", "track": "counsel", "market": "new_york", "comp_band": { "low": 285000, "high": 340000, "currency": "USD" }, "posted_at": "2026-04-29T13:11Z", "req_age_days": 6, "req_age_decile": 1, "first_seen_in_taxonomy": true, "derived": { "firm_capacity_delta_30d": "+12%", "market_comp_drift_wow": "+2.4%" } }
Continuous control monitoring with quarterly attestation. Letter available on request.
ISO 27001-certified hosting with US-only data residency. Subprocessor list available on request.
We do not train on customer queries or returned data. Subprocessor list public and versioned.
I started JMS Talent Acquisition because the legal sector treats hiring data like a guarded ledger. Quarterly reports. PDFs. Vendor moats. The clients I work with — partners pricing risk, MDs pitching banks, underwriters scoring counsel, search firms staffing seats — needed something different: a daily, queryable graph of who is hiring, what for, where, and at what comp.
placement.solutions is the index I always wished existed. Every record shows its work. Every refresh runs at 04:00 UTC. Every customer reads the same taxonomy. If we missed a role family worth tracking, write to me directly.