Nomer
H

HireSync

BuildingProvenOpen SourceOther

A backend hiring platform API built with NestJS, Clean Architecture, and event-driven design. Open source.

Visit site

Made by

NO
Nomer

@nmrisrl11

Front-end Developer

Open to workManila
View profile · 5 projects

Journey

More from Nomer

Google AI Pro Portal (Free)

Apply eligible promotional offer tiers with real-time checkout price verification.

Live

Google AI Plus Portal (Free for 1-Year)

Official landing page and release portal for Google AI Plus Portal — to get free 1-Year plan.

Live

Sulok

A personal web library for saving, organizing, and rediscovering things you find on the internet.

Live

DayBook

DayBook is a stylish, lightweight, local-first app designed to help you remember the people you love.

Live
NO

Nomer

Sep 22·

🔍 HireSync — Event-Driven Architecture & Audit Logging

Under the hood, HireSync is powered by a robust event system:

⚡ Event Flow (3 phases):

1. Core Transaction — use case persists data, entity queues domain event

2. Event Reaction — events broadcast via NestJS EventEmitter, listeners enqueue side effects

3. Background Processing — BullMQ picks up jobs from Redis and executes

📊 54+ Registered Domain Events across:

  • Auth events (login, register, verification, reset)

  • Account lifecycle (updates, deletion, restoration)

  • Security (MFA, OAuth, failed login attempts)

  • Recruitment (job CRUD, application lifecycle, documents)

📋 Global Audit Logging:

  • Every domain event persisted to AuditLog table

  • Automatic redaction of sensitive data

  • Indexed by event name, actor ID & timestamp

  • Middleware-based actor context extraction

⏰ Scheduled Tasks:

  • Expire job listings (CRON)

  • Purge deleted accounts past grace period (CRON)

  • Clean expired sessions (CRON)

All async. All decoupled. All auditable ✅

NO

Nomer

Sep 21·

📄 HireSync — Applicants, Applications & Bookmarks

The applicant side of recruitment is feature-rich:

🧑‍💼 Applicant Profiles:

  • Create/edit profile with headline & bio

  • Manage up to 5 resumes + 5 cover letters

  • Set primary/default documents

  • Select specific docs when applying

📨 Job Applications:

  • Apply with resume (PDF) + optional cover letter (TXT)

  • View submitted applications

  • Withdraw applications

  • Save/unsave (bookmark) job listings

  • Duplicate prevention (unique constraint per applicant + job)

👔 Employer Application Management:

  • View received applications per job

  • Update status: Pending → Reviewing → Shortlisted → Rejected → Hired

  • Bulk status updates

  • Internal review notes (employer-only visibility)

📜 Application History Timeline:

  • Chronological event tracking per application

  • Records: submissions, status changes, withdrawals, notes

  • Public/private event visibility

Every status change triggers an email notification to the applicant 📧

NO

Nomer

Sep 4·

💼 HireSync — Recruitment Module: Employers & Jobs

The recruitment engine powers the core hiring workflow:

🏢 Employer Profiles:

  • Create/edit company profile with industry & website

  • Upload/remove company logo via Cloudinary

  • View profiles (own & by ID)

📝 Job Listings:

  • Full CRUD: create, edit, close

  • Employment types: Full-time, Part-time, Contract, Freelance, Internship

  • Location types: On-site, Hybrid, Remote

  • Salary range with currency support

  • Status lifecycle: Draft → Published → Closed / Expired

  • Search, filter & paginated queries

  • Auto-expiration via scheduled CRON task

Each job listing flows through a defined status lifecycle — no manual babysitting needed.

The CRON task automatically transitions published jobs past their expiry date to EXPIRED status, keeping listings clean and accurate 🕐

All built on the same Clean Architecture layers as IAM — fully decoupled & testable.

🔗 github.com/nmrisrl11/hiresync

NO

Nomer

Sep 3·

👤 HireSync — Account Management & Access Control

Beyond authentication, the IAM module handles the full account lifecycle:

📋 Account Management:

  • Update password (with old password verification)

  • Update email (with verification sent to old email)

  • Upload/remove avatar via Cloudinary

  • Scheduled account deletion with 14-day grace period

  • Background job to permanently purge after grace

  • Account restore within grace period

