Ben Llados
All projects

Apply180

Recruitment software for 180 Degrees Consulting at USC.

Role
Designed and built it
Status
In use for the Fall 2026 cycle
Built for
180 Degrees Consulting at USC
About two dozen members of 180 Degrees Consulting at USC in business attire, posed in front of a brick arcade on campus
180 Degrees Consulting at USC.

What it is

The chapter used to run recruiting across Google Forms, Drive folders, spreadsheets, and email. Apply180 puts the whole cycle in one place: applications, written review, interviews, a team case, deliberation, and decisions.

More than 500 applicants are going through it in the Fall 2026 cycle. The chapter admits roughly 8 to 15 people, and people make every decision.

Three workflows

  • Applicants

    Apply, upload a private resume, edit until the deadline, and book an interview and a team-case session.

  • Reviewers and interviewers

    Score anonymous applications against a rubric, run interviews, and grade team cases, with work spread evenly across members.

  • Administrators

    Set up the cycle, staff each round, run deliberation, record decisions, and send the emails that follow.

See it working

The reviewer view of Apply180: an assignment queue of anonymous applicant codes, a scored written application with no name attached, and interview and team-case evaluation forms.
Reviewer: a queue of anonymous codes, a rubric, and a panel listing what a reviewer cannot see.
The applicant view of Apply180: a written application with saved drafts and a progress bar, a private resume upload, a review-your-answers screen, and interview and team-case booking.
Applicant: apply, save a draft, upload a resume, and book both sessions.
The administrator view of Apply180: cycle overview, applicant records, written review progress and balanced assignment, interview scheduling, team-case sessions, deliberation, decisions, email campaigns, conflicts of interest, and launch readiness.
Administrator: staffing, assignment, scheduling, deliberation, decisions, and email.

Recorded in the seeded test environment. Every name, essay, and score is a fixture, and the counts are from the test cycle rather than the live one.

Anonymity and access

  • Reviewers see an applicant code and the answers marked for review, with no name, email, GPA, or resume. The database enforces this, not just the interface.
  • Anonymity covers identifying fields, not what an essay says, so reviewers declare conflicts of interest up front.
  • Demographic answers are never available to reviewers.
  • Paired interviewers can’t see each other’s scores until both have submitted.
  • Nothing advances or rejects an applicant automatically.
  • Recording, releasing, and emailing a decision are separate steps, and emails can only use approved fields, so no score or reviewer note reaches an applicant.
Technical details

Next.js 16 and React 19 in TypeScript, on PostgreSQL through Supabase with Auth and private storage, plus Tailwind, Resend, and Vercel. The access rules live in the database as row-level security policies, functions, triggers, and constraints, so they apply whichever client is asking.

Decisions

  • No automated admissions decisions

    No ranking formula, composite score, threshold, or model. Scores go to the committee as evidence.

  • No AI-detection system

    Detectors produce false positives, and the cost of one falls on the applicant. Applicants acknowledge a written AI-use policy instead.

  • No double booking

    Overlapping interview and team-case bookings are rejected where the data is written, not only in the browser.

  • One complete cycle first

    Event management, document management, and historical analytics were specified and left out of the first release.

Testing

47 unit suites, 20 database-authorization suites, and 35 browser end-to-end suites, plus concurrency race tests, a 1,200-application performance fixture, and WCAG 2.2 AA checks.