Skip to content

Feedback session UX: research + propose flow for the always-visible feedback widget #912

Description

@s-annam

Context

From the 2026-08-27 Intern Weekly sync: the feedback widget (FeedbackPanel.tsx) was recently changed to render at all times post-parse instead of only in specific situations. The star rating → email/comment/refinement flow works, but we haven't done real UX thinking on the session itself — when it shows, how intrusive it feels across a visit, and whether the flow after a 5-star vs. a 1-star rating should diverge.

Current implementation for reference:

  • src/components/features/FeedbackPanel.tsx — the panel itself. Render-state machine: full (first two mounts) → compact (quiet inline star strip after that) → done (once submitted). Driven by two localStorage flags (ocv_feedback_seen, ocv_feedback_submitted) via usePersistentFlag/usePersistentCounter.
  • Fires a single feedback_submitted PostHog event (src/lib/analytics.ts) — anonymous unless the user opts in with an email.
  • Rendered inside Result.tsx, directly under the score card.

Problem

We don't have a strong opinion yet on whether the current visible-always behavior is actually the right session design — it was a quick change, not a researched one. Things worth interrogating:

  • Does showing it on every single mount (even before "compact" kicks in) feel naggy on a repeat visit in the same session?
  • Should the flow branch by rating — e.g. a low rating should probably route toward "what went wrong" free text before anything else, where a high rating could skip straight to the GitHub-star CTA?
  • Is localStorage-only state the right memory model, or should "seen"/"submitted" reset per résumé rather than per browser?
  • Any accessibility/focus concerns with a panel that appears unprompted post-parse.

Some starting ideas — not a spec, just angles worth checking:

  • A lighter first touch (e.g. just the star row, no card chrome) that only expands into the full form once a rating is picked, rather than showing the full amber Card immediately.
  • Branching copy/flow by rating value instead of one static form for every rating.
  • Consider whether "session" should mean per-résumé-parse rather than the current seen-count-across-mounts model.

What to do

This is intentionally open-ended — we don't have enough detail yet to hand over a fixed spec. First task is not implementation:

  1. Look at the current FeedbackPanel behavior in the running app (both full and compact states, and the post-submit thank-you state).
  2. Do a short pass of UI/UX research — comparable feedback-widget patterns elsewhere are fair game — and form your own opinion on what should change and why.
  3. Update this issue with your findings and a proposed plan (what changes, why, and roughly how big). Don't open a PR yet.
  4. Tag @s-annam for review once the plan is written up — we'll discuss and finalize scope together before any code gets written.

Not in scope (yet)

  • Changing the feedback_submitted event shape/analytics pipeline.
  • Anything about the "further refinement flow" downstream of a submission — flag it in your writeup if you think it needs its own issue, but don't fold it into this one.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestux:flowUX program: top-level journey, orientation, and cross-surface navigation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions