DEV Community

ujja
ujja

Posted on

I Built EchoHR: The HR System That Doesn’t Ghost You

Notion MCP Challenge Submission 🧠

This is a submission for the Notion MCP Challenge

Rejections hurt. But ghosting hurts even more.

EchoHR is a Notion-native employee lifecycle system that ensures candidates and employees always receive timely updates, feedback, and visibility across their entire journey.

The goal is simple:

No candidate or employee should ever feel ghosted.

What I Built

EchoHR is a fully automated employee lifecycle management system built on top of Notion MCP.

It provisions an entire HR operating system inside Notion, including:

  • 20+ interconnected lifecycle data sources
  • versioned workspace hubs
  • relations and rollups across the entire employee journey
  • automation playbooks
  • AI-ready fields for feedback and summaries
  • startup-scale demo datasets

The system covers the complete lifecycle:

Candidates → Applications → Interviews → Offers → Onboarding → Check-ins → Goals → Achievements → Performance Reviews → Compensation → Offboarding → Alumni

All records are connected through Notion relations and rollups, enabling a complete view of every employee journey.

To make experimentation easy for hackathons and demos, EchoHR can provision the entire workspace with one command.

This instantly creates:

  • lifecycle pipelines
  • feedback workflows
  • onboarding journeys
  • review systems
  • promotion tracking
  • exit processes
  • dashboards and demo data

Video Demo

Suggested demo flow:

  1. One-command provisioning of the EchoHR workspace
  2. Hiring pipeline with candidate progress
  3. Automated onboarding journeys
  4. AI-generated interview summaries
  5. Slack notification workflows
  6. Lifecycle dashboards and reporting

Show us the code

GitHub repository:

https://github.com/ujjavala/EchoHR

The repository includes everything needed to spin up a fully functional EchoHR workspace.

How I Used Notion MCP

EchoHR uses Notion MCP as the operational layer for lifecycle management.

It enables AI agents, automation workflows, and integrations to operate directly on structured HR data.

Notion MCP (hosted)

Notion MCP provides the primary CRUD and schema layer for lifecycle operations.

It is used for:

  • provisioning databases
  • creating lifecycle records
  • updating candidate stages
  • logging check-ins
  • posting AI summaries

EchoHR includes a one-click workspace provisioning command:

npm run demo

These provisions:

  • pages
  • data sources
  • relations
  • rollups
  • demo records
  • automation playbooks

Agents can then operate on the workspace through MCP.

Slack MCP

Slack MCP enables human-first notifications so important updates never stall.

Examples include:

  • candidate update reminders
  • onboarding alerts
  • offer acceptance notifications
  • overdue feedback pings

This ensures recruiters and managers stay responsive.

Figma MCP

EchoHR integrates with design workflows through Figma MCP.

Example automation:

When a Figma frame is marked Ready for Review:

  • A review task is created in Notion
  • The task links to the relevant check-in
  • A Slack notification is posted

This bridges the design → product → engineering workflow.

Calendar MCP Pattern

EchoHR uses calendar MCP patterns to schedule lifecycle events.

Examples:

  • interview loops
  • onboarding meetings
  • post-offer check-ins

Agents create tasks in Notion and schedule them via calendar integrations.

OpenAI MCP (automation server)

EchoHR includes an automation server that processes lifecycle notes and generates structured summaries.

Example endpoint:

/webhooks/meeting-notes

This converts raw notes into:

  • interview feedback summaries
  • candidate-safe responses
  • manager action items

The summaries are written back into Notion records automatically.

Core Components

Notion Workspace Seeder

The workspace seeder provisions the entire HR operating system.

It creates:

  • lifecycle databases
  • relations and rollups
  • templates
  • automation playbooks
  • demo datasets

Running the setup creates a fully operational HR workspace inside Notion.

Automation Server

EchoHR includes a lightweight automation server that connects Notion to external systems.

Endpoints include:

POST /webhooks/notion

POST /webhooks/figma

POST /webhooks/meeting-notes

POST /summaries/interview

POST /summaries/review

POST /summaries/exit

POST /slack/notify

GET /health
Enter fullscreen mode Exit fullscreen mode

These endpoints power automated workflows across the employee lifecycle.

Example Automations

Candidate Workflow

When a new candidate is created in Notion:

  • An application record is automatically created
  • An SLA follow-up task is assigned to the recruiter

Offer Workflow

When an offer status becomes Accepted:

  • An onboarding journey is created
  • The first three monthly check-ins are scheduled
  • onboarding tasks are generated

Design Workflow

When a Figma frame is marked Ready for Review:

  • A review task is created in Notion
  • The task attaches to the relevant check-in
  • A Slack notification is posted

AI-Powered Feedback

EchoHR integrates with OpenAI to generate summaries for:

  • interview feedback
  • performance reviews
  • exit interviews

Example flow:

  1. Interview notes are captured
  2. /webhooks/meeting-notes processes them
  3. AI generates candidate-safe summaries and manager action items
  4. The results are written back into Notion
  5. Slack notifications ensure feedback never stalls

Demo Dataset

