One assistant and one dashboard on top of a single engine. This page follows a check-in from the moment it is posted to the score everyone can see, then walks the dashboard section by section.
Read and verify
A check-in is a few lines in chat or a sentence spoken to the assistant. The parser extracts what was finished, what is planned, the blocker, the sign-in and sign-off, and the location when the person has consented. Typos are forgiven; when the structured parser cannot read a message, a language model turns the free text into the same fields.
Claims are then checked against real work: tasks named in the check-in are cross-checked with Jira, GitHub and GitLab activity. Presence is confirmed with a light, consented ping answered by any short reply; a reply is never rejected, only classified by device and network on-host. Long unbroken days are capped and handed to a human rather than credited or accused.
Coach and explain
Coaching is a rule engine, not a chat template: up to four recommendations per period, worst signal first, each citing the evidence it came from in the person's own task log, pillars and role catalogue. An optional AI pass may re-word a recommendation; it can never add or remove one.
Typing "/pulse me" in chat returns the scorecard with the band, the five pillars and what moved them. Weekly, monthly and six-month self-summaries arrive by direct message; a model writes the short weekly narrative from the person's own check-ins and is instructed never to invent work. Ask AI answers multi-turn questions over the team's live data, by keyboard or voice, and tags each answer with the provider that produced it.
Decide: the neural engine
Routine decisions go through a neural layer trained on your own history, in one of four modes: off, shadow (predict and log, change nothing), assist (mid-confidence decisions queue for an admin) and auto (high-confidence decisions act, logged and undoable). Every decision carries a calibrated probability and a reason; the default auto threshold is 0.85.
Heads: flag a check-in, uphold a strike, auto-approve leave, judge whether a nudge worked, no-show risk
Guardrails: no action on anyone with under 14 days of history, at most 5 auto-actions per person per week, a never-DM list; strikes never leave assist mode
Leave auto-approval also passes plain rules first: short request, enough notice, balance, team coverage, no blackout; sick leave always routes to a human
Agents and bots
Four runtime agents are off until you enable them: natural-language leave ("I'm off Friday" becomes a request you confirm), onboarding, self-service Q&A that picks a pre-built query and never passes your text into SQL, and a blocker router that nudges the teammate whose recent check-ins mention the same area. Bot personas (presets such as Technical, DevOps and HR, plus your own) answer from the instruction text you write for them. One question goes to one bot with a confidence, and below 0.45 the router says it is unsure.
People
Who is on now, presence and devices, PTO and leave. Presence comes from the chat client the person already uses; there is no agent to install.
Signed in, on-call, late, PTO and signed-off states from the daily check-in, in the person's own timezone
Desktop and mobile presence: online, away, busy, offline
Leave requested in chat and decided by rules you set: balances, coverage, blackout dates
Late is measured against the person's own usual start, and a late finish earns a later start the next day
Work
Efficiency, transparency, productivity, tasks done, hours worked, goals and work location. Every number is built from the check-in and cross-checked against Jira, GitHub and GitLab activity.
Efficiency: five weighted pillars, per-role profiles, an 8-week trend for the team and each person
Transparency: the person, the lead and the team see the same score; weights are public and every change is audited
Tasks: completed when listed as done, stalled when repeated, closed automatically when dropped and never counted as a completion
Goals: personal objectives with follow-ups, team targets read against the team median
Hours: short days flagged against the person's own expected day, overtime kept, PTO balance beside it
Work location: office, home, on the go; hours-weighted, consent-gated, classified on-host against a local IP database you refresh weekly
Operations
Blockers: a configurable SLA (2 hours by default) nudges the owner, then the backup, then the lead across chat, WhatsApp and email; "resolved" in reply closes it
On-call: rotation by CSV import, reminders, timed escalation, a hand-off summary to the next person on call
Tickets: severity low, medium or high, an AI triage step first; unacknowledged high severity pages the on-call and escalates in minutes; credit goes to whoever fixed it
Campaigns: policy acknowledgements, consent, votes and feedback, sent in chat and tracked to the last person
Audit log: every decision, weight change, consent signature and auto-approval, as it happens, exportable
Intelligence
Baselines per person: the recent 14 days against their own previous six weeks, never against colleagues; a planned holiday is never read as a drop
11 built-in role profiles from a role and function catalogue, so a designer's iteration counts as output
A weekly drift monitor re-checks the model; a candidate trained on too little data is refused
People signals are admin-only, advisory and evidenced; nothing there acts, messages an employee or touches pay
For managers
Two views are admin-only and advisory: top performers and retention risk. Both show the reason behind every entry, both are invisible to peers, and neither takes an action by itself; people decide. Managers receive a weekly digest, and every number in an employee drawer opens the records it was computed from.
What the product does not do
No desktop agent, no silent screenshots, no keylogging, no screen recording; the one optional capture feature is off by default and requires the employee's signed consent
No reading of email, files, source code or HR document contents
No training of anyone else's model on your data; InRoots does not collect your data at all
No decision about hiring, firing or pay; it flags, explains and suggests
People
Who's on now18 / 25
Live · Friday 11:20
Lina K.signed in
Omar S.on-call
Philip R.late 09:42
Sara M.signed in
Rabie A.pto
Ahmed T.signed off
Presence & devicesdesktop · mobile
Status from the chat client, no agent installed
Lina K.online
Omar S.busy
Philip R.away
Sara M.online
Rabie A.offline
Ahmed T.away
Top performersthis month
Admin-only; one list, built from the same score everyone can see
1Sara M.86%
2Omar S.81%
3Lina K.72%
4Philip R.69%
5Ahmed T.66%
Recognition only; no pay decision is attached. Under 25% → coaching first, not penalties.
Retention riskadmins only · advisory
Early, quiet, and always with a reason
Ahmed T.watch
Score down 3 weeks · 2 short days · no kudos 30d → suggested 1:1 this week
Philip R.steady
Lina K.rising
Never shown to peers. Advisory only; a suggested 1:1, never an action.
PTO & leaveauto-approved 3 of 4
Requested in chat, rules decide
Rabie A. · todayapproved
Sara M. · Mon–Tueapproved
Philip R. · sick, Wedto lead
Balances, coverage and blackout dates checked before anyone is asked.
Work
Efficiency▲ +11%
8 weeks
Whole team72%
W1W4W8
Transparencysame score, every seat
Own view = lead's view = team's view, week by week
Lina K.▲ 61 → 72
W1W8
Weights 40·25·15·10·10, every change audited. Anyone can type /pulse me.
Productivity▲ 14 tasks this week
Tasks done per person, this week
Sara M.
9
Philip R.
7
Lina K.
6
Omar S.
4
Ahmed T.
3
Tasks done▲ 9 → 14
Per week, whole team
W1W8
Counted from standups and cross-checked with Jira, GitHub and GitLab activity.
Hours workedthis week
Per person · short days flagged · PTO balance
HoursShortPTO left
Lina K.38h 20m—12 d
Omar S.44h 05m—6 d
Philip R.31h 10m2 days9 d
Sara M.39h 40m—15 d
Ahmed T.29h 50m3 days4 d
Goalson track · above · below
Against personal and team objectives, this month
Sara M. · redesign onboardingabove
Omar S. · cut deploy time 30%on track
Lina K. · 12 tickets / monthon track
Philip R. · 8 demos bookedbelow
Ahmed T. · a11y auditbelow
Below expectation triggers a coaching nudge to the person first, then the lead.
My goals & KPILina K.
Personal view · recent activity
12 tickets / mo
9/12
Review 4 PRs / wk
4/4
KPI this month
72%
11:02closed #1031 · +1 Progress
10:30kudos from Omar · +1 Responsibility
09:05signed in · office
Work locationconsent-gated
Hours-weighted, this week
Office 54%Home 38%On the go 8%
IP classified on-host against a local database you refresh weekly. Nothing is sent out. Employees opt in and can see their own record.
Operations
Blockers & escalation2 open
2-hour SLA, the chain walks itself
Invoice export fails on large accounts26h
Lina → Omar (routed) → lead if silent 2h
Staging cert renewal1h
Ahmed → nudged at 2h → chat, WhatsApp, email until owned
Support tickets & SLA7 open · 1 escalated
Severity low, medium or high; unacknowledged high severity pages the on-call within minutes
#1042 Login loop on iOShigh · escalated
#1039 Invoice PDF blankmedium · 1h open
#1037 Add SSO for tenant Xlow · 22h open
#1031 Export CSV encodingresolved · 3h
High severity pages the on-call; no acknowledgement in 5 minutes pages the backup, and at 15 minutes it reaches the fallback room and WhatsApp. Resolution credit goes to whoever actually fixed it.
Campaignsfeedback · ack · consent · votes
Sent in chat, tracked to the last person
Policy ack · v4
24/25
IP consent
22/25
Offsite date vote
16/25
Q3 feedback
10/25
Non-responders get one reminder per day until it lands, in their own channel.
Audit log & task statuslive
Every decision, every change, as it happens
11:20:14pto.auto_approve sara.m 2d · coverage ok
11:21:21task.status #1031 → done · lina.k
11:22:28blocker.route invoice-export → omar.s
11:23:35consent.sign ip-policy v4 · ahmed.t
11:24:42ticket.escalate #1042 high · on-call paged
11:25:49oncall.handoff omar.s → rabie.a
Intelligence
Adaptive learningtrends · flags
Baselines per person, role profiles, targets that move with the team
Trend · Lina▲ sign-in earlier 3 wks
Trend · team▲ blockers cleared 2× faster
Flag · Philippresence check missed 3×
Flag · Ahmedsign-in via unknown VPN
Drift monitormodel re-checked weekly
Flags go to the person first with the evidence. Nothing is silent.
Neural enginetrained natively on your data
Decisions and auto-approvals, with confidence and a reason
PTO auto-approved · Sara0.97 · coverage ok
Blocker routed · Omar0.91 · owns module
Sick request · Philip0.62 · to lead
Anomaly · Ahmed VPN0.88 · flagged
Runs on your model, in your perimeter. Below the confidence bar it asks a human.
Bots shaped by your instructionspresets + your own
Personas shaped by the instruction text you write; each answers in its function's language
TETechnicalDEDevOpsSESecurityHRHRFIFinancePRProjectSASalesONOnboarding+Your own
Behaviour and automations are settings, with manager and admin overrides. No web browsing or retrieval; the reply comes from the provider you configured.
Integrations
Chat & calendarone brain, every channel
Post where you already talk
K9 Chatnative · E2EE
Slackbridged
Microsoft Teamsbridged
WhatsAppon-call reach
Google Calendarvia n8n
Microsoft 365via n8n
Work & cloudverified against real work
Standups cross-checked against Jira, GitHub and GitLab activity; your cloud managed from chat
Jiraactivity
GitLabactivity
GitHubactivity
Bitbucketsoon
VPSienative
Ops, observability & automationevents out, actions in
Every decision is an event you can ship to your stack, and any webhook can trigger InRoots
n8nnative
ZapierAPI · webhooks
Splunkevents out
Grafanaevents out
PagerDutyevents out
Datadogevents out
SendGridemail
Any SMTPemail
{ }CustomAPI · webhooks
Bring your own model16 providers · air-gapped with Ollama, voice off
Point InRoots at any of these, or at a local model. Standup text never has to touch a public API.
Anthropic
OpenAI
Gemini
Mistral
Ollamalocal
Groq
DeepSeek
Perplexity
Cohere
OpenRouter
Together
Cerebras
Hugging Face
Hyperbolic
Cloudflare AI
n8nyour pipeline
How it works
Four steps, one minute a day
1
Post or speak
"Signed in. Shipped the export fix. Blocked on invoice PDFs." One line in K9 Chat, Slack or Teams, or say it to the assistant. Typos are forgiven.
2
AI reads and verifies
Intent, hours, tasks, blockers and location are parsed, then cross-checked against Jira, GitHub and GitLab activity. Presence is confirmed with a light ping, never a silent screenshot.
3
Goals and coaching
Personal objectives get follow-ups. Stuck tasks get a nudge. Improvement suggestions cite the person's own work. Managers get a weekly digest instead of a daily hover.
4
One fair score, seen by all
Five weighted pillars, per-role profiles, a line-by-line breakdown behind every number. The employee sees it first. "/pulse me" in chat returns it any time.
Sovereignty
Growth you own. Data you keep.
Bring your own model
16 providers including Anthropic, OpenAI, Gemini, Mistral and Groq, or point it at a local Ollama and go fully air-gapped with spoken replies off. Standup text never has to touch a public API.
On-host geo and IP intelligence
A local IP database — keyless db-ip Lite or MaxMind, refreshed weekly by a script you run — classifies office, home and mobile on-host. Nothing is looked up externally. Location is consent-gated and visible to the employee.
Signed consent and immutable audit
Policies are versioned and e-signed with a tamper-evident hash. Every decision, weight change and auto-approval lands in an audit log you can export.
Self-hosted or hosted
One container, SQLite or Postgres, deploys anywhere. Or let us host it. Same code, same features, your choice of where the data sleeps.
No telemetry
The product does not phone home. No usage beacons, no crash reporters calling out, no hidden analytics. Zero bytes leave unless you configure a destination.
Minimal token footprint
Daily call budgets, memoisation and deterministic scoring keep inference cost near zero even on paid providers. The score is math; the AI only explains it.
Admin-only views are advisory. They show the reason behind every entry, never take an action by themselves, and are never visible to peers.
Sample data. Names, numbers and portraits are illustrative. In a real deployment, a person's presence, location and scorecard appear only after they have signed the consent policy, and each person can see their own record at any time.