Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →A kanban board can show where each job opportunity stands today, but not necessarily how it got there. In Michael Truong’s job-search analytics case study, a Sankey diagram exposed gaps in the underlying records: hiring paths can skip or repeat stages, start with inbound outreach, or end immediately after an application. The practical lesson is to preserve each opportunity’s history first and build the chart from that history second.
Why a kanban board was not enough
A board is useful for operating a job search: it shows the current state of each opportunity. But a current-state column cannot, by itself, answer the historical question, “how far did this application get before it ended?” Moving a card to “Rejected,” for example, can conceal whether the opportunity ended after an application, a recruiter conversation, or several technical rounds.
As an Amazon Associate I earn from qualifying purchases.
Truong’s project asks how opportunities entered, how far they progressed, and where they ended. Those are questions about histories, not just present-day status. The Sankey made those histories visible—and revealed where the record model needed to handle real paths rather than an idealized hiring funnel. Read the case study on DEV Community.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Hiring histories do not form one fixed funnel
A visualization built around a single universal stage order can misrepresent the process it is meant to explain. Companies may skip recruiter review, repeat technical rounds, begin with inbound outreach, or close an application without any subsequent interview stage. These are not necessarily errors in the history; they may be the history.
#1 Best Overall
- Wiley
- Language: english
- Book - storytelling with data: a data visualization guide for business professionals
- Skipped stages: An opportunity can move directly from its entry point to a later event or to an outcome.
- Repeated stages: Two technical rounds should remain two events, rather than being collapsed into one generic “technical” step.
- Direct exits: “Cold application → Rejected” is a valid path, even though it has no interview events.
- Different entry routes: An inbound approach is provenance—how the opportunity arrived—not a recruiter or interview event that happened afterward.
Keeping these cases distinct makes the chart more useful: it can show actual variation instead of forcing every opportunity into the same sequence.
Separate provenance, events, and outcomes
The implementation separates three kinds of information. Entry provenance records how an opportunity arrived; ordered process events record what happened afterward, such as recruiter, hiring-manager, or technical rounds; and a terminal outcome records how the history ended. Mixing those layers risks treating an entry route as a hiring stage or losing the order of events.
In Truong’s setup, canonical lifecycle.yml files hold ordered events and terminal outcomes, while Notion remains the operational board. That division lets the board serve day-to-day tracking without asking it to be the sole historical record. The visualization is then a projection of the canonical history rather than a replacement for it.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Keep open paths open in the source data
A currently active opportunity is not a terminal outcome. For the Sankey, projection code can append an Active branch to an open path so the diagram includes opportunities that have not ended. That branch belongs to the visualization: it should not be written back into canonical history as though “Active” were an event or final result.
An open opportunity with no process activity can have events: []. That accurately records that it has not progressed beyond its entry point; there is no need to invent an event just to make it fit a chart. By contrast, a researched posting that was never submitted is not an application history. Truong’s account says to remove its lifecycle file rather than create a fictitious application state.
Make terminal depth visible
A chart can preserve the event sequence and still mislead through its layout. If every rejection is drawn in one visually equivalent terminal column, a rejection after an application may look identical to one after several rounds. The layout should retain meaningful differences in how far opportunities progressed before ending.
This is a presentation decision, not a reason to rewrite the record. Labels, columns, tooltips, and the natural depth of terminal outcomes can communicate distinctions while leaving the underlying history intact. Keeping presentation separate from canonical data also makes it easier to diagnose whether an apparent problem comes from the records, the projection, the layout, or which opportunities were included.
Recommended Free Tools
A practical way to build the visualization
- Record the history: For each submitted opportunity, capture its entry provenance, ordered process events—including repeats—and terminal outcome when it ends.
- Keep operations separate: Use the board for current tracking and the lifecycle record for history; do not make the chart’s temporary Active branch a canonical event.
- Project the records: Convert each ordered history into Sankey edges, adding Active only in the projection for paths that remain open.
- Review the visual distinctions: Check whether skipped stages, repeated events, direct exits, and different rejection depths remain intelligible in the chart.
- Check inclusion: Remove records for postings that were researched but never submitted, rather than implying an application took place.
This separation gives each layer a clear job: records describe what happened, projection makes paths drawable, and presentation makes those paths readable. As Truong puts it, “The Sankey challenged my representation of these hiring histories in specific, fixable ways.” The account is a first-person implementation example, not a measured finding about hiring systems generally.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




