JOB-EASY
System Design

Data Model

The complete and exhaustive 69-model schema mapping for Job-Easy.

Standalone & CMS Models (No Direct Foreign Keys)

DiscoveryRun
JobRun
HealthCheckResult
DiscoveryAiCache
DiscoverySourceHealth
RateCounter
SystemSetting
SubscriptionQrCode
EmailSuppression
NotificationTemplate
LandingSection
LandingHero
LandingAnnouncement
LandingNavItem
LandingFeature
LandingStep
LandingShowcase
LandingBenefit
LandingStat
LandingTestimonial
LandingFaq
LandingCta
LandingTrustedLogo
LandingSocialLink
LandingFooterLink
LandingFooter
LandingNewsletter
LandingContact
LandingBusinessHour
LandingSeo
ContactMessage
NewsletterSubscriber

Strict Entity Relationship Diagram (Complete Prisma Schema)

Cascade Safeties & Snapshots

Job-Easy uses deliberate SetNull foreign keys on critical auditing tables like EmailLog and AuditLog. Rather than relying on Cascade which would destroy historical records, the schema takes hard snapshots of data (like the template type, resume name, and company name) at the exact moment of execution, guaranteeing the log survives even if the upstream resource is deleted.

Search Indexes

PostgreSQL GIN indexes with gin_trgm_ops are heavily utilized on high-volume string fields (like Company name, Application role, and Resume name) to provide millisecond-latency fuzzy search capabilities natively, completely eliminating the need for a separate Elasticsearch cluster.