Architecture

System Architecture

DeepScreen deploys ML inference directly inside a single Rust/Rocket process, eliminating inter-process serialization on the hot path.

Technology Stack

ComponentTechnologyDetail
Inference ServerRust + RocketGIL-free, zero-cost abstractions
ML Runtimeort crate (ONNX Runtime)Zero-copy tensor access
Embedderall-mpnet-base-v2 ONNX INT8110 MB, 768-d vectors
Cross-Encoderms-marco-MiniLM-L12-v2 ONNX INT834 MB, batched
PDF ExtractionEdgeParse (Rust)Pure Rust, no JVM/GPU
LLM StructuringGroq APITwo-stage: structure then extract
Vector DBQdrant via gRPCp50 1.11ms vs 2.40ms REST
Desktop ClientReact + Tauri<10 MB binary, OS-level APIs
Offline TTSsherpa-onnx + Supertonic 399M params, CPU
Real-Time VideoLiveKit SFU80-150ms audio latency

Data Flow

Upload Path

Resumes uploaded via React frontend to Rocket API. EdgeParse extracts Markdown, Groq produces ResumeData JSON. Four ONNX embeddings stored across Qdrant collections.

Shortlist Path

Job descriptions embedded and searched against Qdrant via gRPC. Top 2K candidates pass through cross-encoder and BM25. Results flow to recruiter dashboard via REST.

Interview Path

Shortlisted candidates launch Tauri client. Stage 1 (coding) with OS proctoring. Stage 2 (AI avatar) offline TTS + browser STT. Stage 3 via LiveKit WebRTC.

Key Design Decisions

Rust over Python

3-5x speedup, 60-80% less memory on inference hot path

INT8 Quantization

74.7% model reduction (570MB to 144MB) with <0.8pp loss

gRPC over REST

2.2x lower p50 latency, 75% smaller Protobuf payloads

Tauri over Electron

<10MB vs 80-120MB, OS-level syscall access

Section-wise Embedding

+11.4pp Precision@10 over whole-doc embedding

Offline TTS

Fully air-gapped, no cloud dependency