🎭 Role-Based Access Control:

  • Dynamic roles stored in DB: ADMIN, EMPLOYER, APPLICANT

  • Global RolesGuard enforcing route-level permissions

  • Admin-only endpoints for user management

👑 Admin Features:

  • Get all users with pagination

  • View user by ID (admin & public views)

The deletion flow alone involves: scheduling → grace period tracking → CRON purge → farewell email → audit log entry.

Every action emits domain events → triggers emails → logs to audit trail ✨

🔗 github.com/nmrisrl11/hiresync

NO

Nomer

Sep 2·

🔐 HireSync — IAM Module: Authentication & Security

The Identity & Access Management module is the backbone of HireSync. Here's what it covers:

🔑 Authentication:

  • Register with email verification (Nodemailer / Resend)

  • JWT access + refresh token strategy

  • Forgot & reset password flows

  • Refresh token rotation

🛡️ Multi-Factor Auth (MFA/2FA):

  • TOTP-based via Speakeasy

  • QR code generation for authenticator apps

  • 10 hashed backup/recovery codes

  • MFA-intercepted login flow with challenge tokens

🌐 OAuth:

  • Manual Google OAuth (no Passport.js)

  • Link/unlink providers to existing accounts

  • Set initial password for OAuth-only users

🔒 Account Security:

  • Brute-force protection with configurable lockout

  • Multi-device session management

  • Session revocation on password change

  • CRON cleanup of expired sessions

19 Handlebars email templates across all flows 📧

🔗 github.com/nmrisrl11/hiresync

NO

Nomer

Sep 1·

🚀 Introducing HireSync — a production-grade hiring platform API

Built with NestJS + TypeScript, HireSync connects employers with talent through seamless job posting & applications.

🏗️ Architecture Highlights:

• Clean + Hexagonal (Ports & Adapters) Architecture

• 4-layer separation: Domain → Application → Infrastructure → Presentation

• Rich Domain Entities with Aggregate Root pattern

• 54+ domain events powering async workflows

• Strict dependency rule — core never depends on outer layers

⚙️ Tech Stack:

• NestJS v11 + TypeScript v5

• Prisma v7 + PostgreSQL 15

• Redis 7 + BullMQ for background jobs

• Zod v4 for runtime validation

• Swagger/OpenAPI auto-generated docs

Every module follows the same layered structure — making the codebase testable, maintainable, and fully decoupled.

🔗 github.com/nmrisrl11/hiresync

Building a dev tool or hiring developers? Get seen here. Become our Sponsor

Stays free because of
  • Doctor Scoliosis
  • </Peter> "21st Dev Vinci"
  • Carlo Dandan
  • Joowd
  • Natzui Alyx
  • RCastromero()
  • Reymark Aguila
  • euphydev
  • Doctor Scoliosis
  • </Peter> "21st Dev Vinci"
  • Carlo Dandan
  • Joowd
  • Natzui Alyx
  • RCastromero()
  • Reymark Aguila
  • euphydev
  • Doctor Scoliosis
  • </Peter> "21st Dev Vinci"
  • Carlo Dandan
  • Joowd
  • Natzui Alyx
  • RCastromero()
  • Reymark Aguila
  • euphydev
  • Doctor Scoliosis
  • </Peter> "21st Dev Vinci"
  • Carlo Dandan
  • Joowd
  • Natzui Alyx
  • RCastromero()
  • Reymark Aguila
  • euphydev
Join them

Building a dev tool or hiring developers? Get seen here. Become our Sponsor

Stays free because of
  • Reymark Aguila
  • </Peter> "21st Dev Vinci"
  • RCastromero()
  • Joowd
  • euphydev
  • Natzui Alyx
  • Doctor Scoliosis
  • Carlo Dandan
  • Reymark Aguila
  • </Peter> "21st Dev Vinci"
  • RCastromero()
  • Joowd
  • euphydev
  • Natzui Alyx
  • Doctor Scoliosis
  • Carlo Dandan
  • Reymark Aguila
  • </Peter> "21st Dev Vinci"
  • RCastromero()
  • Joowd
  • euphydev
  • Natzui Alyx
  • Doctor Scoliosis
  • Carlo Dandan
  • Reymark Aguila
  • </Peter> "21st Dev Vinci"
  • RCastromero()
  • Joowd
  • euphydev
  • Natzui Alyx
  • Doctor Scoliosis
  • Carlo Dandan
Join them