ScreenAI Lab
Independently built recruitment platform supporting 312 registered users and 248 submitted applications, with rubric-based LLM scoring, identity masking, document-grounded evidence, and recruiter review.
- 312
- registered users
- 248
- submitted applications
- 4
- division-specific rubrics
My role
Sole developer of the ScreenAI Lab adaptation — independently designed, developed, and deployed the platform, including the React interface, FastAPI backend, LLM scoring integration, evaluation workflow, and production operations.
Problem
MBC Laboratory needed to manage a recruitment cycle across four divisions, collect candidate documents, and help recruiters assess applicants against each division's requirements. Reviewing documents and comparing candidates manually made it difficult to apply a consistent rubric and trace the evidence behind a score.
The platform needed to support the full workflow: candidate registration and submission, identity masking, competency evaluation, recruiter review, and publication of recruitment results.
Approach
I independently developed ScreenAI Lab by adapting the original ScreenAI capstone into an operational recruitment platform. A React candidate portal collects six document types, while a FastAPI backend manages applications, recruitment periods, division-specific rubrics, and recruiter access.
PyMuPDF extracts document text, and pretrained IndoBERT NER supports identity masking before evaluation. The scoring service builds context directly from the selected rubric's dimensions, weights, and indicators, then sends that context and the processed candidate documents to the DeepSeek API. Structured responses contain dimension-level scores, document-grounded justifications, supporting evidence, and a profile summary.
Recruiters inspect rankings, competency radar charts, score breakdowns, and evidence before making a decision. They can review documents and override scores with a documented reason. I deployed the platform using Docker on Google Cloud Compute Engine and refined it through three development-to-staging cycles before a two-week recruitment period.
Results
- Supported 312 registered users and 248 submitted applications across four recruitment divisions.
- Delivered the candidate portal, six-document submission workflow, rubric-based evaluation, recruiter dashboard, score overrides, and result announcements.
- Tested scoring repeatability through repeated evaluations of staging applications submitted by approximately 40 laboratory assistants across four rubrics. All tested samples stayed below a three-point score difference on a 0–100 scale.
- Operated the platform throughout a two-week recruitment period after three development-to-staging cycles.
- Listed co-creator on Indonesian registered software copyright No. 001460172 (2026).
Architecture
React provides candidate, recruiter, and administrator interfaces. FastAPI handles authentication, recruitment periods, document submission, anonymization, and batch evaluation, with PostgreSQL storing application data, rubrics, scores, and review records. Docker Compose packages the frontend, backend, and database for deployment on Google Cloud Compute Engine.
The scoring path constructs rubric context directly from database dimensions and indicators, combines it with the processed candidate text, and calls the DeepSeek API for structured JSON output. The current implementation does not perform live vector retrieval; LangChain and ChromaDB are retained dependencies rather than active retrieval components in this path.
Technical decisions
- Direct rubric context: include the selected division's dimensions, weights, and indicators in the prompt so recruiters can adjust criteria through the platform.
- Pretrained Indonesian NER: integrate IndoBERT for identity masking in predominantly Indonesian recruitment documents.
- Structured responses with evidence: return scores, justifications, and supporting document evidence in a format the dashboard can display and recruiters can inspect.
- Human review and overrides: keep recruiter judgment in the workflow and record reasons when a score is changed.
- Staging before recruitment: use three development-to-staging cycles and repeated scoring checks before operating the system for applicants.
Lessons
- Repeatability is one part of evaluation: the below-three-point result measures consistency on the staging samples tested. It does not establish hiring accuracy or demographic fairness.
- Evidence and review matter: identity masking, document-grounded justifications, and documented overrides help recruiters inspect the system's output while retaining responsibility for decisions.
- Operational workflows shape the product: candidate submission, document review, period management, and result publication require as much attention as the scoring integration.
Stack
Production dashboard
The dashboard above shows a preview restored from the production database, supplied for this portfolio update on 23 October 2026. It records 312 registered accounts, 248 submitted applications, and 189 applications with an AI composite score in the displayed snapshot. Submitted applications and AI-scored applications are separate workflow counts.
Open the dashboard screenshot at full resolution.
Competency evaluation
The evaluation view combines a competency radar chart, a score breakdown, and dimension-level justifications with supporting evidence. Candidate text is blurred in the supplied preview.
Recruiters can inspect individual competency scores and the evidence behind them, then document a reason when overriding a score.