A productivity app, not a monitoring tool

Grow from where you stand.

One minute a day. Your team posts a line in chat or talks to the AI. InRoots verifies it against real work, tracks goals, coaches, and builds a score everyone can see and explain. Nothing has to leave your servers.

  1. 1Post or speak
  2. 2AI verifies
  3. 3Goals & coaching
  4. 4One fair score
Lina K.Backend · this week
▲ standard
72%
Progress
78
Presence
88
Reliability
64
Integrity
90
Responsibility
55
+4 shipped 3 tasks · +1 kudos from lead · −6 2 missed sign-offs · PTO Fri excused
Every number shows its evidence. Ask "/pulse me" in chat any time.
InRoots· direct message
Philip R. signed in · late 09:42

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 20m12 d
Omar S.44h 05m6 d
Philip R.31h 10m2 days9 d
Sara M.39h 40m15 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:14 pto.auto_approve sara.m 2d · coverage ok
11:21:21 task.status #1031 → done · lina.k
11:22:28 blocker.route invoice-export → omar.s
11:23:35 consent.sign ip-policy v4 · ahmed.t
11:24:42 ticket.escalate #1042 high · on-call paged
11:25:49 oncall.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.

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.

Questions people ask first

Is this employee monitoring?

No. There is no desktop agent, no keylogging, no screen recording and no silent screenshots. The only input is what people choose to post; the one optional capture feature is off by default and requires the employee's signed consent. The output is a score they can see and question.

Will my team accept it?

Teams accept what is fair and visible. Everyone sees the same scorecard, the weights are public, every deduction shows its reason, and the employee gets their own coaching before a manager sees anything.

Can it run with no internet at all?

Yes, with one exception. With Ollama or any local model and a local IP database on your host, the whole system runs air-gapped and chat stays on your own Matrix server. Optional spoken replies are the exception: text to speech runs through OpenAI or ElevenLabs, so leave voice off to stay air-gapped.

What does it not do?

It does not read your screen, your email or your files. It does not decide who is fired. It flags, explains and suggests; people decide.

Ready when you are

See your own team on InRoots.

A 30-minute walkthrough on your channels, your rules, your infrastructure.

Prefer email? sales@inroots.ai