Answering policy questions with cited sources
Employees ask routine policy questions — parental leave entitlement, expense rules, travel bands — dozens of times a week. This use case answers them with the exact policy clause, cited and linked, filtered to the asker's location and tenure. And it refuses to answer the ones that require judgment, handing those to a human HRBP with the context already gathered.
A citation-first policy assistant answers routine HR policy questions by quoting the exact policy clause and linking to the source, filtered to the employee's location, tenure, and employment type. Anything sensitive — harassment, immigration, medical, protected leave — routes to a human HRBP, never auto-answered.
Citations are not a nice-to-have. If the retriever can't cite, the answer doesn't appear — the employee sees a warm handoff to People Ops with the question attached.
Data in, transforms, integrations, outputs
Mid-stage data matters here more than anywhere — the employee's follow-up and the HRBP's escalation notes are how you validate that the version filter actually works.
Data in
Start
- Employee question (free text, any channel)
- Employee metadata — location, tenure, employment type, manager, benefits tier
- Policy library — handbook, regional addenda, leave, expense, travel
- Policy version metadata — last-verified, effective dates, jurisdiction
- Prior Q&A pairs (with citations)
- Sensitive-topic classifier rules
Mid-stage
- Whether the employee asked a follow-up
- Whether they ended the session (implied acceptance) or escalated
- HRBP notes on escalation resolution
- Whether they corrected the answer
- Tenure / location signal used in filtering
Transforms
- Classify question type
- Sensitive check — route to HRBP before retrieval
- Filter policy library by employee's location + tenure + type
- Retrieve matching clauses
- Compose cited answer (quote + link)
- Log with policy version fingerprint
Integrations
In
- HRIS (Workday / BambooHR / Personio)
- Policy CMS (Confluence, Notion, SharePoint)
- Version control for effective dates
- Employee directory
- Regional legal library
Out
- Employee self-service portal
- Slack / Teams / MS4B bot
- HR case system (escalations)
- Audit log with policy version
- Weekly accuracy + currency report
Outputs
- Cited answer (quote + source link)
- Escalation with context
- Policy-gap report (questions with no policy)
- Weekly accuracy audit
- Policy-currency dashboard
Why Assist, not Automate — yet
Assist posture for the first six months, with an explicit safe-category list for optional automation of the highest-confidence answers.
Three reasons. First, the blast radius of a wrong policy answer is an employee acting on incorrect information. Parental leave, expense limits, medical coverage — the employee makes decisions based on the answer, often irreversible ones.
Second, the sensitive-question classifier is the real safety system. A classifier that tries to answer sensitive questions will eventually answer one wrong. A classifier that routes them gets measurably safer with every escalation review — you're improving the guardrail, not the model.
Third, version rot is the silent killer. The right policy for a 3-year Ireland tenure is different from the right policy for a 6-month US tenure. If the retrieval can't filter, it can't be trusted.
What changes when you move to selective Automate
- Selective Automate becomes right when
- 8 weeks of gold-set accuracy above 97% (audited weekly, 50 samples), sensitive-topic classifier catches 100% of the red-team set for 4 consecutive weeks, policy-currency is answerable in one dashboard click, and every employee region has been validated in the version filter.
- Full Automate
- Rarely the right goal. The right end state is: assist for anything that touches judgment, automate only for questions whose answer is a single-cited clause with no ambiguity. Narrow automation, widely reliable, beats wide automation, occasionally wrong.
- Agentic — never
- An agent that answers HR policy questions without a human in the loop is not an agent, it's an incident. Protected-leave misanswers, harassment complaint misroutes, immigration guidance misapplications — each is a legal and human cost that isn't recoverable.
- Co-designed becomes right
- When the workflow becomes an HR coach, not a policy lookup — suggesting timing, anticipating the next question, connecting policy to career. That's Transform stage, not Pilot stage.
The baseline
Two to three weeks of measurement, before any citation goes into a live answer.
Measure these five things
The first two are volume; the last three are quality. All five are needed to argue the pilot's impact credibly.
- Policy-question volume reaching HRBP, by topic — the categories define your safe launch scope
- Time to first response on routine policy questions, in the current workflow
- Deflection potential — % of routine questions with a clear, citable policy answer
- Sensitivity rate — % of inbound that should not be self-served
- Employee CSAT on HR responses — the trust metric you're protecting
The metrics, with fail-ifs
Citations and sensitive-leak are gates, not metrics — either is a stop signal if it moves in the wrong direction, regardless of how good the other numbers look.
| Metric | Baseline | Target | Fail if | How measured |
|---|---|---|---|---|
| Deflection rate | 0% | 40%–65% | < 30% | Self-service portal analytics |
| Time to answer | [hours] | minutes | > 4 hours | Portal / channel analytics |
| Answer accuracy (gold set) | N/A | > 95% | < 92% | Weekly audit of 50 sample answers |
| Citation rate | N/A | 100% | < 98% | Automated flag on missing citations |
| Sensitive-question leak | 0% | 0% | Any 1 | Weekly red-team + escalation audit |
| Escalation accuracy | N/A | > 90% | < 85% | HRBP review of escalations received |
| Employee CSAT | [score] | Flat or +5 pts | Any drop | Existing survey |
What usually goes wrong
Six failure modes, ordered by cost. The first is catastrophic; the last is a slow erosion of trust that's almost as expensive.
-
Auto-answering sensitive questions
The single most common HR-bot failure, and the one that ends pilots. Harassment, immigration, medical leave, union-related, mental health, disability accommodation, active legal matters — these are not policy lookups. They are situations requiring judgment. A confident wrong answer to one of these is a legal and human cost you can't recover from.
Prescription: Sensitive-topic classifier runs first, before retrieval, before drafting. Its job is to route, not decide. Bias it toward escalation. Add "returning from protected leave" and "disability accommodation" explicitly to the list. Review the escalation queue weekly — every escalation review is a training signal for the classifier.
-
Version rot
The employee asks about parental leave, gets an answer citing a policy that was superseded three months ago. Or asking about expense limits, gets the pre-inflation numbers. The system looks confident and is wrong.
Prescription: Every policy document carries (last-verified, effective-from, effective-until) metadata. Retrieval filters on these first, then matches on content. The policy-currency dashboard shows which policies are approaching staleness, reviewed weekly by People Ops — not the AI team. The AI team's job is to make the review fast; the People team's job is to make it correct.
-
Location and tenure blindness
An employee in Germany gets the US FMLA answer. A 3-year Ireland employee gets the same parental leave entitlement as a 6-month US new hire. The policy library has all the right answers; the retrieval simply doesn't filter them.
Prescription: Filter by location + tenure + employment type before retrieval, not after. Every retrieval query is pre-filtered, and the filtered set is logged. The version filter is the second-most tested component after the sensitive-topic classifier — validate it for every country you operate in, not just your biggest one.
-
Losing the "I'm not sure" path
When confidence is low, the bot fakes confidence. Or worse, it silently returns a generic "see the handbook" answer that pretends to help. The employee walks away thinking they have an answer when they don't.
Prescription: The escalation path is primary UX, not a hidden fallback. A visible "I'm not sure, let me connect you to People Ops" button is always available — and the bot uses it proactively when confidence is below threshold. The button is more valuable than a thousand confident non-answers.
-
The audit gap
An employee gets a wrong answer, acts on it, and months later nobody can reconstruct what they were told. Which policy version supported the answer. Which clause. When. Whether they escalated and were turned away.
Prescription: Every Q&A pair is logged with policy version, timestamp, hashed employee id, and escalation status. When an answer turns out wrong (and it will), you can programmatically find everyone who got it. This is not optional in a regulated domain — it's the audit trail you'll need in any employment dispute.
-
Trust erosion from wide launch
Launching across all policy questions at once, with the confidence threshold as the only filter. One wrong answer on a highly visible question — parental leave, remote-work, expense limit — and the bot stops being used. There is no second launch.
Prescription: Scope narrowly at launch. Only the top 30 questions, only the questions with unambiguous single-clause answers, only the regions whose policy library is fully versioned. Widen by naming new categories explicitly, not by loosening the confidence threshold. Trust is the metric that matters most, and it doesn't come back after one wrong answer.
Scale, iterate, or stop
Any single stop condition overrides every scale condition — this is the set of conditions your organization can point to when it says "we're being careful."
Scale
- Gold-set accuracy >97% for 8 weeks
- Sensitive-topic leak 0 across the audit weeks
- Policy-currency dashboard live and reviewed
- Escalation path used by >30% of users
- Employee CSAT flat or up
Iterate
- Gold-set accuracy 92%–97%
- Any sensitive-question near-miss (reviewed)
- Policy-currency flag unverified >7 days
- Escalation accuracy 85%–90%
Stop
- Any sensitive question answered
- Accuracy below 92% on the audit
- Any employment dispute where the bot's answer is a factor
- Policy-currency flag triggered without resolution
Two scenarios
The routine case — where the workflow operates as designed — and the trap case. Illustrative; your policy library and employee data would replace the specifics.
Scenario A — the routine case
- Employee asks
- Ireland, 3 years tenure, full-time: "How much parental leave do I get?"
- System pipeline
- Sensitive classifier: not sensitive (it's an entitlement question, not a situation). Version filter: Ireland + tenure 3y + full-time → Ireland Parental Leave Policy v2024-11. Retrieval: entitlement clauses. Composition: quote statutory weeks + company top-up summary + "if you're planning leave, book a call with an HRBP."
- Answer shown
- Cited answer with two policy-clause quotes and links. Attribution: "Source: Ireland Parental Leave Policy, v2024-11 (last reviewed 12 Sep 2026)." A visible "book an HRBP call" button.
- Employee action
- Reads, clicks the HRBP button to plan the leave — a separate decision requiring human conversation, which the bot correctly did not attempt to answer.
Scenario B — the trap case (and the fix)
- Week 2 (early pilot)
- Classifier scoped to harassment, immigration, medical, and "leave requests." "Returning from leave" was not on the list — it read as a leave question, which the narrow scope had carved out.
- Employee asks
- UK, 5 years tenure: "I'm returning from maternity leave and want to switch to part-time. How do I do that?"
- What happened
- Bot treated it as a flexible-work policy lookup. Cited the standard flexible-work policy. Answer was not wrong on the surface — but returning from protected leave has specific legal protections in UK law that don't apply in the standard policy. The employee, reading the answer, believed she had fewer rights than she had.
- Discovery
- Caught in the weekly gold-set audit — a reviewer flagged that the standard flexible-work answer was legally incomplete for this specific path. No complaint was filed. The bot had been wrong for two weeks and no one had acted on it.
- Fix
- Classifier updated: "return from protected leave" is now an explicit hard route to HRBP. Additional red-team scenarios added to the audit set — returning from each type of protected leave, in each country. And a new rule: any question mentioning return, resumption, or leave-transition routes to HRBP with a warm handoff.
Disclosure and privacy notes
Disclosure and privacy notes
Disclose by default. A one-line attribution on every answer — "Answer sourced from the Employee Handbook, v11 (Sep 2026). Reviewed by People Operations." — sets the correct expectation and removes ambiguity if a policy is later found wrong. Internal HR bots disclose; consumer bots often don't. The gap is trust, not law.
GDPR and employee-data considerations. Employee tenure, location, and role are personal data. The audit log — hashed employee id, policy version, timestamp — is itself an artifact that needs a retention policy, an access model, and a deletion story. Consult with DPO and employment counsel before go-live; this is design territory that affects the workflow, not just the storage.
Sensitive-question handling is legal, not just operational. A misroute of a harassment question, an immigration question, or a medical-leave question isn't a UX problem — it can be a compliance problem. Employment counsel should sign off on the sensitive-topic classifier before launch and review the escalation list quarterly.
What good looks like
Four numbers. Two are gates, two are improvements. If a gate is off, the pilot isn't healthy regardless of the improvements.
The dashboard People Ops owns, not the AI team
Reviewed weekly. Red-team and audit sampling are the same session — if the sample is clean and the red-team is clean, you're healthy.
- Sensitive-question leak rate: 0 across every audit week (gate)
- Citation rate: 100% across every answer served (gate)
- Gold-set accuracy: above 95%, trending toward 97%
- Policy-currency: every policy within its last-verified SLA
- Employee CSAT on policy answers: flat or up vs. baseline
Related
Frequently asked questions
Should the assistant disclose that a bot provided the answer?
Disclose by default. A one-line attribution — "Answer sourced from the Employee Handbook, v11 (Sep 2026). Reviewed by People Operations." — sets the correct expectation. It also removes any ambiguity if a policy is later found to be wrong: employees know who to ask, and you know who received what. Consumer-facing bots often skip disclosure; internal HR does not, because trust is the asset you cannot rebuild.
How do we handle a policy that isn't in the library?
Return to the HRBP, with the employee's question attached and a note explaining that the answer requires a policy not currently indexed. Log the gap in a policy-gap report that you review weekly. Policy-gap reports are often the most valuable byproduct of the pilot — they surface real gaps in the employee handbook that no one had prioritised.
What about questions that span multiple policies?
Answer the boundary of what is certain, and escalate the rest. Example: "How much parental leave do I get?" is answerable with citation; "How do I coordinate parental leave with my discretionary bonus?" is a judgment call across protected leave, compensation, and timing — that routes to a human. Multi-policy questions are the most common failure mode, and the answer is not to try harder to solve them. It's to route them with a warm handoff and the context you've already gathered.
How often does the policy library need updating?
More often than most People teams expect. Any policy change, any jurisdiction update, any tenure-band adjustment triggers re-indexing. In practice this is a weekly cadence, not a monthly one. The version-currency dashboard should be reviewed weekly by someone in People Ops — not by the AI team. The AI team's job is to make the review fast; the People team's job is to make it correct.
Should the assistant answer benefit questions?
Policies, not benefits. Benefit amounts, enrolment windows, and claims typically live in a separate system with its own audit requirements. Answering "how much is my PPO plan?" without connecting to the benefits system is a near-certain miss. Either integrate the benefits system properly or scope the assistant to policy — not policy and benefits on day one.