HR Insight Engine
No-code people analytics for mid-sized companies: connect your HRIS, auto-clean the data, and surface attrition risk, engagement, and turnover in minutes.
A People Ops lead at a 280-person company gets a Slack message on a Thursday afternoon: the CFO wants turnover by department, by tenure band, and by manager, for the board deck on Monday. The data exists—some of it in the HRIS, some in the payroll system, some in a performance tool nobody has logged into since the last review cycle, and a lot of it in a spreadsheet one analyst maintains by hand. Pulling it together means three CSV exports, a weekend of VLOOKUPs, and a pivot table that will be stale the moment someone resigns. By the time the chart is ready, the question has already moved on to "so why are the top performers the ones leaving?"—and there is no time left to answer it.
Built for Small Business Owners, Solo Founders.
Suggested stack: Next.js 14 + Vercel, Finch or Merge.dev (unified HRIS/payroll API), Convex or Postgres (Neon/Supabase), Claude (Anthropic API), Tremor or Recharts, Stripe Billing + SOC 2 path. Weekend scope: about 10 hours.
The Problem
A People Ops lead at a 280-person company gets a Slack message on a Thursday afternoon: the CFO wants turnover by department, by tenure band, and by manager, for the board deck on…
The Solution
HR Insight Engine is a no-code people-analytics layer that sits on top of the systems an HR team already runs. It connects to the HRIS, payroll, and ATS through a unified…
Market Research
The global HR software market is projected to reach $54.6B in 2025, growing at roughly 9.3% CAGR toward at least $76.9B by 2029 (Global HR Software Market Insights 2025). This is…
Competitive Landscape
Visier — The category leader in enterprise people analytics: deep AI/ML, benchmarking, 8,000+ customers, best-in-class predictive insights. Also the reason the mid-market is…
Business Model
Starter ($99/mo) — One HRIS connection, core templates (turnover, headcount, hiring funnel), up to 250 employees. The wedge that gets you inside the account.
Recommended Tech Stack
Next.js 14 + Vercel — App Router for the dashboard, server components for fast data-dense views, Vercel Cron for nightly sync and cleaning jobs. One repo, minimal infra.
AI Prompts to Build This
Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.
1. Project Setup
Build the weekend MVP of the "HR Insight Engine": upload an employee file, have messy department and job title names cleaned, and see turnover by department, tenure band and manager. Groups under 5 people are never shown. Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the Anthropic API to clean category names only, Recharts for charts. Data comes in by CSV. Deploy on Vercel. Tables (Row Level Security on, each user reads only their own rows): - uploads(id, user_id, filename, row_count, created_at) - employees(id, user_id, upload_id, external_id, name, department, department_canonical, title, title_canonical, manager_external_id, hired_at, terminated_at, termination_type) termination_type is regretted, non_regretted or active - taxonomy_maps(id, upload_id, kind, raw_value, canonical_value, approved boolean) kind is department or title - data_quality_flags(id, upload_id, employee_id, flag) Screens: /login, /upload, /cleanup (review the mapping), /dashboard (turnover). Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), ANTHROPIC_API_KEY. Do not build: billing, plans or an integrations add-on, HRIS or payroll connections (Finch, Merge), compensation or pay analysis, attrition risk predictions per person, a natural-language query box, compliance badges. Done when: npm run dev starts, you can sign in, and the four tables exist with Row Level Security on.
2. Core Feature
Build the one feature that proves the HR Insight Engine: a turnover dashboard a board can read, built on cleaned names and a privacy floor. 1. Import a CSV with columns external_id, name, department, title, manager_external_id, hired_at, terminated_at, termination_type. Show rows that failed to parse and why. 2. Collect the distinct department and title strings. Send only those strings, never names or ids, to the Anthropic API with a strict JSON schema { maps: [{ raw_value, canonical_value }] }, asking for one canonical list per kind. Save the maps to taxonomy_maps and apply them to employees once the user approves. The user can edit any mapping first. 3. Flag in data_quality_flags any record with a missing manager, a termination before the hire date or a hire date in the future. 4. Compute in code: monthly attrition and rolling 12-month attrition, each as leavers in the period divided by the average headcount over the period, split into regretted and non-regretted. Break it down by canonical department, by tenure band (under 1 year, 1 to 3, over 3) and by manager. 5. Show the definition of each measure on the dashboard. Render each chart with Recharts and give it a table view as well. 6. Any breakdown group with fewer than 5 employees shows "Too few people to show" and no number, in the chart and in the table. Rules: the model never sees a name, an id or a date of hire. Say plainly that this is descriptive and says nothing about any one person. A Delete this upload button removes the upload and its employees. Empty state: with no uploads, show the CSV columns and a sample file. Done when: a 200-row sample with messy department names maps to a short canonical list the user approves, the dashboard's rolling 12-month figure matches a hand calculation on the sample, a department of 4 people shows no number, and the model call contains no names.3. Landing Page
Build a one-page landing site for the HR Insight Engine, people analytics for mid-sized companies. Hero: "Answer the board's people questions in minutes, not weekends." Sub: "Upload your employee file. We clean the names and build the turnover dashboard. No analyst required." One button: Join the waitlist. Sections: a sample turnover-by-department chart with one group marked "Too few people to show", the problem (data in three systems and a board meeting on Thursday), how it works in four steps (upload, clean, review, read), and an FAQ on what is stored, what the model sees (category names only, no employee names), how to delete an upload and which HR systems connect next. Waitlist: store the email in a waitlist table in Supabase. No other service. Style: Geist, an off-white background, near-black type, one emerald accent. Done when: the page renders on a phone and a submitted email appears in the waitlist table.
4. Branding Package
Use a design or image tool for this one. A coding agent cannot draw a logo. Brand for the HR Insight Engine: pick a short working name, then design a wordmark and an icon that suggest a bar chart whose bars are people-shaped dots. Colors: off-white, near-black and one emerald. Type: Geist, with tabular numbers for rates. Deliverables: wordmark, icon, a chart style with a "too few people to show" state, three data quality flag chips that differ by shape as well as color, and one launch graphic. Done when: each deliverable is saved in one folder and the chips are distinguishable without color.