To make the system immediately usable, EchoHR seeds a realistic startup environment with:

  • ~50 employees
  • founders and executives
  • HR and people operations
  • managers and ICs
  • open roles
  • active hiring pipelines
  • onboarding journeys
  • performance reviews
  • promotions and compensation events
  • recognition and pulse surveys
  • exit processes

This allows dashboards and workflows to be demonstrated instantly.

One-Command Setup

Run:

npm run demo

This automatically:

  • provisions the Notion workspace
  • creates lifecycle databases
  • seeds demo records
  • configures relations and rollups

You can also create a fresh versioned workspace:

npm run demo \-- \--force-new

Each installation creates a new workspace version, such as:

  • EchoHR HQ v1
  • EchoHR HQ v2

This makes experimentation safe during hackathons.

The Differentiator

Most HR software focuses on compliance and reporting.

EchoHR focuses on human experience.

It introduces the concept of:

Zero-Ghosting Lifecycle Management

Candidates should never wonder:

"Did they forget about me?"

Employees should never wonder:

"Am I doing well here?"

EchoHR enforces transparency through automated lifecycle checkpoints:

  • candidate update deadlines
  • interview feedback reminders
  • onboarding check-ins
  • review timelines
  • promotion visibility
  • exit follow-ups

Everything is tracked through interconnected Notion data sources.

Limitations (Current Notion Constraints)

Some capabilities are limited by the current Notion API.

Database Views

The API cannot create board, timeline, or gallery views.

EchoHR automatically creates a page called:

Set up Views (5–10 min)

This guides users through configuring dashboards manually.

Visual Styling

Notion does not support custom CSS through the API.

Visual structure uses:

  • page covers
  • emojis
  • callouts
  • curated views

Charts

Notion charts depend on workspace features.

If unavailable, charts can be embedded from external sources such as:

  • Google Sheets
  • Datawrapper

Formula Updates

Formula properties cannot currently be modified after creation through the API.

They must be defined during provisioning.

Why This Matters

Hiring and employee management systems often fail at one simple thing:

communication.

Candidates get ghosted.

Employees receive little feedback.

Performance reviews disappear into silence.

EchoHR demonstrates how Notion + MCP + AI automation can create a transparent and human-first operating system for people operations.

Instead of spreadsheets and disconnected tools, teams get a single lifecycle workspace where every stage is visible and actionable.

Top comments (9)

Collapse
 
ujja profile image
ujja

The ghosting problem (in my experience ) is usually worst at the smaller end of the spectrum. In my experience, large organizations tend to have a lot of automation and compliance processes in place, so candidates at least receive an automated rejection email. It might feel impersonal, but it rarely goes completely silent.
Where I’ve personally seen the most ghosting is small to mid-size companies, where hiring is often managed by one recruiter or founder using spreadsheets and email threads. Things simply fall through the cracks.
That’s exactly the gap EchoHR tries to address.

Collapse
 
pengeszikra profile image
Peter Vivo

If this is really work then goes away a big amount of hedache.

Collapse
 
ujja profile image
ujja

Yes please. We’re so far ahead with MCP and the whole AI wave, yet we still struggle with the most basic things. Communication and not leaving candidates or employees hanging. We should at least be able to get that right. For God’s sake, we’re talking big about LLMs

Collapse
 
klement_gunndu profile image
klement Gunndu

20+ interconnected databases in Notion is ambitious — how does it hold up once you're past a few hundred employee records? Notion's relation/rollup performance tends to degrade with scale, and that's exactly where an HR system needs to stay fast.

Collapse
 
ujja profile image
ujja

That’s a great point and something I thought about while designing it.
EchoHR is really aimed at startup-scale organizations, where the number of active records stays manageable. The schema spreads lifecycle data across multiple smaller databases and keeps rollups fairly minimal.
For larger organizations, the idea would be to use it more as a workflow orchestration layer rather than the long-term system of record.

Collapse
 
ujja profile image
ujja

The zero-ghosting guarantee also doesn’t rely heavily on rollups. It’s enforced through event-driven automations and SLA tasks.
For example:
new candidates trigger automatic follow-up tasks
overdue feedback triggers Slack reminders
accepted offers automatically create onboarding journeys and scheduled check-ins
This is where MCP becomes important.
Agents interacting with the system through Notion MCP can monitor lifecycle events, run automation logic, and trigger reminders or summaries without requiring complex queries inside Notion itself.
So even as organizations grow, EchoHR can continue functioning as the orchestration layer ensuring candidates and employees always receive updates, which keeps the zero-ghosting promise intact.

Collapse
 
geraldmuvengei06 profile image
muvengei.dev

Great. How did you AI generate your media files? (The video, the flow diagram)

Collapse
 
ujja profile image
ujja

Mostly used Google Vids and ChatGPT for it

Collapse
 
geraldmuvengei06 profile image
muvengei.dev

Your build is quite creative. Is that your actual voice or AI voice?

Collapse
 
xh1m profile image
xh1m

As a student looking at the job market, the whole ai ghosting thing is kinda disheartening. It's a breath of fresh air to see someone actually building something like EchoHR with a focus on transparency. How do you balance the need for AI in terms of HR efficiency with the need for a human feedback loop in terms of candidate development?