⚠️ SUPPORT TOOL ONLY — This system assists admissions committee decision-making. All final decisions must be made by the committee.
inVision Selector is an AI-powered student application evaluation support system for university admissions. It helps admissions committees make more informed decisions by:
- Importing student data from any format — PDFs, DOCX, XLSX, images, audio, video, ZIP archives
- Analyzing applications across 6 dimensions: Academic Merit, Motivation, Extracurriculars, Growth Trajectory, Essay Authenticity, and Recommendations
- Detecting AI-generated essays using stylometric analysis and LLM evaluation
- Scoring candidates on a 0-100 scale with full explainability
- Identifying strengths and weaknesses for each applicant
- Mitigating bias by explicitly checking for demographic/socio-economic proxy scoring
- Managing committee decisions (admit, waitlist, deny, defer, conditional)
Upload any file type for student applications:
- Documents: PDF, DOCX, DOC, TXT, RTF, ODT, TEX
- Spreadsheets: XLSX, XLS, CSV, ODS
- Images: JPG, PNG, GIF, BMP, TIFF, WEBP, HEIC
- Presentations: PPTX, PPT, ODP
- Audio/Video: MP3, WAV, MP4, MOV, etc. (Whisper transcription)
- Archives: ZIP, RAR, 7Z (bundled submissions)
Text is automatically extracted from supported formats. Missing data displays as N/A — never penalized.
Change the AI model from the UI settings panel. Defaults to Qwen 2.5 3B (fast, efficient):
- Qwen 2.5 3B (recommended default)
- Phi-3 Mini, Llama 3.2 3B, Gemma 2 2B
- Mistral 7B, Llama 3.1 8B, Qwen 2.5 7B
- Custom model names
| Dimension | Weight | What It Measures |
|---|---|---|
| Academic Merit | 25% | GPA, test scores, course rigor, achievements |
| Motivation | 20% | Program fit, genuine interest, career vision |
| Extracurriculars | 20% | Activities, leadership, community involvement |
| Growth Trajectory | 15% | Path traveled, resilience, learning from setbacks |
| Essay Authenticity | 10% | Human-written vs. AI-generated detection |
| Recommendations | 10% | Quality and specificity of recommendation letters |
- Python 3.10+
- Ollama installed and running
# Install Ollama from https://ollama.ai # Pull a small model (default): ollama pull qwen2.5:3b
cd invision-selector
pip install -r requirements.txt
# Optional: install document extraction support
pip install PyPDF2 python-docx openpyxl
# Start the server
uvicorn src.main:app --reload --host 0.0.0.0 --port 8000Windows: Run run.bat
Open http://localhost:8000 — 6 demo students auto-generated on first run.
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Dashboard |
/api/health |
GET | Health check + model info |
/api/students |
GET/POST | List / create student applications |
/api/students/{id} |
GET/PUT | Get / update student application |
/api/students/{id}/documents |
POST | Upload a document |
/api/students/{id}/documents/batch |
POST | Upload multiple documents |
/api/documents/{id}/download |
GET | Download a document |
/api/students/{id}/analyze |
POST | Trigger AI analysis |
/api/students/{id}/notes |
PUT | Update committee notes |
/api/students/{id}/decision |
PUT | Record committee decision |
/api/ranking |
GET | Ranked student list |
/api/settings/model |
GET/PUT | Get / change LLM model |
/api/demo/reset |
POST | Reset demo data |
fastapi— Web frameworkuvicorn— ASGI serveraiosqlite— Async SQLitehttpx— Async HTTP client (for Ollama)openai— Whisper API (optional)pydantic— Data validation
PyPDF2orpdfplumber— PDF text extractionpython-docx— DOCX text extractionopenpyxl— XLSX text extractionpython-pptx— PPTX text extraction
Hackathon prototype — for demonstration purposes.