Privacy-Preserving Career Matching Connecting candidates with opportunities based on intent, not just keywords. Mutual matching with identity protection until both parties express interest.
SABER employs a modern, scalable architecture with aggressive caching strategies and privacy-first design principles.
graph TB
subgraph Client_Layer ["Client Applications"]
Candidate["Candidate App<br/>(React + Vite)"]
Dashboard["Recruiter Dashboard<br/>(React + Vite)"]
end
subgraph API_Gateway ["API Layer"]
Express["Express.js API<br/>(TypeScript)"]
Auth["OAuth 2.0 Handler"]
RateLimit["Rate Limiter"]
end
subgraph Business_Logic ["Business Logic"]
MatchEngine["Intent Matching Engine"]
SwipeLogic["Swipe & Match Logic"]
ConstraintFilter["Constraint Validator"]
end
subgraph Data_Layer ["Data Persistence"]
Postgres[("PostgreSQL<br/>(Neon)")]
Redis[("Redis Cache<br/>(Upstash)")]
Cloudinary["Cloudinary<br/>(Image Storage)"]
end
subgraph External_Services ["External Services"]
Google["Google OAuth"]
GitHub["GitHub OAuth"]
LinkedIn["LinkedIn OAuth"]
end
Candidate --> Express
Dashboard --> Express
Express --> Auth
Express --> RateLimit
RateLimit --> MatchEngine
RateLimit --> SwipeLogic
MatchEngine --> ConstraintFilter
SwipeLogic --> Postgres
ConstraintFilter --> Postgres
Express --> Redis
Express --> Cloudinary
Auth --> Google
Auth --> GitHub
Auth --> LinkedIn