Skip to main content

Sessions list — what each card shows

Your interview history at /sessions. Stat row, session cards with duration + status, hover actions (replay/delete/open).

Web App3 min read

Sessions list — what each card shows and what you can do

/sessions (Sessions AI in the sidebar) is your interview history. Every live session you've ever run shows up here as a card. This page is also where you click Start Session to launch a new one.

At-a-glance

ElementWhat it is
Stat row (top)4 numbers — Interviews / Active / AI answers / This week
Start Session buttonTop-right → opens the wizard (type + tone + model + Auto-Answer)
Search boxFilters by company name, job title, or session ID
List / Grid toggleSwitch between dense list view and card grid
Session cardOne per session — Company → Title → Type → AI answers → status
Hover actionsReplay (▶), delete (🗑), open retrospective (→)

Anatomy of a session card

Each card surfaces:

  • Company name (top, bold) — pulled from your Job Context entry. If you didn't enter one, says "Untitled Interview."
  • Job title below the company
  • Type badge — "Interview" or "Regular Call" (see Session types)
  • AI answers count — how many times the AI fired during the session
  • Status pill:
    • 🟢 Live — session is still active (you have it open in another tab, or it didn't end cleanly)
    • Ended — finalized; click to open the retrospective
    • 🟡 Stale — was Live but the WebSocket died; clean up by clicking End on the card
  • Duration — every card shows a runtime (e.g., "23 min"). This is pinned by tests — Frozen UX decision. If a card shows no duration, it's a bug.
  • Date — relative (e.g., "2 hours ago", "yesterday", "3 days ago")

What you can do per card

Click a card → open the retrospective at /sessions/[id] (Session retrospective).

Hover a card → action buttons appear on the right:

  • ▶ Replay — re-opens the session in /interview IF status is Live (rare; mostly you start fresh). For ended sessions, replay = retrospective view.
  • 🗑 Delete — removes the session row + transcript. Soft-deletes are NOT supported — once gone, the data is gone. Confirmation dialog before delete.
  • → Open — same as clicking the card.

Live cards have an extra "End" button so you can clean up a zombie session without joining it.

Stat row at top

Four counters update in real time:

  • Interviews — total ever run (lifetime count)
  • Active — sessions in Live state right now. Should usually be 0 or 1. If higher, you have zombies — click End on them.
  • AI answers — lifetime count of times the AI fired
  • This week — sessions started in the last 7 days

Empty state

If you've never run a session, you see a big circular icon + "Start your first session" copy + the Start Session button. The 4-stat row is still there but reads zeros.

Common questions

Q: I started a session yesterday but it still says "Live." A: Zombie — the session didn't end cleanly. Hover the card → click End. Or open it → click End Session in the topbar.

Q: Can I export all my sessions as a CSV? A: Not yet. Per-session transcript export is in the retrospective view (Pro+ only). Bulk export is in the roadmap.

Q: Why is one session marked "Stale"? A: WebSocket dropped without End being clicked — usually means you closed the laptop / lost wifi mid-session. The transcript up to that point is saved; click End to finalize it.

Q: I deleted a session by mistake. Can I recover it? A: No — deletes are hard. The transcript + AI answers are gone from our DB. This is intentional for privacy. (If it was less than 5 min ago, message support — there might be a recent backup row.)

Q: How do I search for a specific company's session? A: Search box at the top — type the company name. Searches across company name + job title + session ID.

Q: Can I rename a session? A: Not directly — the title comes from the Job Context. Start the session with the right company + title and it sticks. We're planning an inline rename for the retrospective view.

Q: Why don't I see a card I just ended? A: Hard refresh (Ctrl+Shift+R) — the list query is cached for ~5 seconds. After hard refresh it'll appear. If not, the session may have failed to write — check the connection-status indicator next time.

Q: What's the difference between "Active" stat and "Live" card status? A: Same thing — "Active" stat = count of cards in Live state.

Where it lives in code

Sessions list page: apps/web/app/sessions/page.tsx. Card component: apps/web/app/sessions/_components/session-card.tsx. Start Session wizard (lazy-loaded): apps/web/app/sessions/_components/start-session-dialog.tsx. Duration resolver (3-step fallback): apps/web/lib/resolve-duration-sec.ts.

Still stuck?

Help & Feedback → Contact us with category "Something is broken" + session ID (the URL segment /sessions/[id]) + what the card looked like vs what you expected.

Video walkthrough

Coming soon.

Still stuck?

Sign in and message the founder directly from the Help & Feedback tab. Every reply comes from a real person, usually within a few hours.

Contact us