Inspiration

Recruiting rarely breaks because a student forgets that an application exists. It breaks in the gaps.

An assessment becomes urgent. An interview needs role-specific practice. A follow-up slips. An application changes stages, and its context must be reconstructed from scratch.

A student may be managing saved roles, deadlines, assessments, interviews, follow-ups, offers, and resume evidence at the same time. The repeated burden is not only remembering. It is scanning the whole pipeline, deciding what matters now, recovering the facts, identifying evidence gaps, and turning that context into useful preparation.

A chatbot still leaves that operating work with the student. They must open it, choose the right application, explain the situation, provide the context, and convert the response into something usable.

Vuna Ready Desk closes those gaps. It watches the entire active recruiting pipeline, decides where preparation has the most leverage, and completes that preparation before the student asks.

The result is not another list of suggestions. The student returns to finished next work.

What Vuna does

A student can run a pipeline sweep immediately or enable one daily sweep at a chosen local time. No card selection and no prompt are required.

Vuna reviews every active application and ranks up to three interventions using deterministic signals:

  • approaching deadlines
  • current recruiting stage
  • time since the latest activity
  • missing or unclear resume evidence
  • changes since the latest preparation

Gemini then creates the appropriate stage-specific work product for every selected application:

  • a requirement-to-evidence map when support is missing or unclear
  • an application review brief for a saved role
  • a timed assessment drill for an online assessment
  • an interview dossier with likely questions, story prompts, and a practice agenda
  • a complete follow-up draft after an extended quiet period
  • an offer comparison matrix with missing-term questions and a discussion agenda

Each result is stored as durable work, connected to the application that caused it, and surfaced in both Ready Desk and Today. Vuna also creates an evidence-named reminder so the student knows exactly why the work matters.

Saved cards, manual stage changes, and confirmed email suggestions can trigger focused preparation. Parsed email alone never changes an application or starts consequential work. The student must confirm the suggestion first.

If a deadline, stage, or validated requirement changes, Vuna marks older preparation stale. New preparation supersedes the previous version without rewriting history.

More than a chat response

Vuna performs a complete asynchronous workflow:

  1. Sweep: Cloud Scheduler publishes a periodic tick. A private worker identifies users whose chosen local sweep time has arrived.
  2. Rank: Deterministic policy evaluates the entire active pipeline and selects no more than three high-leverage interventions.
  3. Prepare: Gemini 3.5 Flash uses a tightly scoped Google ADK workflow to create complete, stage-specific preparation from verified context.
  4. Validate: Deterministic code rejects unsupported actions, incorrect work types, oversized output, duplicate actions, and claims that Vuna performed an external action.
  5. Persist: Vuna stores the work product, ranking reason, trigger, evidence fingerprint, execution trace, staleness state, and authority boundary.
  6. Surface: The completed work appears in Ready Desk and Today with an evidence-named reminder.

This happens in the background and produces durable internal workflow state. The student does not have to start a conversation, reconstruct the application context, or turn generic advice into another deliverable.

Proof-carrying autonomy

Every work product carries its own receipt:

  • what triggered the run
  • where the application ranked
  • why it ranked
  • deterministic deadline and activity readings
  • validated shown, not shown, and unclear evidence counts
  • an evidence fingerprint for detecting changed context
  • the complete Gemini-prepared deliverable
  • the ordered Google ADK tool trace
  • current, stale, or superseded status
  • the enforced prepared_only authority boundary

The model cannot author the factual rows used by the workflow. Deadlines, stages, activity readings, and evidence counts are calculated from validated database records before Gemini runs.

Gemini receives a bounded projection of verified role requirements. Raw job-posting spans, raw resume excerpts, profile text, and email bodies remain outside the model context.

The model gets exactly two tools:

  • read_verified_context
  • prepare_ready_packet

A runtime callback denies every other tool.

After generation, a deterministic validator checks the proposed work. If the first proposal is invalid, Gemini receives a structured rejection reason and gets one repair attempt. A second invalid proposal fails safely and writes no artifact.

Human authority by design

Vuna can independently observe, rank, prepare, schedule internal reminders, and maintain its work history.

It cannot:

  • submit an application
  • send an email
  • click an external control
  • change a recruiting stage through the agent
  • impersonate the student

No sending, submission, browser-control, or stage-change tool exists in the agent runtime. The database also requires every completed packet to carry the prepared_only boundary.

Vuna carries the operational burden. The student keeps the judgment, voice, and every external action.

How we built it

Cloud Scheduler emits a sweep tick every fifteen minutes. Pub/Sub delivers the tick to a private Cloud Run worker. The worker creates no more than one scheduled sweep per user and local day, and only after that user's configured time has arrived.

The worker reads account-owned applications, append-only activity, and validated requirement claims from Supabase. A shared deterministic ranker scores the active pipeline and selects no more than three applications. The database records the ranking and creates an idempotent run for each selected card.

Each run executes a Google ADK LlmAgent using Gemini 3.5 Flash through Vertex AI. The agent receives only the bounded verified context required for the selected work product.

