This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
The Story: Building for a Friend Under a Mountain of PDFs
My close friend is a 3rd-year Computer Science undergraduate at NIT Karnataka, Surathkal in India. Like thousands of ambitious students around the world, their dream is to pursue a Master's degree abroad in AI and Distributed Systems.
A few weeks ago, I watched them spend an entire weekend buried under a mountain of open browser tabs: DAAD in Germany, EduCanada, Fulbright in the US, and Chevening and Commonwealth in the UK. Each scholarship program had 40- to 80-page PDF guidelines filled with dense institutional jargon:
- "Does a 4-year Indian B.Tech degree count as final-year standing right now?"
- "Does an 8.4 / 10 CGPA meet the 'first-class honours or 2:1 equivalent' threshold?"
- "Does a national hackathon finalist certificate satisfy 'demonstrated community leadership'?"
Existing scholarship portals were useless: they either acted as clickbait lead-generation farms or slapped an opaque "87% Match" badge on a card without explaining why they qualified. The alternative—spending 20 hours drafting an essay only to be rejected over a technical disqualifier buried on page 52—was heartbreaking.
I built Deadline Buddy for my friend.
What Deadline Buddy Does
Deadline Buddy turns scholarship discovery into a transparent, stress-free 5-step loop:
- 📄 Zero-Friction Document Intake: Drop in unofficial transcripts, resumes, or certificates (PDF, DOCX, TXT) or click the 1-click sample button.
- 👤 Structured Profile Extraction: The system extracts key attributes (GPA, current year of study, degree, graduation year, skills, achievements) into an editable profile with supporting document quotes.
- 🌍 Destination Personalization: Pick a target country (USA, Canada, UK, Germany, Australia, Netherlands, Singapore, Japan), immediately contextualizing currencies, deadlines, and official guides.
- ⚖️ Deterministic Eligibility Matching: Instead of letting an LLM guess eligibility, pure deterministic code evaluates published requirements against the profile, categorizing each award into Eligible (✓), Needs Verification (🟡), or Not Eligible (✕).
-
🔍 The Signature "Why?" Evidence Drawer & AI Strategy Advisor:
- Clicking any status badge reveals a side-by-side audit trail: the exact published clause, the student's extracted evidence, the source document quote, and a link to the official university portal.
-
⚡ Ask Open AI Strategy Advisor: Generates a personalized gap plan with feasibility scoring and alternative scholarships. -
🧪 Open AI Guideline Lab: Paste raw institutional PDF announcements to test real-time guideline extraction.
- ⏳ Deadline-First Shortlist: Saved opportunities are prioritized by nearest deadline so students never miss an application window.
Demo
- 🌐 Live Deployed Application: https://deadline-buddy-nine.vercel.app/
- ⚡ 1-Click Judge Walkthrough: On the landing screen, click
⚡ Load Sample Student Documents (1-Click Demo)to instantly populate a real-world academic profile and test the deterministic rules engine across 26 real scholarships!
Code
🎓 Deadline Buddy — The Open-Source Scholarship Compass
"Find scholarships you're actually eligible for — without reading hundreds of PDF guidelines."
Built for the Hacktoberfest 2026 Weekend Challenge: Build for a Friend.
📖 The Story: Building for a Friend
My close friend is a 3rd-year Computer Science undergraduate at NIT Karnataka, Surathkal in India. Like thousands of ambitious students worldwide, their dream is to pursue a Master's degree abroad in AI and Distributed Systems.
A few weeks ago, I watched them spend an entire weekend buried under dozens of open browser tabs: DAAD in Germany, EduCanada, Fulbright in the US, Chevening and Commonwealth in the UK. Each scholarship program had 40- to 80-page PDF guidelines filled with dense institutional jargon:
- "Does a 4-year Indian B.Tech degree count as final-year standing right now?"
- "Does an 8.4 / 10 CGPA satisfy the 'first-class honours or 2:1 equivalent' threshold?"
- "Does a…
- GitHub Repository: https://github.com/guptapiyush16/Deadline-Buddy
-
Tech Stack: React 19, TypeScript, Vite, Tailwind CSS, Vitest (11/11 passing tests), Client-side PDF/DOCX Parsing (
pdfjs-dist+mammoth). - Zero API Keys Required: Runs 100% in-browser on client hardware with 0 external API dependencies.
How I Built It
The Architecture: Open AI for Extraction, Code for Truth
The single biggest engineering mistake in AI applications is letting a non-deterministic LLM make hidden decisions. If you ask an LLM: "Does this student qualify for this scholarship?", it will frequently hallucinate or give inconsistent answers.
Deadline Buddy is built on a defensible, split-brain architecture:
- Open-Source AI / Open Weights: Used where language models excel — extracting structured JSON from messy PDFs/transcripts and explaining complex mismatches in plain English.
- Deterministic TypeScript Code: Used where mathematics and logic belong — comparing GPA scales, academic years, and citizenship lists.
[ Uploaded Documents (Resume / Transcripts / Certificates) ]
│
▼
┌─────────────────────────────────────────────────────┐
│ Open-Weight Extractor / Local AST Document Pipeline │
└──────────────────────────┬──────────────────────────┘
│ (Structured JSON Profile + Quotes)
▼
┌─────────────────────────────────────────────────────┐
│ Deterministic Code Rules Engine │
│ (shared/eligibility.ts) │
│ │
│ Requirement Student Profile Result │
│ ───────────────────────────────────────────────── │
│ Citizenship: India India ✓ │
│ Min GPA ≥ 7.5 8.4 / 10 ✓ │
│ Final Year Standing 3rd year of 4 ✕ │
└──────────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Three-State Explainable Evaluation │
│ 🟢 Eligible 🟡 Needs Verification 🔴 Ineligible
└──────────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Interactive "Why?" Evidence Drawer & Shortlist │
│ • Exact supporting quotes from your documents │
│ • Open AI Strategy Advisor with gap workarounds│
└─────────────────────────────────────────────────────┘
The Three Eligibility States
- 🟢 Eligible: Every checkable published requirement strictly passes.
- 🔴 Ineligible: A hard rule failed (e.g. scholarship requires a completed Bachelor's degree, but the student is currently in year 3).
- 🟡 Needs Verification (The Crucial Third State): The scholarship requires subjective criteria (like "community leadership") or university nomination that cannot be conclusively proven from the transcript. We refuse to guess or hallucinate an approval when proof is missing.
The GPA Uncertainty Band
International GPA scale conversions vary across universities. Deadline Buddy enforces an explicit uncertainty threshold:
typescript
const diff = studentGpaRatio - requiredGpaRatio;
if (diff >= GPA_UNCERTAINTY_BAND) return check(req, "pass", ...);
if (diff <= -GPA_UNCERTAINTY_BAND) return check(req, "fail", ...);
return check(req, "unknown", ...); // Refuse to guess borderline scores!

Top comments (0)