Use Merit Fit
Building
Changelog
Import flow and deletion controls updated
This week focused on the import and admin flows, with some supporting internal cleanup. The overview now shows real numbers, selects no longer expose raw enum values, and the header wordmark now links back home from every page. The test documentation was also rewritten around URLs after ids were removed.
Refined extraction, setup, and account controls
This week focused on making the product more resilient around page extraction and setup. Empty or blocked pages no longer stop a run as easily, the landing experience now points to the product and setup flow more clearly, and the feedback path was adjusted so rejected pages can be revisited instead of treated as permanent dead ends. There was also internal work around Neon usage and worker behavior, including measuring consumption directly, correcting sizing assumptions, and making idle handling more explicit. Account deletion was added, and the related controls and test URLs were made easier to find and use.
Library navigation, outcomes, and application notes
The Library now appears in the main navigation, and its kinds are grouped into tabs. The application side gained outcomes, a readiness timeline, links into the workflow, and notes, with one primary action shown at a time. This week also tightened a number of details in the tracker and surrounding pages. Rewrapped text no longer counts as a page change, document titles are no longer hidden by the sidebar, the SOP location is called out more clearly, and the attach picker now opens in a dialog.
Programs, journey, and applications work
This week added a full programs domain: data models, extraction, moderation, API routes, notifications, admin views, and the web UI for browsing, saving, importing, comparing, and managing programs. The extraction flow was also adjusted to preserve more page content, including tab and sub-page material, and to classify deadlines, application status, and curriculum details from source pages. The product navigation and public surfaces were reorganized around the main user journey. Applications and workspace views were reshaped, documents became attached to the relevant program or scholarship, match-gap and funding links were surfaced more directly, and the landing and documentation copy was updated to describe the shipped product. There was also internal cleanup, test updates, and dependency removal.
Expanded public pages and site metadata
The site now includes public privacy, terms, contact, and learn pages, with /learn surfaced in navigation. Home copy was tightened to match the actual user journey, and the app gained a logo mark, favicon, Apple touch icon, and social sharing image. Search and sharing support were added through robots, sitemap, metadata, and brand JSON-LD. Analytics tracking is now gated by consent, error and not-found boundaries were added, cron access was fixed, and source pages can now be surfaced again when an importer repoints their URL. Rate limiting for the LLM endpoint was noted as deferred work.
Split the app onto an API service and tightened the product core
The app was split into a three-service setup with the frontend, API, and cron-oriented work separated out. Core product areas moved onto the API, including scholarships, the profile, writing workspace, dashboard advisor, feedback, moderation, anecdotes, notifications, and resume import. Session handling was also updated for the split, with shared JWT-based auth and a parent-domain cookie. Several user-facing areas were reshaped at the same time: the profile gained a document vault, test scores, and autosave, the writing workspace added versioned answers with AI drafting, and the dashboard advisor card started showing LLM notes on the profile. Scholarship browsing and detail pages, feedback tooling, and moderation flows were also tied into the new structure. The week also included deployment, environment, and test work, plus documentation updates and a move for uploaded document bytes to S3-compatible storage.
Profile intake, imports, matching, and notifications
Use Merit Fit moved from scaffold to a working product flow. The week added profile intake, anecdote CRUD, scholarship import from URL, PDF, and pasted text, along with structured extraction, a deterministic eligibility matcher, and a review flow for imported data. The UI was also brought into a shared design system with a real landing page and form components. Several internal changes improved reliability and state handling, including auth simplification to Google sign-in, schema and validation fixes, extraction debugging and evaluation fixtures, async job processing, freshness checks, and a worker service. The app also gained in-app notifications, toasts, a progress display for extraction, and resume PDF upload for profile review and save.