Scene three — Nadia, Principal Engineer, mentoring
She switches to Mentoring. She does not get a feed. She gets one line:
Someone asked for you by name. An engineer named you as the person who had written about this trade-off.
Her mentorship score is 96, the highest in her organisation. The dimension directly beneath it is not: open-source contribution sits at 52, with one line of explanation — your work is nearly all internal. The product says so rather than rounding her up, because flattering her would not help.
03 Evidence, not endorsement
A skill nobody can point at is a claim.
Endorsements measure reciprocal politeness, and everyone involved knows it. CareerOS does not count them. Every skill carries its evidence, and — the part that makes people uncomfortable — the gaps a hiring manager would find anyway.
Note the framing of the gap. Not a percentage — a count of real roles. “Your Kubernetes signal is 54%” motivates nobody. “One gap is holding twelve roles below your threshold, and you already did the work — you just never published it” is a Tuesday evening task.
04 A score you can audit, and switch off
The alternative to a mysterious number is not no number.
CareerOS shows a reputation score — 782 out of 1000 — across eight dimensions, each one expanding to reveal exactly what it was computed from: three architecture articles, two peer endorsements from engineers who reviewed the work, four verified project outcomes, recent work weighted more heavily.
Four things keep it from being dystopian. It is visible only to its subject. Low-sample dimensions are labelled provisional rather than scored confidently. Follower count is excluded, and the panel says so. And there is a Hide button that works and does not nag.
The dimension that earns the design is leadership: 61 — the lowest of the eight, sitting directly under technical credibility at 88. A reputation panel that only tells you what you are good at is a compliment, not an instrument.
05 The agent explains; it does not nudge
Five findings a quarter, each one an evidence chain.
“Career AI” usually means a prompt to post more. The CareerOS agent is bound to a schema, and every finding must fill all five slots: what happened, why it matters, the evidence, one recommended action, and the expected benefit against the effort it costs.
The schema does the real work by what it forbids. “Improve your profile.” “Network more.” “Stay active.” None of them can fill five slots — which is the entire reason the slots exist.
Here is one finding, complete:
Act this week
What happened. Three hiring managers viewed your profile after searching for AI platform experience. All three left within forty seconds of reaching your skills section.
Why it matters. Your Kubernetes work is not visible. It is the first requirement in two of the three roles they are hiring for.
Evidence. Twelve roles sit between 72% and 84% because of this one gap. Your résumé names the operator work. Your evidence section does not.
Benefit and cost. Twelve roles cross your threshold, two of which you already saved. About forty minutes — the material exists, it simply is not published.
This idea is bigger than the space it gets here, and it deserves its own piece. I am writing it.
06 The uncomfortable numbers stay on screen
This is where the thesis costs something.
Recruiter trust. Every recruiter carries eight aggregated metrics — response time, ghosting rate, interview transparency, role accuracy. One recruiter in the prototype has a 54% response rate and elevated ghosting, and it is shown, with a confidence range and a note that agency recruiters often carry roles whose process they do not control. Metrics are suppressed below ten responses. The purpose is calibration, so you know how much hope to invest in a conversation.
Your real odds. One job card reads: “Low odds, worth reading. An internal candidate is already in the process.” No job board tells you this, because telling you costs them an application.
Whether the role is even real. Every role carries a verification date and a plain statement. Saved roles are re-verified weekly and archived when they close, so nobody spends an evening preparing for a role that shut eleven days ago.
And the primary button on a job card is not Apply. It is View role story — why the role exists, what the first six months actually look like, what happened to the last two people in the seat. One-tap apply optimises application volume, which serves the platform and nobody else in the transaction.
07 Eight people, one product
The same screen, assembled for eight different professionals.
Intent is easy to claim and hard to build. The first test is whether the identity changes with the workspace, not just the content list. If the rail still says “Staff Data Engineer, open to Principal roles” while the centre column shows candidates to hire, the product is incoherent and the user cannot tell which side of the table they are on.
The second test is harder, and I failed it first time round. In an earlier build every mode showed the same name. Alex Chen was the candidate, and Alex Chen was also the hiring manager assessing candidates, and Alex Chen was the professional who was not looking. It read as one man with an identity crisis. Worse, it hid the actual claim: these are not seven moods of one person, they are seven jobs, and the product owes each of them a different set of numbers.
So every mode is now a different professional — and each of them already exists inside the prototype’s world. Wei Lin, Priya Ramaswami, Nadia Rhee, Jonas Ferreira, Lena Vogt, Amara Osei and Renata Okafor all appear in Alex’s network before you ever switch to them. Changing mode moves you to someone you could already see from where you were standing.
Each carries their own record: their own reputation score with its own eight dimensions, their own evidence, their own communities, their own thin spots. Nobody is shown someone else’s career. And nobody is recommended to themselves, which the single-identity build did constantly.
Here are four of them in full. Note what changes: the person, the badge, the job title, the focus panel, the numbers that are counted, the search scope, and which alerts qualify.
Candidate
Alex Chen
Staff Data Engineer · Ridgeline Health
- Focus panel
- Career goal — AI infrastructure or data platform leadership
- Counts
- Role matches, hiring managers who viewed you, profile dwell time
- Search scope
- Roles, hiring managers, recruiters, skills
- Top signal
- “A hiring manager searched for expertise matching your profile”
Professional
Wei Lin
Staff Engineer, Distributed Systems · Meridian
- Focus panel
- Current focus — compliance boundaries, and what they do to platform design
- Counts
- Read to the end, saved for reference, questions you answered
- Search scope
- Practitioners, writing, working groups, papers
- Top signal
- “Your article was cited in a hiring discussion”
Not looking means not collected. Wei has no career goal on record, so the goal panel is not rendered empty for him — it is absent. Job-search signals are not merely hidden either: they are not gathered, and the rail says so in a line he can read. A product that quietly keeps scoring your job-search intent while displaying “not looking” is lying with a toggle.
Hiring manager
Amara Osei
VP Engineering · Fathom Health AI
- Focus panel
- Active hiring focus — the requisition, not her own goal
- Counts
- Qualified candidates, interviews scheduled, time to first interview
- Search scope
- Candidates, roles, skills, companies
- Top signal
- “Imani Brooks is moving forward”
Recruiter
Renata Okafor
Technical Recruiter · Cedarpoint Data
- Focus panel
- Active requisitions — 5 roles across 3 companies
- Counts
- Her own response rate, ghosting rate, role accuracy
- Search scope
- Candidates by demonstrated work, not keywords
- Top signal
- “Imani Brooks is moving forward”
The recruiter sees her own scorecard. Response rate, ghosting rate and role accuracy sit in her left rail, with a line underneath: candidates can see these figures before they reply to you. Transparency that only points outward is just surveillance with better branding.
The other four people
Intent has seven states, and each one gets its own person rather than borrowing another’s. These four are in situations that are not a job search, and none of them is measured on anything a job search would measure.
Open to conversations
Connector — Priya Ramaswami
Senior Data Engineer, Northwind. Counts first messages that got a reply, and conversations still going.
Never counts: total connections. A contact you never speak to is not a connection.
Mentoring
Mentor — Nadia Rhee
Principal Engineer, Ridgeline Health. Surfaces questions where someone named her specifically, and tracks mentees.
Only counts: mentees who confirmed. Claims do not count themselves.
Building
Builder — Jonas Ferreira
Founder, Tessellate. Collaborators, open-source work, and founders near the problem he is already in.
Shows honestly: commercial packaging, Emerging — the thing he is worst at is the thing that decides whether the company survives.
Exploring
Explorer — Lena Vogt
Data Platform Lead, Cobalt Health. Adjacent fields and transition stories, one step outside the work she already does well.
Private by default: she also appears in Amara’s candidate list — surfaced on her published work, never on what she has been reading. Both screens are in this prototype, and they agree.
08 The dashboard is yours to arrange
A default is a starting point, not a verdict on how you work.
Personas ship with a sensible arrangement, but the person using the product knows their job better than the person who designed it. Every panel can be moved, removed or added back, in any of the three regions.
Three decisions worth naming:
Layouts are per mode, not global. Rearranging a hiring dashboard does not disturb a job-search one. They are different jobs — in this prototype, different people — and a single stored layout would force one to compromise for the other.
Panels move with buttons, not drag-and-drop. Dragging is hostile to keyboard and screen-reader users, and a dashboard people depend on is exactly the wrong place to require a mouse. The whole customiser is operable from the keyboard, and each move is announced.
One panel cannot be removed. Identity is marked always on. A product whose entire premise is that you should always know which professional situation you are in cannot let you hide the thing that tells you.
09 How you would know it worked
A different objective needs a different scorecard.
This is the most likely place for the whole idea to quietly die — eighteen months in, when someone builds a growth dashboard out of habit.
Success
- Placements per active job seeker, and time to placement
- Share of first messages that get a real reply
- Candidate-reported quality of the processes it routed them into
- Mentor relationships both sides confirm six months later
- Market-wide ghosting rate, trending down
Explicitly not success
- Daily active users
- Session length
- Posts per user
- Feed impressions
- Connection count
The honest tension is a business one, and it is worth naming rather than hiding: a product that works this way gets used less. The user gets what they came for and leaves. That is fatal under advertising and fine under subscription, or fees tied to actual hires. You cannot adopt the thesis and keep the business model — and pretending otherwise is how a thesis erodes one quarter at a time.
Click through it
The CareerOS prototype
Nine views, eight people, fully interactive. Switch the intent chip and watch the dashboard reassemble around a different professional — new identity, new numbers, new reputation, new thin spots. Open any “Why this?” panel. Press / for conversational search.
Open the prototype →
Independent design concept. Every person, company, role and metric in it is invented. It uses no branding or visual asset belonging to any existing network, and is not affiliated with one. Nothing you do in it leaves your browser.
Professional networking optimized attention.
The next generation should optimize human opportunity.
Alex still has twelve interviews he cannot see. The information needed to find them already exists, on a platform he already pays attention to. That is not a technology problem. It is a choice about what to rank.
Technical appendix — how the prototype is built
What matters to a reader: it is fast, it is private, and it runs entirely in your browser. There is no backend, no analytics, and no network request after the fonts load. Your intent, saved items and preferences persist locally and go nowhere.
For anyone who wants the detail: no build step, no framework, no runtime CDN. Forty-four ES modules — nine views, twenty-three components, nine mock-data modules, a state store, a template helper and a shell — assembled with a small escaping template helper. Components emit data-action attributes and one delegated listener dispatches them, so every state change is auditable from a single file.
Two of those data modules carry the persona work. personas.js holds who each of the eight people is — name, badge, title, employer, search scope, rail composition, default layout — and profiles.js holds what each of them has actually done. Every component reads the active persona rather than a global signed-in user, which is the change that stopped one man appearing as three different roles.
Accessibility was treated as a design constraint rather than a checklist. No meaning is carried by colour alone — every match score renders a number, a proportional bar and a word. The full palette clears WCAG AA at 4.5:1; two tokens were darkened to get there. Twenty-eight scripted interaction checks pass across desktop and mobile viewports with no console errors.
If you work on a professional network and any of this reads as naive, I would genuinely like to hear which part. The constraint I am underestimating is more interesting to me than the agreement.