Hackathon
Author
From an energy-sector job posting to a personal roadmap.
Context
Why it exists
Guyana's offshore energy sector is growing quickly, and the Local Content Act requires companies to hire Guyanese across technical roles. For someone without an industry background, though, a job posting is a wall of certifications and acronyms with no hint of what to do first.
Author was team GStack's answer at the SBM Hackathon 2026, built over one weekend. It reads real energy-sector vacancies, works out what a candidate is missing, and turns that into a roadmap, with mentors and an AI coach along the way. The team built web, desktop and voice clients; this page covers the web app and coach I built, and a small bridge into Odoo.
Architecture
Web app, from vacancy to coach
- 01
Ingest
Live vacancies from Rolex's scraping service, or seeded examples when it is unreachable
- 02
Match
Each requirement checked against the candidate's evidence: met, partly met, missing or uncertain, with a reason
- 03
Plan
Unmet requirements placed on a time horizon based on the candidate's education and evidence
- 04
Ground
The coach's prompt is built from the same gates, actions and competencies the pages show
- 05
Coach
Replies streamed from a self-hosted model through Ollama
Decisions
Key decisions
01
The coach only answers from your data
Identity and career goal are read from the session and database, never from the request. The prompt is grounded in the same requirement gates the Opportunities page shows, and the model is told never to invent a requirement, credential, employer or number — with no tracked vacancy, it says so.
02
Stream everything, even JSON
The model runs on a self-hosted Ollama behind Cloudflare Access, where non-streaming requests to a slow model hit Cloudflare's 524 timeout. Every call streams instead, including structured output, which uses Ollama's JSON-schema format and is collected under an overall timeout.
03
Every remote call has a fallback
Rolex's gate-evaluation agent falls back to my local matcher, live vacancies to seeded ones, and a failed coach request to a plain message pointing at the right page. The coach is told whether a vacancy is live or a seeded example.
04
Explainable over clever
Requirement matching is token overlap plus competency-domain scoring rather than a model, and every result carries a written rationale. Eligibility conditions such as residency are marked uncertain instead of guessed, and mentor ranking is deterministic.
Contributions
Who built what
Aditya Prasad
- The Next.js web app: sign-up, dashboard, opportunities, roadmap and Career Constellation
- The AI coach chatbot and its grounding
- Text mock interviews with STAR-R feedback
- Requirement matching, roadmap planning and mentor ranking
- A sync that sends completed interviews to Odoo Recruitment
Rolex Alexander
- Desktop app
- AI voice and video call features
- Vacancy data scraping and the vacancies API
- Agents for gate evaluation, role research and resume drafting
Narissa Jeffrey
- Design
- Presentation
Result
How it placed
Third place (Senior Second Runner-Up) at the SBM Hackathon 2026 in Georgetown, Sep 4–6, competing as team GStack.