Inspiration

Job applications take a disproportionate amount of time relative to the feedback and learning opportunities they give you. Two kinds of students tend to struggle most: those who don't know where to start and spend hours on a single application, and those who automate everything and send the same generic resume to fifty jobs and wonder why nothing sticks.

We were both. Neither approach works, and we couldn't find a tool that addressed the actual problem: which isn't just finding jobs, it's presenting yourself well for each one, and actually being able to improve over time. The AI tools that do exist tend to do the work for you, rather than with you - resulting in a slightly better resume that ultimately blocks the user from ever improving or learning from each experience.

We want to build a better applicant with each submitted application, not just a better application.

What it does

LandIt is a swipe-based internship app that matches students to real roles and actively helps them get hired, and improve their own job seeking capabilities from the ground-up.

Swipe: Tinder-style job discovery personalised to your degree, skills, and location. Keeps the app engaging and the job search accessible for people throughout their day.

Auto-tailor: Reshapes your resume to each role in seconds, ATS-optimised and grounded only in what's already on your resume. Nothing fabricated, everything yours.

AI Coach: Step-by-step guided coaching that walks you through every resume change, explains the reasoning behind it, and teaches you to do it yourself. Upskilling you, not replacing you.

Job Detail View: Full role breakdowns with requirements, skill match, document checklist, and application timeline, all in one place.

Boarding Passes: Every application becomes a boarding pass tracked on a live animated globe, updating as you move through the hiring process.

Passport: Your personal profile tracking stats, skills, applications, and achievement stamps.

How we built it

We started with a whiteboard, a lot of bad ideas, and one really good one. When the concept clicked, we split into four lanes: one person scraping and seeding real job listings, some on Figma and the full frontend experience, one building the AI pipeline and backend, and one on CI/CD and keeping the whole thing actually deployed and not on fire. The stack was React 19, Tailwind, Supabase for auth, database, storage and edge functions, pgvector for semantic search, and Claude Sonnet via OpenRouter powering all the AI features. None of us had used Supabase before. We figured it out anyway. Everything was learned and shipped within 48 hours. Fuelled by pizza and an irresponsible amount of GYG!

Challenges we ran into

Building LandIt involved several interconnected technical challenges. Structuring the Supabase schema required careful planning around four linked tables - profiles, users, jobs, and user_jobs; with RLS policies that allowed the right access at each layer without blocking the Edge Function's service role.

Authentication was a recurring friction point: getting the JWT from the frontend session to validate correctly inside the Edge Function took significant debugging, as did ensuring new signups automatically propagated through the auth.users → profiles → users chain via database triggers.

The resume parsing pipeline required coordinating Supabase Storage, an Edge Function, OpenRouter's Claude API, and pgvector embeddings in sequence. Any broken link failed silently, and we had to trace back through a quite extensive variety of 2XX, 3XX, 4XX and 5XX error codes during development. On the frontend, keeping a consistent design system coherent across a team updating pages and vibe-coding simultaneously, with shared CSS variables and aviation-themed language, required discipline to maintain under hackathon time pressure.

Accomplishments that we're proud of

Three-layer job matching: skill intersection, TF-IDF, and pgvector embeddings work together so "ML engineer" finds "machine learning developer., as no single method is reliable enough on its own.

Zero-fabrication coaching: the claude model called during regime coaching quotes exact lines from your resume, every suggested change shows a before/after, and nothing updates until you approve it. The output is that of the user.

The aviation metaphor: you board flights, collect passport stamps, track applications on a live radar. It started as a design choice and ended up making the whole thing more engaging to actually use.

Simple, maintainable and cheap infrastructure: Supabase handles auth, Postgres, pgvector, storage, and serverless functions in one platform. OpenRouter means we can swap the underlying model in one line.

Resumes can jailbreak LLMs: we sanitise every upload and validate all Claude responses with Zod before anything touches the database.

What we learned

We learned that the best hackathon projects come from building something you actually need. Every design decision we made was grounded in a real frustration we'd personally experienced as students applying for internships, which made the product sharper and the pitch easier.

Technically, we deepened our understanding of backend development.

What's next for LandIt

We still have some kinks to iron out in the resume coach, and want to spend time optimising the current workflow to massively increase the speed of resume tailoring and resume parsing.

We also currently only offer support sfor software engineering/software development roles, and in future we want to expand to many other roles (largely in the IT/data space).

Some other cool features we would like to add is allowing users to select a format for their updated regime, and also adding in an entirely separate tab for interview prep and assistance - for both AI & human-led interviews to best prepare our users across the whole stack of a job application.

Live Job Data: Integrating with our job scrapper system (legal as we do not use the data directly for commercial use), across Seek & Indeed as well as LinkedIn Mobile App: Develop into an iOS app for users to swipe on phones. Edit the infrastructure for full deployment capability and handling a large user base.

Built With

+ 1 more
Share this project:

Updates