<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aastha Yadav</title>
    <description>The latest articles on DEV Community by Aastha Yadav (@aastha_yadav_b849882f5857).</description>
    <link>https://dev.to/aastha_yadav_b849882f5857</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3238803%2F45880a80-de3d-43d5-8175-2723097d90fd.jpg</url>
      <title>DEV Community: Aastha Yadav</title>
      <link>https://dev.to/aastha_yadav_b849882f5857</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aastha_yadav_b849882f5857"/>
    <language>en</language>
    <item>
      <title>From Prompts to Product: Building StudentOS with Google Antigravity + Sanity</title>
      <dc:creator>Aastha Yadav</dc:creator>
      <pubDate>Fri, 02 Oct 2026 09:46:19 +0000</pubDate>
      <link>https://dev.to/aastha_yadav_b849882f5857/from-prompts-to-product-building-studentos-with-google-antigravity-sanity-1p79</link>
      <guid>https://dev.to/aastha_yadav_b849882f5857/from-prompts-to-product-building-studentos-with-google-antigravity-sanity-1p79</guid>
      <description>&lt;p&gt;StudentOS is an AI-powered student productivity and opportunity intelligence platform built to help students move from discovering an opportunity to actually becoming ready for it.&lt;/p&gt;

&lt;p&gt;For this challenge, I extended StudentOS with an Opportunity Intelligence experience powered by Sanity.&lt;/p&gt;

&lt;p&gt;The system combines structured opportunity knowledge — opportunities, organizations, eligibility rules, skills, application processes, resources, and sources — with private student context such as skills, goals, education, and progress.&lt;/p&gt;

&lt;p&gt;Students can select an opportunity and see their fit, eligibility, skill gaps, application requirements, and personalized preparation guidance.&lt;/p&gt;

&lt;p&gt;The goal is simple: instead of only asking "What opportunities are available?", StudentOS helps answer "Am I ready for this opportunity, and what should I do next?"&lt;br&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; YOUR_DEPLOYED_WEBSITE_URL&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; YOUR_YOUTUBE_VIDEO_URL&lt;/p&gt;

&lt;p&gt;The demo showcases the Opportunity Intelligence workflow, including Sanity-powered opportunity knowledge, readiness assessment, skill-gap analysis, application requirements, and the grounded AI Q&amp;amp;A experience.&lt;br&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/aastha-yadav2/studentos-ai" rel="noopener noreferrer"&gt;https://github.com/aastha-yadav2/studentos-ai&lt;/a&gt;&lt;br&gt;
I built and iterated on StudentOS using Google Antigravity as my AI-native development environment.&lt;/p&gt;

&lt;p&gt;Rather than rebuilding the application from scratch, I used Antigravity to extend an existing StudentOS codebase and progressively introduce a Sanity-powered opportunity knowledge layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Starting from the existing product
&lt;/h3&gt;

&lt;p&gt;StudentOS already had student context, opportunity discovery, matching, applications, and preparation features.&lt;/p&gt;

&lt;p&gt;The first goal was to understand the existing architecture and identify where Sanity could add meaningful structured knowledge instead of creating a separate application.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Designing the Sanity knowledge model
&lt;/h3&gt;

&lt;p&gt;I prompted Antigravity to design a structured content model around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opportunities&lt;/li&gt;
&lt;li&gt;Organizations&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Eligibility Rules&lt;/li&gt;
&lt;li&gt;Application Processes&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important design decision was to connect these records rather than store everything as one large opportunity document.&lt;/p&gt;

&lt;p&gt;This created relationships such as:&lt;/p&gt;

&lt;p&gt;Opportunity → Organization → Eligibility → Skills → Application Process → Resources → Source&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Building the Opportunity Intelligence layer
&lt;/h3&gt;

&lt;p&gt;I then prompted Antigravity to connect the Sanity knowledge layer with the existing StudentOS opportunity system.&lt;/p&gt;

&lt;p&gt;The implementation combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sanity opportunity knowledge&lt;/li&gt;
&lt;li&gt;Student profile/context&lt;/li&gt;
&lt;li&gt;deterministic eligibility&lt;/li&gt;
&lt;li&gt;existing 50/30/20 matching&lt;/li&gt;
&lt;li&gt;AI-powered reasoning and preparation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This resulted in an Opportunity Intelligence drawer where students can understand their readiness for a specific opportunity.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Where the build got stuck
&lt;/h3&gt;

&lt;p&gt;The first major issue appeared when an opportunity that was not present in the live Sanity dataset fell back to an existing GSoC record.&lt;/p&gt;

&lt;p&gt;This caused unrelated GSoC information to appear for another opportunity.&lt;/p&gt;

&lt;p&gt;Instead of hiding the problem, I traced the data flow and used Antigravity to implement strict opportunity identity validation and opportunity-specific fallbacks.&lt;/p&gt;

