Olva

The AI-native career OS built on one living record.

Try it: https://xprize.olva.app/demo — one click, no credentials. You start where a student starts, at a parsed resume waiting to be confirmed. Accounts come from a shared pool that resets nightly, so every visit begins fresh.

The job feed you will see is the live production board, real postings ranked against the account's record at request time. The people in the network pane are invented, placed at six real companies so the networking flow runs end to end without exposing anyone real; actions that would reach a real person or spend vendor credits are closed to sandbox accounts.

Inspiration

1.2 million international students study in the US. About half go home after graduation, and rarely for lack of talent. Fewer than three job postings in a hundred sponsor a visa, and students search that sliver with no direction, a resume that does not translate, and nobody to call. We watched this happen to people around us at USC: two years of classes teach the subject, and the sixty-day clock after graduation does not care.

The tools they reach for do not talk to each other. A resume builder, a job board, a LinkedIn tab, a course, each one starting from zero on who this person is. The fix we kept coming back to was a record: one place that knows what you have done and where you are going, with everything else running on top of it.

What it does

Olva builds a student's Arc, a living record with two halves. Half comes straight from the resume: the work already done. The other half only shows up in choices: direction, values, taste. An alignment session puts the student in real work settings and reads the pattern in what they pick. For Cleo, the student in our demo, that pattern was technical work plus explaining it to people, and the session lands on the role that fits it: sales engineer.

Everything downstream runs on the Arc and writes back to it.

  • Learning. A real project from the target job, learned by shipping it. When it ships, the Arc records the problem, the actions, and the outcome, and the resume and personal site sync on the spot.
  • Jobs. A feed ranked against the record, each posting carrying its reason. Degree and visa are hard walls: postings confirmed to sponsor rank higher for a student who needs it.
  • Network. The right people around each job, alumni first, with the first message drafted from the student's own record, then meeting prep and follow-up.
  • Presence. A personal site generated from the Arc and kept current.

The same record powers a second side. Career service agencies run their operation on Olva: mentors open a student and the direction, evidence, and last two weeks are already there; booking mints the meeting room and both calendar invites; hours settle through a ledger that cannot go negative; sales turns a consultation transcript into a lead, a brief, and a plan.

How we built it

FastAPI and Supabase Postgres on the back, Next.js on the front. 88 AI jobs are named and versioned, each pinned to a specific model in one registry by measured bake-off: document extraction on Gemini, narrative work on the model measured not to hallucinate, mechanical work on the cheapest fast model. Every call logs its true cost. More than 8,500 calls across 14 models and four providers are on the ledger for this period, which is why "what does this student cost us this month" has an exact answer instead of an estimate.

Google Cloud runs in three places. Gemini is our largest provider by spend: 916 calls through the Gemini API, a third of all model cost, across résumé extraction, the alignment session, and the knowledge pipeline. Résumé extraction has run on Gemini without a break since June 8, first on 3.5 Flash and now on 3.6 Flash, and it is the first AI call in every new user's life on the product. Every booked session mints a Google Meet room through the Meet API and writes both parties' calendar invites through the Calendar API, authenticated by a service account with domain-wide delegation under our GCP project. Vertex AI is wired as the alternate route for all Gemini traffic behind a configuration flag, and has served production traffic.

Two rules shaped the architecture. Models never score: they emit fixed categorical labels, and ranking stays mechanical (embeddings plus reciprocal rank fusion), so results are reproducible and debuggable. And every derived claim about a person waits for a human confirm before it enters the record.

The delivery engine is conventional software done carefully: availability windows netted across organizations so a mentor cannot be double-booked, race-safe invitation acceptance, an append-only hours ledger where the balance is a cache of the entries.

This repository begins June 5, 2026, inside the hackathon window. Parts of it are ports rather than new code, and we would rather say so than have it found: the admin roster and invitation screens, the sales CRM module, and the mentor session mechanics came from our earlier codebase and were rewritten onto the Arc. The record itself, the alignment session, the ranking engine, the learning module, the network module, and the site generator are new.

Challenges we ran into

Making language models useful without letting them decide things they are bad at deciding. Early versions asked a model to score job matches; the numbers looked confident and meant nothing. The fix was structural: labels from the model, arithmetic from us.

Hallucination under commercial pressure. In the bake-off for sales briefs, weaker models invented mentor credentials and a trial class that did not exist. We ship that pipeline with a hand-labeled gold set and a precision gate, and a model change has to pass it before it deploys.

Cost. The most expensive single action, researching a cold company end to end, runs about twenty cents. The answer was a shared pool: the result is stored once and reused by every student who ever targets that company, which is most of why serving cost falls from roughly $46 to $10-15 per student per month as the pool warms.

Accomplishments that we're proud of

It runs in production and it already sells. A career services company signed in August and moved its student operation onto Olva: $18,405 collected across two bank transfers against Stripe invoices, all of it arms-length, with $0 in related-party revenue. 53 of their students are live today. Each pays $50 a month and costs $10-15 to serve, so the recurring layer is profitable per student from month one.

Total expenses for the period were $344.92, every dollar of it cost of goods sold. Marketing spend was zero. The one customer came from founder-led sales.

110 people hold real accounts, all created during the hackathon: 76 students, 30 mentors delivering paid sessions through the platform, and the customer's admin, sales, and finance staff. Those 30 mentors are the part we care most about. Every hour they deliver is booked, recorded, settled, and paid through Olva, which makes the economic opportunity here something we can show in a ledger rather than describe in the future tense.

The AI has been running the whole time underneath. 4,719 workflow runs across 88 named jobs since June 7, for 100 users, every one of them logged with its tokens and true cost.

The demo makes the same point in miniature: the track, the project, the ranking, and who to reach first were all decisions Olva made alone.

What we learned

The unit of career progress is not a course completion. It is a piece of real work, shipped, recorded honestly, owned by the person. Get that record right and everything downstream gets cheaper: the job search becomes a ranking problem, outreach becomes specific, and a mentor's paid hour starts at the real question instead of at discovery.

We also learned where the line sits. AI runs the operation. Humans judge, vouch, and teach. Every time we let the model cross that line, quality fell; every time we moved the line with evals instead of intuition, it held.

What's next for Olva

Posts and writing on the personal site, so attention compounds on the record the way work already does. More agencies on the platform, and the sponsor lane for institutions that pay for students without delivering services. Self-serve for students who arrive without an agency. The record belongs to the student either way, and it survives every contract around it.

Built With

  • cerebras
  • exa
  • fastapi
  • framer-motion
  • gemini
  • google-calendar-api
  • google-meet
  • litellm
  • next.js
  • openai-agents-sdk
  • postgresql
  • pydantic
  • python
  • radix-ui
  • react
  • recharts
  • render
  • resend
  • shadcn-ui
  • supabase
  • tailwindcss
  • tanstack-query
  • typescript
  • zustand
Share this project:

Updates