Service Status
API Health
Readiness
Communities?
Data Quality Review
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.
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
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
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
Advisor Search
Optional Filters
Narrow results by specific attributes. Leave blank to search all advisors.
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)
Built-in aliases (read-only)
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)
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.
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.
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.
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?
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.
| Name | Prefix | Created | Last used |
|---|
Recent logins
Per-Advisor Coverage
Sorted thinnest-first. Click View to see the full advisor detail.
| Name | Advisor ID | Score | Present | Inferred | Missing | Source | Action |
|---|
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.
| Detector | Value | Suggested → field | Occurrences | Status | Confidence | Actions |
|---|
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.