&lt;p&gt;The final system rejects mismatched Sanity documents instead of silently displaying another opportunity's content.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Debugging the AI Q&amp;amp;A
&lt;/h3&gt;

&lt;p&gt;A second issue appeared in the Opportunity Intelligence Q&amp;amp;A.&lt;/p&gt;

&lt;p&gt;Different questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Am I actually ready?"&lt;/li&gt;
&lt;li&gt;"What documents do I need?"&lt;/li&gt;
&lt;li&gt;"What skills am I missing?"&lt;/li&gt;
&lt;li&gt;"How can I prepare over the next 2 weeks?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;were initially returning the same generic response.&lt;/p&gt;

&lt;p&gt;I traced this to the AI Router request validation. The &lt;code&gt;opportunity_qa&lt;/code&gt; request type had not been registered in the Supabase Edge Function, so requests were failing before reaching the intended AI flow and falling into a generic fallback.&lt;/p&gt;

&lt;p&gt;I corrected the request routing and then added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deterministic question-intent classification&lt;/li&gt;
&lt;li&gt;opportunity-specific AI context&lt;/li&gt;
&lt;li&gt;response validation&lt;/li&gt;
&lt;li&gt;anti-cross-opportunity leakage checks&lt;/li&gt;
&lt;li&gt;deterministic intent-specific fallbacks&lt;/li&gt;
&lt;li&gt;automated Q&amp;amp;A tests&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Iterative validation
&lt;/h3&gt;

&lt;p&gt;The final implementation was tested by switching between different opportunities and checking that their eligibility, skills, application information, resources, and Q&amp;amp;A context remained isolated.&lt;/p&gt;

&lt;p&gt;I also verified the production build and Sanity Studio build after the changes.&lt;/p&gt;

&lt;p&gt;The result was not just a generated UI. The build evolved through several rounds of prompting, inspection, debugging, testing, and course correction.&lt;br&gt;
&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;p2hu7iqp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;code&gt;production&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Sanity is used as the structured content layer for the Opportunity Intelligence experience, with connected records for opportunities, organizations, eligibility rules, skills, application processes, resources, and source provenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Session
&lt;/h2&gt;

&lt;p&gt;The project was developed using Google Antigravity as the AI-native development environment.&lt;/p&gt;

&lt;p&gt;A DEV Agent Session transcript is not included because Google Antigravity is not currently listed among the supported Agent Sessions upload sources.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>StudentOS Opportunity Intelligence: A Sanity-Powered AI Agent for Opportunity Readiness</title>
      <dc:creator>Aastha Yadav</dc:creator>
      <pubDate>Fri, 02 Oct 2026 09:30:53 +0000</pubDate>
      <link>https://dev.to/aastha_yadav_b849882f5857/studentos-opportunity-intelligence-a-sanity-powered-ai-agent-for-opportunity-readiness-46p4</link>
      <guid>https://dev.to/aastha_yadav_b849882f5857/studentos-opportunity-intelligence-a-sanity-powered-ai-agent-for-opportunity-readiness-46p4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;StudentOS Opportunity Intelligence&lt;/strong&gt; is an AI-powered opportunity readiness agent built into StudentOS.&lt;/p&gt;

&lt;p&gt;Instead of simply showing students a list of internships, hackathons, fellowships, and developer programs, StudentOS answers a more useful question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Am I actually ready for this opportunity?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system combines two types of context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private student context&lt;/strong&gt; — skills, education, goals, applications, and progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured Sanity knowledge&lt;/strong&gt; — opportunities, organizations, eligibility rules, required skills, application processes, documents, resources, and source provenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;StudentOS then evaluates the student's deterministic eligibility and skill fit, identifies gaps, and uses grounded AI to answer opportunity-specific questions.&lt;/p&gt;

&lt;p&gt;For example, a student can select an opportunity and ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Am I actually ready for this?&lt;/li&gt;
&lt;li&gt;What documents do I need?&lt;/li&gt;
&lt;li&gt;What skills am I missing?&lt;/li&gt;
&lt;li&gt;How can I prepare over the next 2 weeks?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is an actionable path from &lt;strong&gt;opportunity discovery → eligibility → skill gaps → preparation → application&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live Project:&lt;/strong&gt; &lt;a href="https://studentos-ai-phi.vercel.app/app" rel="noopener noreferrer"&gt;https://studentos-ai-phi.vercel.app/app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://youtu.be/jMnrf-GSKoA" rel="noopener noreferrer"&gt;https://youtu.be/jMnrf-GSKoA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo focuses on the Opportunity Intelligence flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select an opportunity.&lt;/li&gt;
&lt;li&gt;Retrieve its structured knowledge from Sanity.&lt;/li&gt;
&lt;li&gt;Calculate deterministic student-opportunity fit.&lt;/li&gt;
&lt;li&gt;Show eligibility and skill gaps.&lt;/li&gt;
&lt;li&gt;Surface the application workflow, documents, and resources.&lt;/li&gt;
&lt;li&gt;Ask the grounded Opportunity Intelligence Agent follow-up questions.&lt;/li&gt;
&lt;li&gt;Switch between opportunities and verify that the agent uses the newly selected opportunity's context.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/aastha-yadav2/studentos-ai" rel="noopener noreferrer"&gt;https://github.com/aastha-yadav2/studentos-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the StudentOS application, Opportunity Intelligence implementation, Sanity integration, AI Router integration, fallback handling, and validation logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;Sanity acts as the structured knowledge layer behind StudentOS Opportunity Intelligence.&lt;/p&gt;

