TheSas

Applicant triage built around messy real data

ApplicantSorter (WPF)

Desktop .NET tool that takes applicant CSVs, matches them against ranking data, and exports files that are easier for collaborators to review.

ApplicantSorter turns messy CSV intake into review-ready files. The hard part is matching inconsistent real-world data without losing the context reviewers need.

System map

Architecture

Two imperfect data sources enter a deterministic pipeline. Normalization makes them comparable, rules classify each row, and the export keeps both the source context and the decision trace.

  1. 01

    Source files

    • CSVApplicant CSV
    • CSVRanking data
  2. 02

    Normalization

    • Countries + subjects
    • .NET 8University names
  3. 03

    Decision engine

    • Ranking match
    • C#Category + reason
  4. 04

    Review files

    • CSVAccepted / Rejected
    • ClosedXMLEU / non-EU workbooks

Decision log

Technology choices

What each technology is responsible for, and why it belongs in this project.

TechnologyResponsibilityWhy this choice
.NET 8 / C#

ResponsibilityImport, normalization, and classification rules

Why this choiceThe pipeline is strongly typed, file-oriented, and rule-heavy. C# keeps the transformations explicit and testable.

CSV

ResponsibilityInput and lightweight exchange

Why this choiceIt matches the files already supplied by collaborators and avoids imposing a new intake system before the sorting step.

Normalization layer

ResponsibilityComparable country, subject, and university values

Why this choiceApplying rankings to raw labels would produce unreliable results. Canonical values make the later rules explainable.

ClosedXML

ResponsibilityReadable review workbooks

Why this choiceReviewers need the original columns plus ranking and reasoning fields. XLSX supports that richer handoff better than CSV alone.

Next