PackHelper

A personal AI-powered companion app built for students at the University of Nevada, Reno. PackHelper helps you manage your academic and professional life in one place, tailoring your resume for job applications, organizing study plans, tracking your wellbeing, and letting you chat with an AI orchestrator that coordinates it all.

What It's For

PackHelper is a student productivity tool centered around three core areas:

  • Career - Upload your resume and a job posting, and the AI will tailor your resume specifically for that role and generate a polished PDF ready to submit.
  • Study Planning - Generate structured study plans based on your coursework, then refine them through conversation.
  • Wellbeing - Log daily check-ins tracking your mood, stress, and energy levels so you can stay aware of how you're doing over time.

An AI orchestrator ties everything together, so you can chat naturally and have it route your request to the right agent automatically.

What Inspired This

As a CS student, I was constantly switching between apps, one for my resume, another for scheduling, a third for job tracking, but none of them knew anything about each other. When burnout hit, no tool could connect the dots between my sleep schedule, my exam week, and my job deadlines. I wanted something that understood the full picture.

I also wanted to go beyond a single chatbot and build something architecturally interesting. A system where specialized agents have distinct roles and hand off work to each other. PackHelper gave me a real problem worth solving and a genuine reason to learn how to build that kind of system.

Challenges

Learning C# and .NET 10 from scratch mid-build. I came in with a Java / Python background and had to pick up C#, ASP.NET Core Minimal APIs, and the Agent Framework simultaneously. GitHub Copilot helped close gaps, but understanding the DI container, nullable reference types, and async patterns in C# still required real time to internalize.

Wiring agents that actually share context. The hardest architectural problem wasn't building each agent in isolation, it was making them aware of each other. Getting the Study Planner to respect the Wellbeing Monitor's burnout signals, and having the Orchestrator route cross-domain queries cleanly, required rethinking how context flows between agents entirely.

Building on a framework that shipped days before the hackathon. Microsoft Agent Framework 1.0 dropped April 7th days before I started. There were no tutorials, no community examples. Everything came from reading the official docs and trial and error.

How It Was Built

Backend

  • ASP.NET Core (.NET 10) - REST API handling all application logic
  • Microsoft.Agents.AI (Anthropic) - Multi-agent AI layer powered by Claude. Agents include:
    • OrchestratorAgent - routes user input to the appropriate agent
    • ResumeTailorAgent - adapts a resume to a specific job description
    • JobExtractionAgent - pulls structured data out of raw job postings
    • StudyPlannerAgent / PlanModifierAgent - creates and updates study plans
    • WellbeingAgent - handles wellness check-in conversations
    • ClassifyAndExtractAgent - classifies intent and extracts context
  • SQLite - Lightweight local database, auto-initialized on first run via DatabaseInitializer
  • QuestPDF - Generates tailored resume PDFs

Frontend

  • React 19 + TypeScript - Component-based UI
  • Tailwind CSS 4 - Utility-first styling

Built With

Share this project:

Updates