For immediate product triggers, Vercel exchanges its production identity through Google Workload Identity Federation for a short-lived Google credential. That identity can publish only to the vuna-agent-runs Pub/Sub topic. The browser receives no Google credential, and the production deployment stores no Google service-account key.

Supabase Auth and Postgres provide account ownership, row-level security, atomic run claims, durable work products, reminders, append-only evidence, and a second completion guard.

The web experience is built with Next.js and TypeScript. Ready Desk displays ranked preparation and execution evidence, Today surfaces priorities and reminders, and Settings gives the student control over daily scheduling.

Reliability and failure handling

Background autonomy must remain correct when delivery is duplicated, a worker is interrupted, the model returns invalid work, or the pipeline is empty.

We built the workflow around those cases:

  • one scheduled sweep per user and local day
  • no more than three selected applications per sweep
  • atomic worker claiming
  • duplicate Pub/Sub delivery safety
  • recovery of claims abandoned for ten minutes
  • one bounded validator-guided repair attempt
  • bounded delivery retries
  • visible safe failure after retry exhaustion
  • append-only execution and work-state evidence
  • honest stale and superseded states
  • user-controlled scheduling that is disabled by default

A repeated message cannot duplicate completed work, and changed context cannot quietly leave an old artifact looking current.

Technologies used

  • Gemini 3.5 Flash through Vertex AI
  • Google Agent Development Kit for TypeScript
  • Google Cloud Run
  • Google Cloud Pub/Sub
  • Google Cloud Scheduler
  • Google Workload Identity Federation
  • Google Cloud Build
  • Google Artifact Registry
  • Supabase Auth and Postgres
  • Next.js
  • TypeScript
  • Vercel
  • Vitest

Data sources

Vuna uses only the signed-in student's own account records:

  • application company, role, stage, and deadline
  • latest recorded activity
  • validated requirement states and source references
  • the student's own scheduling preference

The agent does not receive mailbox access, raw inbound email bodies, demographic information, EEO responses, or scraped job-board data.

Challenges we faced

The hardest design question was how to add meaningful autonomy without acquiring authority the product did not need.

We separated four responsibilities:

  1. deterministic code ranks the pipeline
  2. validated records provide the facts
  3. Gemini creates the preparation
  4. the student owns every external action

That separation made the agent more capable and easier to audit.

A second challenge was truth over time. A polished interview dossier becomes misleading if the role, deadline, stage, or supporting evidence changes. Evidence fingerprints and append-only work-state events let Vuna identify stale work without altering history.

Cross-cloud identity also required careful design. We wanted the deployed web application to trigger Google Cloud work without storing a long-lived service-account key. Workload Identity Federation provided short-lived credentials tied to the production Vercel identity and limited to one Pub/Sub topic.

Finally, asynchronous systems fail differently from synchronous chat. Duplicate delivery, cold starts, abandoned claims, invalid model proposals, and retry exhaustion had to be treated as normal workflow states rather than demo-only exceptions.

Accomplishments we are proud of

  • One action reviews an entire active recruiting pipeline.
  • The student does not need to select a card or write a prompt.
  • Every sweep is capped at three high-leverage interventions.
  • Outputs are complete work products rather than generic summaries.
  • Prepared work visibly uses validated role requirements.
  • Daily sweeps respect the student's chosen local time.
  • Changed context produces visible staleness.
  • The production web path stores no Google service-account key.
  • The Cloud Run worker is private.
  • Ranking, deadlines, evidence counts, action vocabulary, and authority limits remain deterministic.
  • Every result includes its trigger, ranking reason, evidence summary, deliverable, execution trace, and authority boundary.
  • Duplicate delivery, retry exhaustion, safe failure, and sweep bounds are covered by tests.

What we learned

Useful autonomy is not the same as broad authority.

An agent can independently observe, prioritize, prepare, schedule internal reminders, and maintain durable context while leaving identity-bearing actions to the person.

We also learned that completed artifacts change how an agent feels. A student can immediately practice from a finished assessment drill, prepare from a role-specific interview agenda, or edit a complete follow-up draft. They do not have to translate a recommendation into another round of work.

Finally, execution evidence belongs inside the product. A student should be able to see what triggered the operation, why an application ranked, what evidence was used, what the agent created, whether the context later changed, and exactly where automation stopped.

What's next

The next step is deeper student-controlled feedback on prepared work. Students should be able to accept a draft into an editable composition surface, launch an assessment drill directly into practice, and measure which interventions were most useful across a recruiting season.

The authority boundary will remain unchanged. Vuna prepares, prioritizes, and explains. The student sends, submits, decides, and represents themselves.

Try Vuna

Demo data disclosure

All companies, roles, requirements, and activity shown in the demonstration are fictional. No real applicant or employer data is shown. The deployed product can be explored with real-world roles at tryvuna.com.

Built With

  • agent
  • ai
  • artifact
  • build
  • cloud
  • development
  • federation
  • gemini
  • google
  • identity
  • kit
  • postgresql
  • pub/sub
  • registry
  • run
  • scheduler
  • supabase
  • vertex
  • workload
Share this project:

Updates

Submission history