MemoryVerse AI '26
Overview
1. The Problem Every student accumulates a scattered digital footprint over the course of their academic and professional life — certificates from online courses, resumes revised every semester, internship offer letters, project reports, GitHub repositories, and informal achievements like leading a club or winning a hackathon. These live across email inboxes, cloud drives, and local folders, and none of the platforms that store them actually understand what they mean or how they connect to one another. Skein was built to solve this specific gap: not another storage bucket, but a system that reads what a student uploads, understands it, and turns it into a structured, connected, and instantly searchable record of their growth. 2. What Was Built Skein is a full-stack web application with two parts. The backend is a Node.js and Express server that owns user accounts, document storage, and every AI operation, so that the intelligence of the system runs on a real server with a real API key rather than depending on any special sandboxed environment. The frontend is a single-page application served by that backend, styled around a dark "ink and gold" identity — Fraunces serif for headings to evoke a credential or transcript, Inter for body text, and JetBrains Mono for metadata — with a live force-directed knowledge graph as the visual centerpiece of the product. Authentication is handled properly rather than symbolically: passwords are hashed with bcrypt before they ever touch storage, sessions are signed JSON Web Tokens with a thirty-day expiry, and every document and AI request is scoped to the logged-in user's account on the server side, not just hidden in the browser. Documents are persisted in a lightweight file-based database on the server, which keeps the project easy to run locally without installing Postgres or MongoDB, while still being architected so that layer can be swapped for a real database later without touching any of the route logic above it. 3. Feature Coverage Must-Have features are all implemented end to end. OCR is handled natively: when a student uploads a PDF or an image of a certificate, the file is sent as a base64-encoded document or image content block directly to Claude's vision-capable API, so the model reads the file itself rather than relying on the student to transcribe it. The Resume Parser goes a step further — a single resume upload or paste is broken down by the AI into every distinct entry it contains (each education line, each internship, each project, each certification) and those are created as separate, individually searchable documents in one action. GitHub Import calls the public GitHub REST API directly from the browser, lists a student's public repositories with language and star metadata, and lets them selectively import repositories as Project documents with skills auto-derived from language and topics. The AI Chat Assistant is a full conversational interface that is given the student's entire document repository as context on every turn, so its answers are grounded in what the student has actually done rather than generic advice. Semantic Search replaces keyword matching with an AI call that understands intent — a query like "show my AI projects" is interpreted against summaries and skills, not just literal text matches, and falls back to local substring search if the AI call fails so the feature never breaks outright. Strong Judge Impression features were added to move the product from "a filing system" to something that actively works on the student's behalf. Career Insights reads across the whole repository and returns a short narrative on the student's trajectory, their strengths, and concrete next steps. Skill Gap Analysis takes a target role the student types in and compares it against their traced skill set, returning what they already have, what is missing, and one piece of actionable advice. The Resume Generator produces a clean, ATS-friendly plain-text resume from the repository and offers a one-click PDF export built client-side with jsPDF. The Portfolio Generator writes warm, first-person portfolio copy and assembles it into a fully standalone, downloadable portfolio.html file that a student could host anywhere. The Knowledge Graph itself was upgraded beyond a flat node-link diagram: nodes are now sized by connection degree, so a skill or document that appears across many parts of a student's history visibly stands out as a hub, giving the graph actual analytical value rather than being purely decorative. Bonus features round out the submission. A QR Portfolio Card encodes a compact identity summary — name, top skills, document count — into a scannable QR code generated client-side. Voice Search uses the browser's native Web Speech API so a student can search by speaking instead of typing, with a graceful message on browsers that don't support it. Recruiter Mode is a separate, read-only view that reframes the same underlying data into a public-profile-style page — hero section, skill chips, curated project and certification cards — as something a student could conceivably share with a recruiter. The Interview Question Generator produces technical, behavioral, and project-specific questions that reference the student's actual projects and internships by name rather than generic interview-prep content. Digital Identity PDF Export compiles the full profile — skills, timeline, and summaries — into one downloadable PDF using jsPDF. 4. Why the Backend Matters The earlier version of this project ran entirely inside a sandboxed chat environment, which meant its AI calls and its storage only worked inside that specific context and would not function if the file were downloaded and opened on its own. Rebuilding it as a real Express backend was the fix: the server holds the Anthropic API key so every AI feature works from any machine running the server, user accounts and documents are stored persistently regardless of which browser or device a student uses, and the whole thing can be deployed to any standard Node hosting provider. This is the difference between a convincing demo and a project a judge can actually run, poke at, and trust. 5. Honest Limitations The document database is a JSON file on disk rather than a production database — deliberate, to keep local setup to npm install and a single environment variable, but worth swapping for Postgres or SQLite before any real deployment with concurrent users. File storage for OCR and originals is base64 inside that same JSON file rather than a dedicated object store, which is fine at hackathon scale but would need to move to something like S3 for larger files or heavier usage. Recruiter Mode is a styled view inside the authenticated app rather than a truly public, unauthenticated link — a natural next step would be a shareable public URL per student. None of these are hidden; they are the honest trade-offs of building a complete, working, end-to-end system in the time available rather than a partial one.