Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for ALUHUB

Inspiration

I think the problem is simple but real: ALU provides students with many opportunities each week across LinkedIn, job boards, email, WhatsApp, and partner websites. So first, you need to filter them to see which one you fit, which might take you hours or days, and you might get tired quickly. I’ve done college applications two times; I understand how hard it is to see if you fit, even for opportunities. That is the reason behind ALUHUB —A platform built just for ALU students. One place. Filtered for them. With AI as their career coach.

What it does

ALUHub is an AI-powered internship and jobs platform built for ALU students.

*For students:

  • Upload your resume once
  • System automatically filters opportunities you're eligible for
  • AI scores each job: "87% match — you have Python, they need Python. But you need SQL."
  • AI research companies: "What they do. What interviews are like. How to prepare."
  • AI helps write cover letters: Draft → Critique → Refine
  • AI interview prep: Practice with Compass, get feedback
  • Apply in seconds — either on our form or the company's site

For schools & companies:

  • Post internships once
  • Control who sees what (Year 3+ only? All years?)
  • For school choose that only your students can see with this Domain.
  • Choose: students apply on our form or an external link
  • See where students actually get hired

Result: Students find internships faster. Companies get better-matched applicants. Schools have a fair, controlled system.

How we built it

Frontend:

  • React (root ALUHub.js) + Vite (client scaffold)
  • Deployed on Cloudflare Pages
  • Progressive Web App (PWA) — installable on mobile, push notifications, offline support

Backend:

  • Node.js + Express + TypeScript
  • Deployed on Render
  • Custom auth (bcrypt, JWT tokens)

Database:

  • PostgreSQL via Supabase
  • Custom app_users table (not Supabase Auth)
  • ai_match_cache for instant scoring
  • RLS for privacy

AI (Claude API):

  • Job Matching — Claude Sonnet scores resume vs. job description (0–100%)
  • Company Research — Claude researches company for student prep
  • Career Chat — Claude answers questions, builds plans
  • Interview Prep (Compass) — Multi-turn agentic guide, persistent sessions
  • Application Coach — 3-stage pipeline: Draft → Critique → Refine

Key feature:** Prompt caching on all Claude calls — faster, cheaper, smarter.

Challenges we ran into

  1. Scaling AI across 500+ students

    • Problem: Claude API costs add up fast with 40+ job scoring per student
    • Solution: Prompt caching + model routing (Sonnet for high-volume, Opus for quality)
  2. Year-based filtering with eligibility

    • Problem: Simple "Year 1–4" dropdown wasn't enough — students have different eligibility
    • Solution: System reads resume + profile, filters automatically based on what student can apply for
  3. Data privacy with AI

    • Problem: Can't send full resume to Claude — identity risk
    • Solution: Send only anonymized preferences + job descriptions. Claude never sees the student's name/email
  4. React error with cached match data

    • Problem: Old database format ({label, detail}) didn't match new component expectations
    • Solution: Normalize data on load — handle both old and new formats gracefully
  5. PWA + offline support

    • Problem: Service worker caching conflicts with real-time job updates
    • Solution: Hybrid strategy — cache UI shell, fetch fresh listings when online

Accomplishments that we're proud of

Built a complete platform — Students, schools, companies all have what they need

AI that actually helps — Not just a chatbot. Job matching that scores 87% vs 45%. Company research that prepares you. Interview simulation that gives feedback.

Privacy-first design — AI helps without seeing student identity. Data stays on platform.

Mobile-first — Full PWA. Installable. Works offline. Push notifications.

Smart caching — 41 cached matches load in seconds. Claude caching saves cost + latency.

Fair system — Schools control access. Year restrictions enforced. No random jobs from LinkedIn noise.

Flexible apply — Students choose: quick form on ALUHub or the company's site. Companies stay in control.


What we learned

  1. AI is best when it does one job well — We didn't try to replace the entire career process. We focused on matching + research + prep. That focus made it work.

  2. Privacy and security matter at scale — When 500+ students trust you with resumes, you can't be careless. We learned to think like attackers (prompt injection, data leaks, prompt caching tradeoffs).

  3. Caching is a multiplier — Prompt caching cut our Claude costs by 3–4x AND made responses faster. Worth the complexity.

  4. Students want speed, not features — "Find internships in 2 minutes not 15" resonates more than "AI coach with 50 features."

  5. Database design matters — Custom auth table, RLS policies, ai_match_cache — good design prevented 10 bugs later.

  6. Test with real data — We caught the React error because we tested with actual cached matches. Synthetic test data missed it.


What's next for ALUHub

Phase 2: Direct company partnerships (next 3 months)

  • Companies sign contracts to post directly (Andela, Flutterwave, etc.)
  • Still respect ALU rules (year restrictions, fair access)
  • More opportunities, faster posting

Phase 3: Expand to other schools (6+ months)

  • Other African schools use the same platform
  • Each school curates for their students
  • Network effect — more companies, more opportunities, more schools

Phase 4: Career ecosystem (2026)

  • Skills marketplace — connect with peers learning Python, design
  • Housing board — find roommates near internship companies
  • Full career journey — from discovery to first job

Our vision: Every African student has access to world-class career coaching, opportunity discovery, and interview prep. Not because they can afford a $500/month coach. Because they earned their spot at a great university.


Built with ❤️ for ALU. Powered by Claude AI.

Built With

  • .env-local)-summary-languages:-javascript
  • anthropic-claude-api-databases:-postgresql-(via-supabase)-key-libraries:-bcrypt
  • claude-sdk-cloud-services:-cloudflare-pages
  • dart
  • deployment-ci/cd-via-github-actions-(android-apk-auto-build)-environment-variables-for-api-keys-(render-dashboard
  • express.js
  • flutter
  • jwt
  • markdown-frameworks:-react
  • render
  • sql
  • supabase
  • supabase-client
  • supabse
  • typescript
  • vite-platforms:-cloudflare
Share this project:

Updates