ICRIS β Intelligent Centralized Recruitment Information System
Live demo (Hugging Face Space): after deploy, open the Space URL and sign in.
Production-style academic final-year project built with Python, Django, MySQL (or SQLite), HTML, CSS, and JavaScript.
Demo logins (password for all: Demo@12345)
| Role | Username |
|---|---|
| Admin | admin |
| HR Officer | hr.officer |
| Hiring Manager | hiring.manager |
| Applicant | applicant1 |
Purpose
Automate candidate profile evaluation, reduce manual screening load, and improve HR decision-making with transparency and explainability, while enforcing a strict human-in-the-loop principle:
AI analyzes, scores, explains, and recommends β authorized humans review and approve before the system executes important decisions.
Five project objectives
- NLP candidate analysis β detect skills, qualifications, experience; normalize; match requirements with evidence
- Vacancy-specific screening, matching, scoring, ranking, recommendations (no universal employability score)
- CV parsing β PDF/DOCX/text β structured data; original file preserved
- Full vacancy management β create/edit/publish/close/archive with weights, thresholds, skills, screening questions
- Explainable recommendations β component breakdown, matched/missing requirements, human decisions & audit trail
Roles (RBAC)
| Role | Login (demo) | Focus |
|---|---|---|
| System Administrator | admin |
Users, scoring config, skills, templates, audit |
| HR Officer | hr.officer |
Vacancies, workspace, shortlist/rejection, interviews, notifications |
| Hiring Manager | hiring.manager |
Assigned vacancies, AI explanations, feedback |
| Applicant | applicant1 β¦ applicant6 |
Profile, apply, journey tracker |
Password for all demo accounts: Demo@12345
Pipeline (enforced)
APPLIED β SCORED β PENDING REVIEW
β SHORTLISTED (DRAFT) or REJECTED (DRAFT)
β SHORTLIST APPROVED or REJECTION CONFIRMED
β INTERVIEW SCHEDULED β NOTIFICATION QUEUED β NOTIFIED
Draft shortlists/rejections never send messages automatically. Notifications follow:
Decision β Human approval β Queue β Process β Delivery β Audit
Quick start
cd tawanda
python -m venv .venv
# Windows:
.venv\Scripts\activate
pip install -r requirements.txt
# Default: SQLite (demo). For MySQL set ICRIS_USE_MYSQL=1 and MySQL env vars.
python manage.py migrate
python manage.py seed_demo
python manage.py runserver
Open http://127.0.0.1:8000/ and sign in as hr.officer.
MySQL (optional)
# Create database icris_db, then:
set ICRIS_USE_MYSQL=1
set MYSQL_DATABASE=icris_db
set MYSQL_USER=root
set MYSQL_PASSWORD=yourpassword
set MYSQL_HOST=127.0.0.1
python manage.py migrate
python manage.py seed_demo
Demonstration journey (examiner)
- Objective 4 β HR β Vacancy Management β open/create/publish vacancy with weights & skills
- Objective 3 β HR dashboard β Objective 3 βView/Demonstrateβ β Original CV vs structured extraction
- Objective 1 β NLP Analysis β Detected β Normalized β Matched β Unmatched
- Objective 2 β Ranking for a vacancy β scores, component breakdown, filters
- Objective 5 β Evaluation detail β overall + components + evidence + decision timeline
- Operations β Shortlist draft β Approve β Interview batch β Notification queue β Process
- Rejection β Rejection queue β Confirm / Rescue with reason β queue
- Switch roles: Admin config Β· HM feedback Β· Applicant journey (no confidential scores)
Project layout
icris/ Project settings & URLs
accounts/ Users, RBAC, registration
core/ Org, departments, skills, scoring config
vacancies/ Vacancy CRUD, progress tracker
applications/ Apply, CV storage, parser
evaluation/ NLP engine, weighted scoring, explainability
workflow/ Shortlist, rejection, interview batches
notifications/ Controlled queue (email primary; SMS future)
audit/ AuditLog + decision timelines
dashboards/ Role-specific workflow dashboards
templates/ Enterprise HR UI
static/ CSS (status colour scheme) & JS
Status colour scheme
| Colour | Typical use |
|---|---|
| Blue | Applied / primary actions |
| Purple | Scored / AI / interview |
| Yellow-amber | Pending review |
| Orange | Shortlist draft / attention |
| Green | Approved / success |
| Red | Rejection draft / danger |
| Dark | Notified / admin chrome |
Security notes
- Django auth + password hashing, CSRF, session cookies
- Server-side RBAC and object-level checks (not UI-only)
- CV upload extension/size validation
- ORM queries; no blind auto-send of notifications
Tests / verification
After seeding, confirm varied scores for Django vacancy (excellent vs sales CV), then walk each role login and objective link on the HR dashboard.