Inspiration
Builders, writers and creators leave a lot of money on the table. Grants, bounties, hackathons and contests are spread across Superteam Earn, Devpost, Gitcoin, DoraHacks, X and dozens of ecosystem grant pages.
The listings are long, often out of date, and full of fine print: country restrictions, payment in a sponsor's token, entry fees, deadlines in a different timezone.
Finding the five that actually fit you, every week, is a part-time job. We wanted an assistant that does that job for you every day and only shows you what it can prove.
What it does
- Knows you. A quick tap-to-select profile (skills, country, payout preferences, things to avoid) plus your portfolio.
It is stored server-side and remembered across sessions, and it follows you to any device if you sign in with GitHub (optional).
- Hunts the web. Press Hunt now, or let it run in the background every few days.
Nemotron Nano plans searches from your profile; Tavily searches opportunity sites and the open web, crawls ecosystem grant hubs, and reads each page in full.
When a result is a listing page, the agent follows its links to the individual opportunities.
- Verifies before it shows anything. Nemotron extracts reward, deadline, eligibility, payout method, entry fee and how to apply, and every value must come with a quote from the page.
If the quote isn't on the page, the value becomes "unknown" instead of a guess. Closed opportunities are dropped and deadlines are converted to your timezone.
- Scores fit and flags risks. Nemotron Super scores each opportunity against your profile and your past decisions, with reasons for and against you and risk tags such as "paid in sponsor token" or "country eligibility unknown".
Past saves and rejections are recalled by embedding similarity, so "less like that one" works by meaning, not exact title.
- Drafts the right thing. Actions match the kind of work. A hackathon gets a build plan and a submission write-up, a grant gets an application, a writing contest gets a first draft or outline, and a social contest gets an X thread.
Nemotron Ultra writes them from your profile and portfolio only. You edit, approve and copy; nothing is ever submitted on your behalf.
Briefs you every morning. "Today" shows your top five, re-ranked by Nemotron Super with a boost for anything closing this week, and can be delivered to Telegram (/digest and /stop in the bot).
Shows its work. Every opportunity has an agent trace of the Tavily and Nemotron calls that produced it.
How we built it
Next.js 15 + Tailwind full-stack app on Vercel; API routes are the backend. Postgres (Neon) in production, PGlite locally, with the same SQL.
Nebius Token Factory serves every LLM call through one OpenAI-compatible client. There is no other LLM provider in the code.
- Nemotron 3 Nano (
nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B): search planning and evidence-grounded extraction, with a strict JSON schema. - Nemotron 3 Super (
nvidia/nemotron-3-super-120b-a12b): fit scoring and the daily digest ranking. - Nemotron 3 Ultra (
nvidia/Nemotron-3-Ultra-550b-a55b): drafts and the deep "second opinion" fit analysis, with reasoning on. - Token Factory embeddings (
Qwen/Qwen3-Embedding-8B): memory of past decisions. - On first use the app reads Token Factory's
/v1/modelsand picks the newest Nemotron per tier, so it upgrades without code changes.
- Nemotron 3 Nano (
Tavily search, extract and crawl, with a credit budget (monthly cap, daily pacing, account reserve) and 12-hour/7-day caches, so the free plan keeps the public demo running through judging.
Background jobs: hunts run as background jobs with live progress.
A daily cron fans out one hunt per user, re-checks saved opportunities for closed listings or changed deadlines, and sends the digests.
- Quality: an extraction eval set of 20 labelled real pages (
npm run eval), 50 unit tests, and CI for type checks, lint, tests and build.
Challenges we ran into
- Reasoning ate the answer. Nemotron 3 reasons by default, and the reasoning tokens count against
max_tokens.
Our first extraction eval scored 0/20 because every JSON answer was cut off mid-object.
Turning thinking off for the fast structured calls (chat_template_kwargs: {enable_thinking: false}) fixed it, and Ultra keeps reasoning on for drafts.
- "Is this one opportunity or a list?" The model rejected real hackathon rules pages as "lists" (13/20).
We rewrote the instruction around "one specific program, including its rules, FAQ or prize pages" and got 19/20, then made the agent follow links on real list pages instead of discarding them.
- Hallucinated terms. Models happily invent a payout or deadline.
Requiring a quote for every value and checking it against the page text makes the dashboard honest: 89% of extracted values (101/114) had a supporting quote; the rest were reset to "unknown".
- Search credits. A public demo can burn a search budget in a day. We built a credit ledger and pacing so it can't overspend.
Accomplishments that we're proud of
Extraction eval on real pages with Nemotron Nano: 19/20 single-opportunity classification, 8/8 rewards, 4/4 open/closed and 2/2 deadlines correct.
A live hunt finds and scores about 8–12 verified matches in under two minutes for around 15 search credits.
A complete product, not a notebook: anonymous use in one click, optional GitHub sign-in, Telegram delivery, type-aware drafts, and a clean design for both mobile and desktop.
What we learned
Grounding beats prompting: asking for evidence and checking it in code did more for accuracy than any prompt wording.
Choose the model tier per step: Nano for many cheap structured calls, Super for judgement, Ultra for long-form writing.
Personal AI is mostly about restraint: the agent finds, checks and drafts, and the human decides and submits.
What's next for Grant Hunter
More sources (DoraHacks BUIDLs, Kaggle, Questbook, Layer3) and per-user source preferences.
Deadline reminders and "what changed" alerts on saved opportunities.
Running the agent on Nebius Serverless with NemoClaw/OpenShell-style skills so users can add their own tools.
Feedback on Nebius and NVIDIA (required section)
Nebius Token Factory: what we used it for. We used it for every LLM call: three Nemotron 3 tiers plus embeddings, through the OpenAI-compatible API, in production on Vercel.
What worked well:
Drop-in OpenAI compatibility; we pointed the OpenAI SDK at the base URL and everything worked, including
response_format: json_schema.Having Nano, Super and Ultra behind one key and one endpoint made per-step model tiering trivial.
/v1/modelslet us auto-select the newest Nemotron per tier.Latency was fine for an interactive app (Ultra drafts in roughly 6–11 s in our runs).
What could be better:
Make it obvious in the docs and model cards that Nemotron 3 reasoning tokens count against
max_tokens, and showenable_thinking: falsein the quick-start; it cost us a failed first eval.A usage/billing API (or a credits-remaining header) so apps can budget spend themselves; today we could only check spend in the console.
It wasn't always clear which models support strict
json_schemaoutput; a capability flag in/v1/modelswould help. We built fallbacks to JSON mode and plain text.An NVIDIA embedding model on Token Factory would let the whole stack stay on NVIDIA models; we used Qwen3-Embedding-8B.
NVIDIA Nemotron:
Nano is a great extraction model when grounded with quotes.
Super's scoring explanations were specific and useful to show users directly.
Ultra's long-form drafts (build plans, applications) were the most impressive part for users.
The reasoning toggle is powerful, but the default-on behaviour surprises developers building structured-output pipelines.
Nebius AI Cloud: not used in this project.
New project: Grant Hunter was created from scratch during the submission period (first commit 26 Oct 2026).
Built With
- github
- nebius-token-factory
- neon
- next.js
- nvidia-nemotron
- postgresql
- tailwind
- tavily
- telegram-bot-api
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.