System Design Philosophy
InnoHire.ai follows a pipeline-first architecture โ meaning every user action (uploading a resume, triggering an evaluation, generating interview questions) maps to a discrete, ordered set of processing stages. This ensures predictability, debuggability, and modular scalability.
The platform is divided into three primary layers:
- Frontend Layer โ Next.js application serving the recruiter-facing UI, candidate portals, and document upload interfaces.
- API Gateway Layer โ A Python/FastAPI backend that validates requests, manages authentication, and routes to internal AI workers.
- AI Processing Layer โ The intelligence core: NLP parsers, embedding models, vector search engines, scoring modules, and output generators.
Request Lifecycle
When a recruiter submits a job description and one or more resumes, the following stages execute in sequence:
- Ingestion โ Raw files (PDF, DOCX, plain text) are received, validated, and queued.
- Parsing โ A rule-based + ML hybrid parser extracts structured fields: name, contact, education, work history, skills, certifications.
- Normalisation โ Dates are standardised, skill synonyms are resolved (e.g. "JS" โ "JavaScript"), and experience durations are computed.
- Embedding โ Both the job description and the normalised resume are passed through a sentence-transformer model to produce dense semantic vectors.
- Similarity Scoring โ Cosine similarity between the job and resume vectors produces a base match score.
- Multi-Factor Ranking โ Additional signals (skills gap, experience depth, role title alignment) are blended into the final composite score.
- Output Generation โ Structured results, screening questions, boolean strings, and email templates are generated and returned.
Infrastructure
The platform is deployed on a cloud-native stack:
- Frontend โ Hosted on Vercel with edge SSR for fast global delivery.
- Backend API โ Python FastAPI on a containerised runtime (Docker), auto-scaling via cloud compute.
- Database โ Supabase (PostgreSQL) for structured recruiter/candidate data and session management.
- Vector Store โ Embedding vectors stored and queried using a high-performance vector database for sub-100ms similarity search at scale.
- File Storage โ Resume documents stored securely with access-controlled object storage.
- Queue โ Async job queue manages bulk resume processing without blocking the request thread.
Security & Authentication
All API routes are protected via Supabase Auth JWT tokens. Role-based access control (RBAC) separates recruiter, admin, and candidate permission levels. Resume data is encrypted at rest and never used to train external models.
Scalability Considerations
InnoHire.ai is designed to process thousands of resumes per hour through horizontal scaling of the AI worker pool. The parsing and embedding stages are the most compute-intensive; they are isolated into stateless, independently scalable worker containers to avoid bottlenecking the API gateway.
The vector similarity stage scales with candidate volume using approximate nearest-neighbour (ANN) indexing, keeping query time constant even at millions of stored embeddings.
Observability
Every pipeline stage emits structured logs with timing, input hash, and output size. A centralised dashboard (internal) tracks P95 latencies per stage and surfaces regressions automatically. Error traces are captured with full request context for rapid debugging.