Service Status

API Health

Checking...

Readiness

Checking...

Communities?

Checking...

Data Quality Review

Checking...

Performance Metrics

Communities

Create community

Build a community before ingesting. The community ID is the tenancy key used by match/import APIs (for example a Hermes ObjectId). The display name is shown in the dashboard only.

Maintenance & backfills

Each row counts advisors that need that update — for example advisors ingested before geo-aware matching existed, or before a vocabulary update added new skills. Running an action reprocesses stored data in place; nothing is re-ingested and every action is safe to run twice.

Pick a community and click Load.

Advisors

Ingest Advisors

Applies to every ingest form below. Advisor data is saved first (searchable immediately), then each advisor gets an AI enrichment pass. Set to off only if you want to save the data without the AI pass.

Build communities on the Communities page first.

Upload a CSV file with advisor data. Preview maps columns via the server's synonym list (e.g. First Name, first-name, firstname all resolve to first_name). List cells are split on |. Optional community override applies to all rows.

Select a built community (Communities page).

Spreadsheet (XLSX)

Preview maps columns, then ingest. Optional community override applies to all rows.

Select a built community (Communities page).

JSON Lines (JSONL)

One JSON object per line (AdvisorIn fields). Preview shows the first lines; ingest validates all.

Select a built community (Communities page).

Import members from Hermes MongoDB into vectordb. Add a MongoDB connection or pick a community from the registry, then preview mapping and run a full import or manual sync.

Add MongoDB connection

Connect to a dedicated Hermes tenant database (not in the multi-tenant registry). Credentials are saved on the server at data/hermes_mongo_connections.json.

Saved connections

No connections loaded.
Select a community.

Member filter (optional)

Include or exclude members based on a Hermes member field value.

Mongo imports default to no AI enrichment (fast upsert). Pick Ollama/Gemini above to enable the AI pass.

Import advisors from a GCS csv, xlsx, or jsonl file. Scan loads a preview; Start Import runs the import as a background job.

Run Scan to count. The whole file is imported — there is no cap.

Select a built community, or leave empty to use community_id from the file.

Import Manifests

No manifests loaded.

Match

Paste the full job posting. If your source has the title, employer, or industry as separate fields, add them below — they sharpen the match.

Optional. These guide the match toward the right people — they never filter anyone out.

Location

All optional. "Only show people in" is a strict filter; "Near" limits results to a distance from a place; Remote ignores location entirely.

Exclusions — don't show these people

All optional, comma-separated. Each value is matched exactly against the stored profile, and anyone carrying it is dropped before ranking. These fields never add anyone to the results.

Results

Match Log

Read-only history of match requests for this community. Click a row for request/response JSON, duration, client IP, and match cards. Review and approval happen in Hermes; email delivery is Mercury.

Flagged Match Review

Column synonyms

Built-in column aliases recognized on import. Aliases normalize case, whitespace, hyphens, and underscores before matching — so First Name, first-name, and FIRSTNAME all reach the same field. Add overrides here to teach the server about customer-specific column names. Built-in aliases cannot be masked (only extended).

Add synonym

New aliases are added to the override file and picked up by the server on the next preview or ingest — no restart needed.

Overrides (editable)

Loading…

Built-in aliases (read-only)

Loading…

Known limitation

scripts/protopia_sheets_import.gs (Google Apps Script) maps columns client-side in Sheets and will not see these overrides until the script is updated to call GET /api/v1/synonyms at runtime. Overrides still apply to the POST /api/v1/advisors/import/sheets endpoint when the server is the one reading the sheet.

Performance Metrics

API Operations

Background Tasks?

Preset Adoption

Query Ambiguity?

AI Query Analysis Health?

Throughput & Tokens (last hour)

60 min agonow

Recent Requests

Run Tests

Run predefined test scenarios against the API. Seed data first if you haven't.

Task Status

Recent Tasks

API Docs

Interactive OpenAPI documentation (login required). Schema: GET /api/v1/openapi.json. Committed snapshot: docs/openapi.json.

← Back to Status

API Requests

Requests grouped by normalized path template (dynamic IDs collapsed to {id}). For per-operation latency percentiles and recent request logs, open the Metrics page.

← Back to Status

Background Tasks

Runs is how many times a background task type finished; Processed is the total advisors or rows handled across those runs; Errors counts task-level failures. While a task is running, use the Tasks page to poll status by task ID.

← Back to Status

Errors

HTTP responses with status ≥ 400 across all API operations in the selected window, plus task-level errors from background workers. Transient errors during ingest may be expected; sustained error rates on match or search endpoints usually warrant investigation.

Settings

AI routing?

Loading…

API URL

Base URL for API requests. Saved in this browser.

Change password

API keys

Generate keys for scripts and automation. Each key is tied to your account.

NamePrefixCreatedLast used

Recent logins

Loading…

Per-Advisor Coverage

Sorted thinnest-first. Click View to see the full advisor detail.

Skill Gaps

Shows why rule-based skill inference cannot or has not produced skills for advisors in a community. Unrecognized values are titles, degrees, or certifications the lookup tables do not map. Fix by improving import column mapping, adding synonyms, or extending hand-curated vocabularies.

Data Quality Review

Ingest-time detectors flag misshaped data (org names in title column, role names in industry, etc.) for review. 👍 to accept the system's suggested move, 👎 to mark as intentional, or type a custom correction. Each decision is remembered so the same value never re-flags. See the detector reference for what each detector does.

No flags. Pick a community and click Refresh.

Member repair

Scan Hermes members for weak matching fields, recreate or clear selected buckets, then auto re-ingest into VectorDB. Writes only when MEMBER_REPAIR_ENABLED is on and the connection DB is the allowlisted test database.

3. Scan and repair