Tenant workspaces.
Five live customers on the demo cluster. Click a tenant to load their workspace — every brand, role mix, and pipeline is driven from the same shared platform.
Five live customers on the demo cluster. Click a tenant to load their workspace — every brand, role mix, and pipeline is driven from the same shared platform.
Live state of every tenant on Higher. Revenue, usage, health — what the CS team and operators see.
Every event Higher emits — application advanced, candidate scored, interview transcribed — is available as a webhook or REST endpoint. No black box, no extraction layer, no scraping. Wire your HRIS to truth.
# Submit a candidate to a role — Higher parses CV, scores match, returns full evidence curl https://api.higher.eu/v1/applications \ -H "Authorization: Bearer hgr_live_••••••" \ -H "Content-Type: application/json" \ -d '{ "role_id": "rl_8h2k9q", "candidate": { "email": "sofia.andersson@email.com", "cv_url": "https://your-cdn.com/cv.pdf", "consent_basis": "GDPR Art. 6(1)(b)" }, "callback_url": "https://your-app.com/webhooks/higher" }' # Response — every score factor and reasoning trace, ready to render { "id": "app_4kf2m9q1", "status": "screening", "match_score": 87, "factors": [ { "name": "product_leadership", "score": 96, "evidence_url": "..." }, { "name": "language_fit", "score": 100, "evidence_url": "..." } ], "audit_trail": "https://higher.eu/audit/app_4kf2m9q1" }
import { Higher } from "@higher/sdk"; const higher = new Higher({ apiKey: process.env.HIGHER_API_KEY }); // Submit an application const app = await higher.applications.create({ roleId: "rl_8h2k9q", candidate: { email: "sofia.andersson@email.com", cvUrl: "https://your-cdn.com/cv.pdf", consentBasis: "GDPR Art. 6(1)(b)", }, }); console.log(app.matchScore); // 87 console.log(app.factors); // [{ name: "product_leadership", score: 96, ... }] // Subscribe to real-time updates higher.applications.on("advanced", (event) => { console.log(`Application ${event.id} moved to ${event.stage}`); });
from higher import Higher client = Higher(api_key=os.environ["HIGHER_API_KEY"]) # Submit an application app = client.applications.create( role_id="rl_8h2k9q", candidate={ "email": "sofia.andersson@email.com", "cv_url": "https://your-cdn.com/cv.pdf", "consent_basis": "GDPR Art. 6(1)(b)", }, ) print(app.match_score) # 87 print(app.factors) # [{'name': 'product_leadership', 'score': 96, ...}] # Subscribe to events async for event in client.events.stream(types=["application.advanced"]): print(f"Application {event.id} → {event.stage}")
# Webhook payload — application.advanced # Higher signs every webhook with HMAC-SHA256, key rotated on demand { "event": "application.advanced", "event_id": "evt_9k2j1m4q", "created_at": "2026-05-14T08:15:42Z", "tenant_id": "ten_bonava_se", "data": { "application_id": "app_4kf2m9q1", "candidate": { "id": "cnd_82h2j1q", "name": "Sofia Andersson" }, "role": { "id": "rl_8h2k9q", "title": "Senior Product Manager" }, "from_stage": "ai_screening", "to_stage": "document_verification", "reason": "AI screening complete · match 87% · advanced automatically", "audit_trail_url": "https://higher.eu/audit/app_4kf2m9q1" } }
Every action a recruiter or candidate can do in the Higher UI is available through the API. Same auth, same audit trail, same response shape.
Twelve event types. HMAC-signed. Delivered in order, with at-least-once guarantee. Failed deliveries retry on exponential backoff for 72 hours, then surface in the failed-events dashboard.
Generated from the same OpenAPI spec the API serves. So when the API ships, the SDKs ship the same day. Versioned, audited, no surprises.
Native two-way sync with the HRIS, ATS, and comms tools your operations team already runs. Wire them up in the dashboard — no custom code.
Free sandbox tenant, full API access, no credit card.