Inspiration
The job market is changing faster than people can retrain. Every job posting is a checklist of in-demand skills, but nobody tells you which ones you're missing or how to learn them. Here in Calgary, that hits students, new grads, newcomers to Canada and workers moving from traditional industries into tech. Most of them end up guessing: buying generic courses, watching random tutorials, or quitting halfway because learning feels like a chore.
We asked: what if the job posting itself became your learning path, and every missing skill was a stage you clear and a boss you beat?
What it does
SkillQuest turns any job posting into a personalized, step-by-step learning path, then turns that path into a game.
- Upload your resume and paste a job posting, in any field. AI reads the posting, rates your resume against each skill it asks for, and calculates your job match %.
- Get your quest map. Each missing skill becomes a stage, ordered by what the job needs most: two micro-lessons that build from the basics, then a boss fight.
- Learn by playing. Lessons start from your current level, give hints that never reveal the answer, and link to real tutorials found live on the web.
- Beat the boss. It's a timed battle of up to 6 questions that focuses on the concepts you missed earlier. Land 3 hits before you take 3.
- Turn learning into proof. Every boss you beat earns that skill and closes that gap in your job match. SkillQuest adds your earned skills to your resume, turns it into a PDF on your phone, and emails it to you, ready to apply.
Privacy and transparency: we never save your resume on our servers. It's kept on your phone and only passes through briefly for the AI to analyze it. We show you exactly which skills were added, and we never add a skill you haven't earned.
How we built it
- App: Expo (React Native) with TypeScript, Expo Router, NativeWind and Reanimated. One codebase for iOS, Android and web, with custom 8-bit pixel art and animations (the map, the running monkey, the boss battles).
- Backend: Supabase.
- Postgres with row-level security on every table, so users can only ever see their own data.
- Database functions for scoring and progress.
- Anonymous accounts, so anyone can start learning with no sign-up.
- Edge Functions written in Deno and TypeScript.
- AI team: each AI has one narrow job.
- Google Gemini API reads the posting, rates the resume, designs each stage and writes the questions, all with structured JSON output.
- A second Gemini pass answers every question without the answer key and throws out any it disagrees with.
- Keenable AI searches the web for tutorials for each lesson, at the same time as the questions are written. Our ranking code keeps the best 3 from trusted sources (official docs, freeCodeCamp and similar) and drops paywalls and spam.
- Plain code handles the math: gap analysis, job match, scoring and hint safety checks.
- Email: AWS SES sends the updated resume as a PDF.
- Just-in-time content: only the first stage is built up front, so the map is ready in about 20 seconds. Later levels and stages are created in the background while you play, and the boss is written after your first lesson so it can target what you missed.
Accessibility and inclusion
- No sign-up and no cost to start: you can try it in seconds, on any phone or the web.
- Longer timers setting for timed questions, and reduced motion that follows your phone's accessibility setting.
- Screen reader labels on interactive elements (map nodes, answers, buttons).
- Hints and tutorials on every lesson, so learners at any starting level can keep going.
- Privacy by design: resumes are never saved on our servers, every table is protected by row-level security, and emails are rate-limited to prevent abuse.
Feasibility and scalability
- Low cost per learner: we use Gemini Flash-Lite, a low-cost model, and generate content only when a learner needs it, so we never pay for levels nobody plays.
- Scales on managed infrastructure: Supabase (Postgres plus serverless Edge Functions) and AWS SES grow with usage, with no servers for us to run.
- Built for real-world reliability: retries on busy AI services, single-step database saves so content is never duplicated, and a guard so a retried request never builds a second plan.
- Path to adoption: campus career centres, newcomer employment programs and workforce retraining programs could hand SkillQuest to job seekers as a free first step.
Challenges we ran into
- Making AI content trustworthy. A learning game with wrong answers is worse than none. We added an AI examiner that double-checks every answer key, and code that makes sure hints never give away the answer.
- AI rate limits. The free tier capped how many requests we could make per minute and per day. We redesigned generation to be lazy and cut the AI calls per level.
- Background work racing itself. Questions being written in the background, retries and the player opening levels could all collide. We added database-level claims and single-step saves, so a level is never written twice.
- Shipping as a team of four in one weekend. We split the work into AI, backend/platform and two front-end roles, and merged everyone's work fast without breaking the game.
Accomplishments that we're proud of
- A full loop that works end to end: resume and posting → personalized quest map → lessons → boss fight → updated resume in your inbox.
- A real AI pipeline with checks, not a single prompt: every question is verified before a player sees it.
- Custom pixel art and animations that make learning feel like a game, not homework.
- Learning that becomes proof: the skills you earn go straight onto your resume.
- Quests that are personalized: built from your current level, with bosses that target what you got wrong.
What we learned
- Let each part of the system do what it's best at: flexible generation where creativity matters, and strict, predictable rules where accuracy matters. Checking every output before a user sees it is what makes a product trustworthy.
- Generating content just in time beats generating everything up front, both for speed and for staying within API limits.
- Concurrency bugs show up fast once things run in the background, so design for retries from day one.
- Good game feel (animations and visual feedback) changes how willing people are to keep learning.
What's next for SkillQuest
- Verifiable micro-credentials: issue a shareable badge for every boss beaten, for example with the open Badgr standard, so employers can check them.
- Mentor and peer matching: connect learners working on the same skill or role.
- Sign-in and sync so quests follow you across devices, plus spaced review so earned skills stick.
- More languages and accessibility testing with real learners, including newcomers to Canada.
AI usage disclosure
- In the product: SkillQuest uses the Google Gemini API (reading postings, rating resumes, designing stages, writing and checking questions, transcribing the resume for the revamp) and Keenable AI web search (finding tutorials).
- Building the project: we used AI coding assistants during the hackathon. Claude Code helped write portions of the code especially the original repo foundation and generating sprites.
Built with
expo, react-native, react, typescript, nativewind, tailwindcss, react-native-reanimated, supabase, postgresql, sql, row-level-security, google-gemini, gemini-api, keenable-ai, aws, amazon-ses, expo-print, pixel-art, mobile
Built With
- amazon-ses
- amazon-web-services
- expo.io
- gemini
- keenable-ai
- mobile-game
- nativewind
- pixel-art
- react-native
- supabase
- tailwindcss
- typescript