Skip to content

mborges-dev/almi-platform

Repository files navigation

Almi

Next.js React TypeScript

the soul of your organisation

Almi is an AI-powered HR platform covering the full employee lifecycle — recruitment, onboarding, leave, documents, payroll, compliance, and an always-on HR assistant. It supports Portuguese and UAE labour law and runs in three languages (Portuguese · English · Arabic).

The platform adapts to company size: mid-size companies get the full suite; small companies (1–50 employees) get Almi Lite, a focused experience centred on compliance, document generation, and HR assistance.


Stack

Layer Technology
Framework Next.js (App Router, Turbopack)
Language TypeScript
i18n next-intl (PT · EN · AR)
Database Supabase (PostgreSQL + pgvector)
Auth Supabase Auth
Storage Supabase Storage
AI Anthropic Claude (claude-sonnet-4-6)
Embeddings OpenAI text-embedding-3-small
Voice ElevenLabs (Claudia voice) + Bland.ai
Email SendGrid
Scheduling Calendly
Transcription Fireflies.ai
Payments Stripe (PT + AED)
Hosting Vercel

Brand colors: #0a81bb (blue) · #0f172a (dark) · #f8f7f4 (background)


Getting Started

git clone https://github.com/mborges-dev/almi-platform.git
cd almi-platform
npm install
cp .env.example .env.local   # fill in your keys
npm run dev

The app runs at http://localhost:3000.


Modules

Recruitment (complete)

  • Public application page with company branding + GDPR consent
  • CV upload → PDF extraction → AI scoring (dual thresholds: rejection + approval)
  • Pipeline Kanban: Recebidos → Triagem → Análise → Screen Call → Entrevista → Decisão → Rejeitados
  • Screen Call with AI voice (Claudia via Bland.ai + ElevenLabs)
  • Interview scheduling, AI-generated question scripts, scorecards
  • Token-secured manager view with AI briefing
  • Offer letter builder
  • Personalised rejection emails (sent only when position closes)
  • Talent pools for future roles
  • EU AI Act compliance audit trail for CV scoring decisions

Document Management (complete — 4 phases)

  • Upload + categories + tags + expiry alerts + digital signatures
  • AI summaries + semantic search via embeddings
  • ChatBot HR — conversational assistant answering from company documents
  • Automations — auto-onboarding on hire, auto-archiving on offboarding
  • Ghost inspector: AI audit of document completeness and anomalies
  • Living documents: version tracking with change summaries

Team / People (complete)

  • Employee profiles with contract, contact, and career data
  • Departments, org chart, career events, salary history (admin only)
  • Disciplinary wizard: AI-generated disciplinary documentation
  • Whistleblowing channel (Lei 93/2021 + anonymous external portal)
  • Exit interview module (AI-driven, voice optional)

Leave Management (complete)

  • Configurable leave policy per company (annual vs monthly accrual)
  • Working-day calculation excluding PT and UAE public holidays
  • Request → approval flow with email notifications + auto-negotiation
  • Team availability calendar, carry-over rules, year-end processing
  • Leave map: visual overview of absences across the team

HR Assistant (complete)

  • Streaming chat answering from company documents
  • Conversation history, FAQ auto-generation
  • Unanswered questions dashboard, document gap detection
  • Floating widget on all protected pages

Payroll

Portugal:

  • Salary calculator (IRS 2026 + SS contributions + FCT provisioning)
  • SEPA XML export + Sage export
  • SS/DMR integration (Social Security declaration)

UAE:

  • WPS (Wages Protection System) SIF file generation + Stripe AED payments
  • End of Service Benefit (EOSB / gratuity) calculator + provision tracking
  • ILOE (involuntary loss of employment) insurance management
  • Medical insurance tracking per employee

UAE Compliance (complete)

  • MOHRE contracts in English and Arabic
  • Emiratisation dashboard (Nafis quota tracking)
  • Ramadan working hours adjustment
  • Free Zone vs Mainland jurisdiction flags (DIFC / ADGM disclaimers)
  • Full UAE labour law obligations checklist (56 obligations tracked)

Org Health (complete)

  • HR Balance Sheet: headcount, attrition, and workforce cost overview
  • Benchmarks: compare KPIs against industry peers
  • Hiring Radar: early signals of upcoming vacancies
  • Decision Simulator: model the impact of headcount changes

Training (complete)

  • Individual training plans per employee
  • Progress tracking and completion reports
  • AI-suggested plans based on role and performance gaps

Communications (complete)

  • eNPS (Employee Net Promoter Score) surveys with trend analysis
  • Recognition system (peer-to-peer)
  • Org-wide announcements

Calendar & Integrations

  • Calendar OAuth (Google + Microsoft) for interview scheduling
  • Multiposting: publish jobs to multiple job boards
  • ERP integrations: Moloni (invoicing), SAP (planned)
  • Time tracking integration (NICE API)

Accountant Portal

  • Multi-client management for HR and accounting firms
  • Client switching, operator management, per-client RLS
  • Dedicated firm dashboard

Product Tiers

Almi (50+ employees)

Plan Audience
Starter Growing teams
Growth Mid-size companies
Enterprise Large organisations

Almi Lite (1–50 employees)

Plan Employees Price
Solo 1–10 €69/mo
Team 11–25 €129/mo
Pro 26–50 €229/mo

Setup fee: €199 (one-time). Accountant partner programme: €49/mo per client.


Database

Hosted on Supabase (PostgreSQL + pgvector).

Core: companies, profiles, jobs, candidates
Recruitment: interviews, manager_access, team_invitations, scorecards, talent_pools
Documents: documents, document_versions, document_signatures, document_embeddings, document_automations
HR Chat: hr_conversations, hr_messages, hr_faqs, hr_unanswered
Team: departments, career_events, salary_history, employee_events
Leave: leave_requests, leave_balances, leave_policies, leave_notifications
Payroll: payroll_runs_uae, eosb_provisions, wps_sif_exports
UAE Compliance: uae_obligations, emiratisation_records, mohre_contracts
Org Health: benchmarks, okrs, performance_goals, performance_reviews
Training: training_plans, training_progress
Communications: enps_surveys, recognition_events
Accountant: firms, firm_clients, firm_operators

RLS: All tables have Row Level Security scoped by company_id. The storage bucket is private — files served via signed URLs (1h expiry).


Deployment

Deploys automatically to Vercel on push to main.

Cron jobs (vercel.json):

  • Daily: document expiry alerts, signature reminders, leave reminders, calendar sync
  • Monthly: WPS SIF generation
  • January 1: leave year-end carry-over

Conventions

  • AI prompts live in lib/prompts.ts — centrally managed.
  • All client-facing emails show the client company's logo with a "Powered by Almi" footer.
  • Rejection emails are never sent automatically — only on formal position close or manually with preview.
  • Language: European Portuguese (PT), British English (EN), Modern Standard Arabic (AR).
  • New tables require RLS policies scoped by company_id.

License

Proprietary. © Almi. All rights reserved.


Notice

This repository is published as a portfolio showcase of my work. The code is not licensed for reuse, redistribution, or modification. You're welcome to read it, but it is not open source. If you'd like to discuss similar work, get in touch.


Built by Miguel Borges · hello@miguelborges.dev

Releases

No releases published

Packages

 
 
 

Contributors

Languages