Home Portfolio Resume AI Contact
← BACK TO PORTFOLIO
CASE STUDY 02 · INTRA KNOWLEDGE AI

Every question costs two people.

An internal assistant for a 2,000-person company that answers only from approved documents, shows the source every time, and says "I don't know" instead of guessing. Self-directed — problem framing, prioritization, a risk model, and a prototype you can actually use.

Role
Product Manager (solo)
Scope
Problem framing · PRD · Prototype
Timeframe
2026 · self-directed
Pilot team
HR / People Ops
01 / 07 · The problem

The information exists. Finding it doesn't.

Nobody searches. Everybody asks. And nothing gets written down.

Company knowledge lives scattered across shared folders, email threads, and internal systems. Faced with that, people don't search — they ask a colleague. Every question then consumes the time of two people, and the person being asked is usually senior. Because the answer is given in a DM and never recorded, the same question comes back next week from someone else.

It shows up in three shapes: new joiners and existing employees asking the same HR policy questions on repeat; technical teams blocked because the one person who knows is in another timezone — a 24-hour round trip for a one-line answer; and new joiners chasing seniors for access and product context they can't find themselves.

The assumption I made, and why it drove everything

2,000+ employees, already on Microsoft 365. So this ships as a Microsoft Teams app, not another portal people forget to open — with admin tabs for sources, access, and unanswered questions. If Teams can't support the data controls, the same backend serves a web interface instead.

02 / 07 · Who it's for

Two users, one loop

The asker is the obvious user. The updater is the one who decides whether this survives past month two.

User 01 · Asker

Every employee

New joiners carry the highest volume — policies, documents, "where is the thing". Existing employees ask about policy edge cases and project context. They live in Teams already, so the assistant meets them there.

User 02 · Knowledge updater

HR Operations Lead

Owns whether the answers stay true. Gets a separate admin surface: connect sources, mark the current version of a document, restrict topics, and work the queue of questions the assistant couldn't answer.

Between them, four things have to get fixed:

  • Findability — surfacing documents that already exist
  • Version control — the current version, not the 2024 one
  • Latency — an answer when the expert is asleep
  • Efficiency — fewer repeat requests to senior staff
03 / 07 · The core

Three features, each earning trust

This product's currency isn't answers. It's whether people believe the answers.

Problem 01

An assistant that sounds right is worse than none

A general chatbot pointed at company data will answer confidently from its training data when the documents don't cover something. The user has no way to tell the two apart — and no way to check.

Hurts most: the new joiner, who has no baseline to sanity-check the answer against.
My solution
  • Every answer cites the document, the section, and when it was last updated
  • The exact quoted passage is shown, not just a filename
  • Superseded versions are excluded from answers and labelled when shown
  • Strict in-context learning — approved documents only, never general knowledge
Trade-off: citations cost screen space and make short answers longer. Worth it — verifiability is the feature.
Problem 02

No knowledge base is complete

There will always be a question the documents don't answer. Guessing at that moment is exactly how trust dies — and a dead end sends the user straight back to DMing a colleague, which is the behaviour we came to fix.

Hurts most: the product itself. A dead end teaches people the tool doesn't work.
My solution
  • Below a confidence threshold, the assistant declines instead of guessing
  • One click escalates the question to HR, carrying the original wording
  • A human answers, an admin approves it, and it's saved for everyone
  • The next person to ask gets it instantly
Trade-off: chose "I don't know" over a plausible answer — and turned the gap into the mechanism that fills itself.
Problem 03

Content rots, and not everything should be answerable

Policies get replaced but the old file stays in the folder. Some topics — salary bands, visa cases, exit terms — shouldn't be answered by a bot at all, even when the document exists.

Hurts most: the HR lead, who is accountable for a wrong or leaked answer.
My solution
  • Admin console to connect sources and mark the authoritative version
  • Review-overdue flags on documents untouched for 12+ months
  • Restricted topics that route to a named person, not to silence
  • Full logging: questions, answers, feedback, and failures
Trade-off: a restricted topic still gives the user a next step. A refusal with no route is just a wall.
04 / 07 · Prioritization

A chain first, then a ranked list

Phase 1 isn't a priority stack — it's a sequence where a missing link means nothing ships.

