Skip to content
← Back to work

Internal Service Advisor Copilot

Python · Claude Messages API · knowledge-grounded

The problem

Dealership service desks run on tribal knowledge. An advisor — especially a new hire — constantly needs answers that live in a senior colleague's head or a folder of PDFs: is this under warranty? what's the standard quote range? what do I do with a recurring fault? when must I escalate? That's slow, inconsistent between staff, and risky when policy is stated wrong (promising warranty coverage that doesn't apply).

The approach

A Claude assistant grounded in the dealership's own materials — a small knowledge base of Markdown documents (warranty policy, pricing ranges, a common-issues playbook, escalation rules, comms tone). For each question it:

  • answers only from the knowledge base — never invents policy or prices;
  • cites the source file(s) it used, so the answer is auditable;
  • escalates when the topic isn't covered, or when the rules require a human (safety, complaints, warranty disputes, comebacks, refunds);
  • runs in advisor mode (concise, mid-task) or onboarding mode (step-by-step teaching + a check-your-understanding question).

Architecture

staff question + mode (advisor | onboarding) ↓ loads knowledge/*.md (warranty · pricing · playbook · escalation · tone) ↓ Claude (system prompt: "answer ONLY from the knowledge base; else escalate") ↓ schema-enforced JSON { in_kb, answer, sources[], escalate, check_question } ├──► answer, with the source file(s) named ├──► escalate = true → route to a senior advisor └──► onboarding → step-by-step teaching + a check question

The knowledge base is plain Markdown here so the demo runs with zero setup. In production the grounding step is the only thing that changes — point it at a real CRM/ticketing knowledge base, a Notion/Confluence space, or indexed PDFs. The prompt and guardrails stay identical.

The guardrail (why it's trustworthy)

For a tool staff rely on, a confident wrong answer is worse than an honest "I don't know". The system prompt's first rule is grounding: answer only from supplied documents; if the answer isn't there, return in_kb: false, escalate, and say so.

Sample runs

"Does the new-vehicle warranty cover brake pads?"
source: warranty-policy.mdANSWERED
"Bumper-to-bumper is 3 years/100,000 km; powertrain 5 years/160,000 km. Brake pads are NOT covered — they're a listed wear-and-tear exclusion."
"Do we offer free loaner cars during a major repair?"
in knowledge base: falseESCALATE
"That isn't covered in our current materials — please escalate to a senior advisor." (No invented policy. This is the guardrail working.)
"Walk me through a customer whose car is overheating." (onboarding mode)
sources: common-issues-playbook.md, escalation-rules.md, customer-comms-tone.mdESCALATE
A step-by-step teaching transcript (stop driving · don't open a hot radiator · arrange a tow · escalate) — then: "Check: why arrange a tow instead of telling them to drive in carefully?"

Why it maps to the role

This is the internal-operations and training side of the job: an AI workflow for staff (not customers) that gives fast, consistent, cited answers, refuses to fabricate policy, routes the high-stakes cases to a human, and doubles as a self-serve onboarding trainer.

← Back to work