Inspiration
Job seekers lose twice. About one in five listings on online job boards never leads to a hire, and AI tools now write everyone's CV, quietly turning "helped with" into "led". Honest candidates look weaker, and embellished ones look like everyone else. I'm a student in Johannesburg looking for data roles, so I built the assistant I wanted: fewer applications, to roles that are really hiring, with claims I can defend in an interview.
What it does
Career Vault: upload your CV in any format: PDF, Word (.docx or .doc), OpenDocument, RTF, text, pasted text, or a photo, screenshot or scan. Nemotron 3.5 Super VL reads images and scans; Nemotron 3.5 Lightning extracts each fact with the exact quote it came from. Nothing is used until you confirm it. Real roles: Callback searches employers' own job boards (Greenhouse, Ashby, Lever) and careers pages via Tavily, and rejects job-site list pages. Hiring signal: code, not a model, decides whether a role looks live: link status, employer's own board, freshness, an independent source. Fit: Nemotron 3 Super scores each requirement against your confirmed facts. Application pack with a Claims Ledger: Super drafts CV bullets and a note. Every line must cite Vault facts and pass deterministic checks on numbers, tools, scope, seniority and audience, plus a Lightning audit that can only make a verdict stricter. Unsupported lines are blocked or sent back to you to rewrite honestly or back with a true fact. Approval gate: you approve the final pack, which is locked and fingerprinted (SHA-256). Callback never applies for you. Overnight watch and tracker: every night it re-checks your search and links, and you log outcomes yourself. Your data: no account, and you can export or delete everything.
How we built it
Next.js 15 and React 19 on Vercel, with one JSON row per private workspace in Supabase. Four NVIDIA models run through one OpenAI-compatible client on Nebius Token Factory: Nemotron 3.5 Super VL for photos and scanned CVs; Lightning with reasoning off for extraction, normalisation and auditing; Super for fit, drafting and rewrites; Ultra for on-demand positioning advice. Fallback only ever goes one tier down. Outputs are validated with zod, with one corrective retry. The Claims Ledger is plain TypeScript, and the app has 107 automated tests. A "How this ran" panel on every screen shows each model call, tokens, latency and every source fetched. A full run from CV to shortlist to one pack costs about 4 US cents.
Challenges we ran into
Reasoning is on by default. A Lightning extraction call spent its whole 16k-token budget thinking and returned almost nothing after 55 seconds. Turning thinking off brought it to about 4 seconds with a complete answer. Web search returns job-site list pages, not postings, so I wrote URL rules plus a Lightning classifier to keep only single employer postings. Many career sites block bots, so a blocked link is shown as "not verified" rather than treated as dead. Word-level checks can't see relationships: "assisted the manager who led the project" can become "led the project" using only words from the fact.
Accomplishments that we're proud of
The ledger catches real model embellishment: from "tracked club income and expenses", Super wrote "managed club finances", and the ledger blocked it. On a fresh held-out set written after the rules were frozen, 3 of 19 overstated claims reached approval with the auditor, and 0 of 9 honest lines were blocked. I publish what got through and why. A live search in Johannesburg found 16 real roles from employer boards and careers pages. It reads a CV in any format, including a phone photo, and I tested every format on the live app.
What we learned
Let models read and write, let code decide, and let the person approve. Measured numbers, including the failures, are more persuasive than promises.
What's next for CallBack
Compare structured claims (who did what, when and where) instead of words, to close the relational gap. Then truth-label real drafts at scale, and move from one workspace per browser to accounts with end-to-end encryption.
Built With
- nebius-token-factory
- nemotron
- next.js
- nvidia
- react
- supabase
- tavily
- typescript
- vercel
- vitest
- zod
Log in or sign up for Devpost to join the conversation.