Document ingestion → information retrieval → response generation → source attribution → activity logging. You don't rank these against each other. If any one is missing, nothing works. Build all five, in that order. Only Phase 2 is a genuine ranking, by reach against build effort.

CapabilityWhy it sits therePriority
01Document ingestionNothing to answer from without itCHAIN
02Information retrievalIngestion is dead weight unless it's findableCHAIN
03Response generationRetrieval alone is just searchCHAIN
04Source attributionWithout it, the answer isn't verifiableCHAIN
05Activity loggingNo log, no way to prove accuracy or improveCHAIN
06Admin sourcing & rolesHighest reach in Phase 2 — keeps answers trueP1
07Conversational interfaceBig reach, but the backend has to be right firstP1
08Uncertainty & escalationNarrower reach, highest effort — but it compoundsP2
Teams as the surfaceMeets 2,000 people where they already areFOUNDATION
Why HR / People Ops goes first

I ranked six candidate pilot teams (HR, tech, IT, finance, sales & marketing, support) and started with HR for three reasons: its content is meant to be readable by everyone, so no access modelling blocks the pilot; success is measurable against a baseline that already exists — the HR shared inbox; and each policy has one authoritative version and one owner, so "which document is right" has an answer.

Deliberately out of V1

No actions. The assistant is strictly informational — it won't apply for leave, raise tickets, or update records. It also starts on manual upload rather than live drive sync, and one team rather than the whole company. Every one of those adds surface area without moving the thing that decides this product's fate: whether the first answer someone gets is right.

05 / 07 · Playable

Try the prototype

Both sides of the product — the employee chat and the admin console — in one clickable demo.

Opens in a new tab. Ask about notice periods, relocation, leave carry-forward, or salary bands — then ask about a sabbatical and watch what happens when it doesn't know.

STEP 01

Employee asks about sabbatical leave. The assistant refuses — no approved source.

STEP 02

One click sends the question to HR Operations, wording intact.

STEP 03

Switch to Admin. The question is top of the unanswered queue. Draft, approve, publish.

STEP 04

Back as an employee, ask again. Now it answers — citing the document that didn't exist a minute ago.

06 / 07 · Success metrics

How we'd know it worked

Targets tied to the four problems — not results.

This is a case study, not a live deployment, so I won't invent outcome data. These are the targets I'd hold a 10-week HR pilot to:

Automated resolution

  • 60%+ of questions resolved with no human involved
  • Escalations answered within 1 working day

Repeat questions

  • HR shared-inbox volume down 30% vs the pre-launch baseline
  • Baseline captured before launch, not reconstructed after

Retention

  • 45%+ of users return in week 4
  • Retention, not usage — one-time novelty proves nothing

Accuracy

  • 90%+ on a weekly test set drawn from 12 months of real Q&A
  • Plus manual spot-checks of live answers by the HR team
The metric I'd watch hardest

Accuracy — because it's the only one that leads. Resolution rate and inbox volume can both look healthy for a few weeks after accuracy has already started slipping, and by the time they move, trust is gone.

07 / 07 · Risk & what's next

The one risk that kills this

Confident hallucination. Everything else is a delay; this one is fatal.

AI is very good at sounding certain while being wrong, and trust here is one-directional. One wrong answer about notice period or PF costs more than fifty right ones buy, because people remember the miss. Once someone gets burned they go back to messaging a colleague. Usage drops, you lose the feedback that would have improved the product, and it dies quietly at 12% adoption. There is no second launch.

How I'd manage it

Answer only from approved documents, never from general knowledge. Set the confidence threshold high enough that the assistant admits uncertainty rather than guesses. Make escalation one click so a refusal still ends in an answer. Test weekly against historical Q&A. And keep sensitive topics out of the bot's hands entirely.

What's next:

  • Interview five recent joiners before locking the refusal copy — right now the tone is my judgment, not tested.
  • Instrument the HR shared-inbox baseline before anything ships, or the headline metric is unprovable.
  • Expand to the tech team only after accuracy holds above target for four consecutive weeks.

Open questions still on the wall:

  • Once the assistant publishes an answer, who owns it when the policy changes?
  • Should a document that's gone unreviewed for 12 months stop being answerable, or just be flagged?
  • Does one-click escalation survive the tech team, where there's no single shared inbox to land in?
  • How much "I don't know" will people tolerate before they stop asking altogether?

Want to go deeper, or talk through the calls?