← Featured projects

Astra AI

Live product

Product engineering — portfolio concierge with tool loop, grounded APIs, and visible trace on this site.

Role
Product engineering — built the concierge that reads this site, not the internet
Scope
Ask about my work, scroll to sections, calendar and contact tools
Outcome
Honest applied-AI demo with visible tool trace — not a black-box chatbot

Links last verified: 2026-06-19

Next.jsTypeScriptGroqTool callingAI

Recruiters on mobile shouldn't have to read the whole portfolio to find the right project. Astra is the portfolio concierge on this site — Groq tool-calling over public résumé and project data, scroll-to-section, scheduling hooks, and optional voice. Grounded answers from what's actually on this site, not a bolted-on generic chatbot.

Astra on the live portfolio — panel open beside the hero.

Ask about my work. Jump to a section. Stay grounded.

Project overview

The challenge

Visitors needed a faster way to explore projects and résumé facts on phones than scrolling every section — without a third-party chat widget that invents employers or stack.

My role

I designed and shipped the agent loop, tool definitions, grounded knowledge slices, chat UI (tool trace, suggestions), voice strip, eval harness, and multi-profile résumé lenses that Astra reads.

Three pillars

  • Grounding: replies use public resume.json + project knowledge only; tools retrieve slices on demand.
  • Actions: navigate_to_section, calendar summary, contact/booking tools with clear failure modes.
  • Trust UX: tool trace in the panel so recruiters see what ran, not a black box.

Exploration & discovery

Trust rules first

Before agent mode, the hard constraint was set: no invented credentials, keep prompts small, retrieve facts via tools. That rule shaped every later UX choice.

Multi-profile lenses

Five résumé Focus profiles (fullstack, software-engineer, applied-ai, ux-engineer, ux) let Astra answer in the lens a recruiter cares about — without swapping sites.

Interview demo needs

The story had to be demoable in 90 seconds: ask a project question, show tools used, scroll to the section, then optional voice and booking.

Build & process

Server-side Groq tool loop behind ASTRA_AGENT_MODE: get_knowledge, get_project, get_calendar_summary, navigate_to_section (plus contact/booking tools). Client shows tool trace and applies ui_actions for scroll. Eval cases live under npm run astra:eval.

Tool loop

The model chooses tools; the server executes and returns structured results; synthesis falls back to grounded copy when the loop fails.

Voice & scheduling

TTS/STT strip when configured; Cal.com hooks for America/Chicago availability without inventing slots.

Astra panel showing expanded tool trace for a project question
Tool trace — résumé lookup and page navigation visible to the visitor.

Impact

Honest applied-AI story

  • Live on this portfolio: no separate product URL required for the demo
  • Tool trace + eval harness for interview credibility
  • Cuts "where do I click?" friction for recruiters on phones

Pair with Relay

Optional RELAY_GATE_URL routes Astra LLM calls through the Relay policy gateway — so the same session appears in AgentOps audit. Agent plus platform story.

Reflections

  • Tools beat long system prompts: retrieve facts; don't paste the whole résumé every turn.
  • Show the trace: recruiters trust what they can see running.
  • Keep failures honest: missing APIs and rate limits should surface as clear UI, not hallucinated success.

External links open in a new tab.