You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SynapseForce is a full-stack HR management platform that uses skill-based AI matching to automatically assign the right employees to the right projects. HR admins get a complete workforce overview — from resume parsing and skill detection to project tracking, team suggestions, and real-time messaging. Employees get a personal workspace to manage their profile, track assigned projects, and communicate with HR.
Features
HR Admin
Dashboard — workforce overview with active projects, skill gaps, overdue alerts, and a live activity feed
Employee Directory — searchable table with availability status, top skills, performance score, and project count; expand any row to see full skill breakdown and endorse skills
Project Management — create projects with required skills; team is auto-assigned via AI skill matching; track progress, deadlines, and status
Resume Management — upload employee resumes (PDF/DOCX); Apache Tika extracts text and auto-detects skills with strength levels
Team Builder — enter required skills and get ranked employee suggestions with match scores
Analytics — skill distribution chart, skill gap analysis, export to CSV, recent activity feed
Messaging — initiate conversations with any employee; shared inbox with unread counts
HR Profile — personal profile with workforce stats, top performers, project status breakdown
My Profile — view and update availability status (Available / Busy / On Leave), upload resume, see detected skills with endorsement badges, update project progress
Message HR — direct messaging with the HR team; notifications on new messages
Platform
JWT authentication with role-based access control (ADMIN / USER)
Real-time notification bell with unread count badge (polls every 5 seconds)
The API starts on http://localhost:8081. H2 in-memory database is used automatically for local development — no setup needed. In production, the app connects to Supabase PostgreSQL via the DATABASE_URL environment variable. Demo data (users, skills, projects) is seeded on first run.
H2 console: http://localhost:8081/h2-console
JDBC URL: jdbc:h2:mem:synapseforce
Username: sa / Password: (empty)
Frontend
cd frontend
npm install
npm run dev
App runs on http://localhost:5173. The Vite dev server proxies /api requests to localhost:8081.
Deployment
Backend — Render
Create a new Web Service on Render, connect the GitHub repo
Set Language to Docker, Root Directory to backend
Add environment variables:
Variable
Value
DATABASE_URL
Your Supabase PostgreSQL connection string
JWT_SECRET
Any long random string
FRONTEND_URL
Your Vercel frontend URL
Render injects a PORT env var automatically — the Dockerfile handles it.
Your Render backend URL (e.g. https://synapseforce-api.onrender.com)
Database — Supabase
Create a free project on Supabase. Copy the PostgreSQL connection string from Settings → Database → Connection string (URI). Hibernate auto-creates all tables on first boot (ddl-auto=update).
API Reference
Auth
Method
Endpoint
Access
Description
POST
/auth/register
Public
Register a new user
POST
/auth/login
Public
Login and receive JWT
Users
Method
Endpoint
Access
Description
GET
/users
Admin
List all employees
GET
/users/me
Any
Get current user profile + skills
GET
/users/{id}
Admin / Self
Get user profile
GET
/users/{id}/skills
Any
Get user skills
PATCH
/users/{id}/availability
Admin / Self
Update availability status
PATCH
/users/skills/{skillId}/endorse
Admin
Toggle skill endorsement
Projects
Method
Endpoint
Access
Description
GET
/projects
Any
List all projects
POST
/projects
Admin
Create project (auto-assigns team)
PATCH
/projects/{id}/status
Admin
Update project status
PATCH
/projects/{id}/progress
Admin / Member
Update progress % and note
DELETE
/projects/{id}
Admin
Delete project
GET
/projects/my/{userId}
Any
Get projects for a user
Resumes
Method
Endpoint
Access
Description
POST
/resume/upload
Any
Upload resume, extract skills
GET
/resume/all
Admin
List all uploaded resumes
GET
/resume/my
Any
Get current user's resumes
Team & Analytics
Method
Endpoint
Access
Description
GET
/team/suggest?skills=Java,React
Admin
Get ranked team suggestions
GET
/analytics/overview
Any
Dashboard stats, skill gaps, activity
GET
/export/employees.csv
Admin
Export employee data as CSV
GET
/export/projects.csv
Admin
Export project data as CSV
Messages & Notifications
Method
Endpoint
Access
Description
POST
/messages/send/{receiverId}
Any
Send a message
GET
/messages/conversations
Any
List conversations
GET
/messages/conversation/{otherId}
Any
Get message thread
GET
/messages/admin
Any
Get HR admin contact
GET
/notifications
Any
Get notifications
GET
/notifications/unread-count
Any
Get unread count
PATCH
/notifications/{id}/read
Any
Mark notification as read
PATCH
/notifications/read-all
Any
Mark all as read
How AI Team Matching Works
When a project is created with required skills (e.g. Java, Spring Boot, Docker):
The TeamSuggestionService fetches all employees and their skill records
Each employee is scored based on how many required skills they have and the strength level of each matching skill
Employees are ranked by score and the top matches are assigned to the project
Each assigned employee receives an in-app notification
The same scoring logic powers the Team Builder page, where HR can enter any skill set and get a ranked list of best-fit employees before creating a project.
Screenshots
Developed by
Smriti Prajapati
About
SynapseForce is a Workforce Intelligence Platform that helps organizations manage employees, skills, projects, and workforce planning from a single dashboard. It leverages AI-driven skill analysis and team matching to connect the right talent with the right opportunities.