&lt;p&gt;I modeled opportunity knowledge as connected structured content rather than keeping application information in a single unstructured prompt.&lt;/p&gt;

&lt;p&gt;The Sanity dataset contains structured records for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opportunities&lt;/li&gt;
&lt;li&gt;Organizations&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Eligibility Rules&lt;/li&gt;
&lt;li&gt;Application Processes&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Sources / provenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An opportunity is connected to its organization, eligibility rules, required skills, application process, resources, and source information.&lt;/p&gt;

&lt;p&gt;StudentOS retrieves the selected opportunity's knowledge graph and combines it with the student's private context.&lt;/p&gt;

&lt;p&gt;The deterministic matching layer calculates the student's fit using the existing &lt;strong&gt;50/30/20 scoring model&lt;/strong&gt;, while deterministic eligibility remains authoritative.&lt;/p&gt;

&lt;p&gt;The AI layer is then grounded in the selected opportunity's resolved Sanity context.&lt;/p&gt;

&lt;p&gt;This distinction is important: &lt;strong&gt;Sanity provides the opportunity knowledge; StudentOS provides the student context; the agent combines both to produce actionable readiness guidance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also added defensive identity validation and opportunity-specific fallbacks so that information from one opportunity cannot silently appear while another opportunity is selected.&lt;/p&gt;

&lt;p&gt;For example, switching from Hack2Skill to Google Summer of Code changes the complete opportunity context used by the agent, including eligibility, skills, documents, application workflow, resources, and Q&amp;amp;A.&lt;/p&gt;

&lt;p&gt;The Q&amp;amp;A layer also classifies questions into intents such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Readiness&lt;/li&gt;
&lt;li&gt;Documents&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Two-week preparation&lt;/li&gt;
&lt;li&gt;General opportunity questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows the agent to provide different, grounded answers rather than returning the same generic response for every question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;p2hu7iqp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;code&gt;production&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The live Sanity project contains the structured opportunity knowledge used by StudentOS Opportunity Intelligence.&lt;/p&gt;

&lt;p&gt;The project currently contains the opportunity knowledge graph and its related organizations, eligibility rules, skills, application processes, resources, and source records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Session
&lt;/h2&gt;

&lt;p&gt;The project was developed iteratively using &lt;strong&gt;Google Antigravity&lt;/strong&gt; as the AI-native development environment.&lt;/p&gt;

&lt;p&gt;Antigravity was used throughout the build to implement, debug, test, and refine the StudentOS Opportunity Intelligence experience, including the Sanity integration, structured opportunity knowledge graph, deterministic matching, grounded Q&amp;amp;A, opportunity isolation, and fallback handling.&lt;/p&gt;

&lt;p&gt;An Agent Session transcript is not included because the development session was conducted in Antigravity rather than one of the session sources currently supported by the DEV Agent Sessions uploader.&lt;/p&gt;

&lt;p&gt;The final implementation specifically includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sanity-backed opportunity retrieval&lt;/li&gt;
&lt;li&gt;Structured opportunity relationships&lt;/li&gt;
&lt;li&gt;Deterministic eligibility and matching&lt;/li&gt;
&lt;li&gt;Grounded AI reasoning&lt;/li&gt;
&lt;li&gt;Opportunity identity validation&lt;/li&gt;
&lt;li&gt;Opportunity-specific fallback handling&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A intent classification&lt;/li&gt;
&lt;li&gt;Anti-cross-opportunity response validation&lt;/li&gt;
&lt;li&gt;Opportunity switching isolation&lt;/li&gt;
&lt;li&gt;Automated Q&amp;amp;A tests&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Structured Content Matters
&lt;/h2&gt;

&lt;p&gt;The core of this project is not simply asking an LLM about opportunities.&lt;/p&gt;

&lt;p&gt;The opportunity information is modeled as structured, connected knowledge.&lt;/p&gt;

&lt;p&gt;That allows StudentOS to reason over specific relationships such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opportunity → Organization → Eligibility → Skills → Application Process → Documents → Resources → Source&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent can therefore answer questions using the selected opportunity's actual structured context instead of relying on a generic prompt or a flat keyword search.&lt;/p&gt;

&lt;p&gt;StudentOS turns that structured knowledge into something directly useful to a student:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Discover the opportunity. Understand your fit. Identify the gaps. Prepare. Apply.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
