Skip to main content
The jøsh admin interface provides centralized management for the entire dating service workflow, from user onboarding through active date monitoring.

Accessing the Admin Panel

The admin interface is located at /backend and requires authentication:
1

Navigate to admin panel

Visit /backend in your browser
2

Enter admin API key

Enter your admin API key (stored securely as x-internal-api-key)
3

Access granted

The key is saved in localStorage for persistent access
Admin API keys grant full access to user data and actions. Protect these credentials carefully and never commit them to version control.

Admin Tabs

The admin interface is organized into four primary tabs:

Onboarding

Monitor users currently in the onboarding flow. Send reminders, restart flows, or cancel incomplete signups.

Applications

Review pending user applications with status PENDING_REVIEW. Approve or reject based on profile completeness and quality.

Pairing

Create matches between approved users. View and manage active dates, monitor conversations.

Demo

Test the scheduling simulator for date coordination workflows.

User Status Lifecycle

Users progress through these statuses:

Status Definitions

StatusDescriptionAdmin Actions
ONBOARDINGUser completing initial questions and photo submissionRestart, Cancel, Ping
PENDING_REVIEWAwaiting admin approval after onboarding completeApprove, Reject, Ban, Delete
APPROVEDReady for pairingPair, Ban, Delete
REJECTEDApplication deniedDelete (allows re-signup)
BANNEDPermanently blockedDelete (allows re-signup)

Key Features

Structured Profile Badges

The admin interface displays user profiles as structured badges extracted from conversational onboarding responses. These badges are categorized into:
  • About badges: Personal attributes (gender, age, hobbies, lifestyle, work)
  • Preference badges: Partner preferences (age range, dealbreakers, must-haves)
Admins can edit or delete individual badges to refine profile accuracy.

Real-time Counts

Tab badges show live counts that refresh every 30 seconds:
  • Onboarding users
  • Pending applications
  • Approved users available for pairing
  • Blocked users (banned + rejected)
Secure photo viewing with:
  • Thumbnail gallery navigation
  • Click to expand full-size images
  • ID photo verification display

API Authentication

All admin API routes require the x-internal-api-key header:
fetch('/api/tpo/admin/users?status=APPROVED', {
  headers: { 'x-internal-api-key': apiKey }
})

Next Steps

Review Applications

Learn how to approve and reject user applications

Create Pairings

Guide to matching approved users

Monitor Dates

Track conversations and date progress

Build docs developers (and LLMs) love