Ron Jackson
← Back to Projects
PROJECT 02COMPLETED

RonBot

A completed, AI-powered portfolio assistant that helps visitors explore Ron's work experience, skills, certifications, education and projects using only information published on this website. RonBot is designed to stay grounded, avoid guessing and direct unanswered enquiries to the Contact page.

AI AssistantAWSPythonServerlessRAGGitHub

A grounded portfolio assistant, built for real conversations.

RonBot gives visitors a natural way to explore Ron’s published experience, skills, certifications, education and projects. It is designed to be useful without pretending to know more than the portfolio can support.

Questions are answered from approved website content only. When the evidence is missing, ambiguous or private, RonBot gives a clear, safe response and directs visitors to the Contact page instead of guessing.

  • Website-only evidence, rather than open-web search
  • Natural AI responses with deterministic safety guardrails
  • Accessible, site-wide chat experience built for real visitors
Website-onlyApproved portfolio evidence
Serverless AWSAPI Gateway, Lambda and Bedrock
27 checksBackend safety and regression suite
RonBot open on Ron Jackson's portfolio homepage, answering a question about Ron's current role at Redpanda.
A live portfolio conversationRonBot answers from published website evidence and uses a clear fallback when that evidence is unavailable.

From a visitor question to a grounded answer.

RonBot separates the visitor experience, API boundary, retrieval logic and AI response generation. That keeps the experience fast and conversational while ensuring the model receives only relevant, approved portfolio evidence.

01

Visitor

A visitor asks a question from any page of the portfolio.

02

RonBot widget

The browser sends the question and limited conversation context to the API.

03

API Gateway

The public HTTP boundary applies CORS and route-level rate protection.

04

AWS Lambda

Python validates the request, applies guardrails and retrieves relevant website evidence.

05

Bedrock response

Amazon Nova Micro produces a natural answer from the supplied evidence only.

Evidence path

Approved portfolio pages are processed by a Python ingestion pipeline into a structured JSONL knowledge set. Retrieval selects relevant chunks before any evidence is supplied to the AI model.

Small, purposeful services with clear responsibilities.

The implementation uses managed AWS services where they remove operational overhead, while keeping the core retrieval and safety logic transparent and testable in Python.

Experience

HTML, CSS & JavaScript

A lightweight static portfolio and site-wide RonBot widget, designed for responsive, accessible interaction.

Delivery

Amazon S3 & CloudFront

Static hosting and global HTTPS delivery for the portfolio and browser assets.

API boundary

Amazon API Gateway

A focused HTTP endpoint for questions, with CORS and route-level rate protection.

Application

Python & AWS Lambda

Request validation, guardrails, retrieval, safe fallback behaviour and structured operational logging.

AI response

Amazon Bedrock

Amazon Nova Micro turns selected portfolio evidence into a concise natural-language response.

Knowledge

Python ingestion & JSONL

A repeatable website-only ingestion pipeline and a traceable local knowledge set for retrieval.

The hard part was making the boundaries dependable.

The project evolved through practical issues that are common in real AI-enabled services: keeping source data current, preventing unsupported answers and refining a browser experience without weakening accessibility.

01

Keeping website knowledge current

Portfolio content is the source of truth, but Lambda uses a packaged knowledge snapshot. A repeatable ingestion process and deployment check were introduced so changes to the public site can be reflected safely in RonBot.

02

Preventing plausible but unsupported answers

Natural language models can make answers sound convincing even when evidence is incomplete. Retrieval scoring, evidence-only prompting, deterministic safeguards and a clear Contact fallback keep the assistant within the published record.

03

Making interaction feel intentional

The widget was refined into a site-wide experience with idle, greeting and thinking feedback, keyboard-friendly controls and reduced-motion support — without distracting from the portfolio itself.

Designed to be helpful without overreaching.

RonBot’s useful behaviour is deliberately bounded. The project treats accuracy, privacy and predictable failure handling as product features — not an afterthought once the chat interface works.

01 · GROUNDING

Evidence before answer

Responses are based on relevant chunks from the approved portfolio knowledge set. RonBot is instructed not to infer missing facts or combine details across unrelated roles.

02 · PRIVACY

Professional boundary

Private, sensitive and inappropriate requests are identified early and receive a consistent safe response instead of a speculative answer.

03 · VALIDATION

Bounded input

The API validates request shape and size, limits conversation history, and treats visitor input and chat history as untrusted data.

04 · RESILIENCE

Safe fallback and monitoring

Unsupported questions route visitors to the Contact page. Structured Lambda logging, rate protection and cost monitoring support the production service.

Validated across the code, cloud service and live visitor experience.

RonBot was tested as a complete service, not only as a local Python script. Each release was checked proportionately across automated tests, the public API and the live portfolio.

35

Automated backend checks

Regression coverage for validation, security, privacy, question handling, grounding contracts and external-feedback fixes.

3 layers

End-to-end verification

Local behaviour, the deployed API and the live browser widget were validated for supported and deliberately unsupported questions.

25

Completed milestones

From the requirements boundary through production release, external feedback and final project close-out.

Outcome: RonBot v1 is live: a website-grounded portfolio assistant with a deliberately limited knowledge boundary, practical AWS operational controls, a repeatable testing approach and external-user feedback incorporated before sign-off.
Backlog0
In Progress0
Completed25 / 25

Backlog 0

RonBot v1 is complete. Future work will be planned as a separate v2 project.

In Progress 0

No active work item. RonBot v1 has completed its release, documentation and project review.

Completed 25

RON-01COMPLETE

Requirements & knowledge boundary

Defined RonBot as a website-only assistant: no external searches about Ron, no unsupported guessing, and unanswered enquiries are directed to the Contact page.

RequirementsPrivacyGrounding
RON-02COMPLETE

RonBot architecture

Defined and documented the frontend, API, AI and website-knowledge architecture using low-cost serverless AWS services.

ArchitectureAWSCost
RON-03COMPLETE

Personality & response style

Defined RonBot's friendly, professional and recruiter-ready voice, adaptive technical depth, website-only grounding and Contact fallback behaviour.

UXPrompting
RON-04COMPLETE

Production RonBot character

Created and approved the production RonBot character artwork with AWS hoodie, Redpanda T-shirt, Azure beanie, Google-branded trousers and study material.

BrandingAssets
RON-05 COMPLETE

Local Chat Interface

Built the local RonBot chat interface and connected the initial browser experience, establishing the frontend foundation for asking questions and displaying responses.

Frontend Chat UI Interaction
RON-06 COMPLETE

Launcher Animation & Interaction

Added the animated floating RonBot launcher and interaction behaviour, including hover feedback, open/close transitions, message presentation and reduced-motion accessibility support.

Animation Interaction Accessibility UX
RON-07 COMPLETE

Website Knowledge Ingestion

Built and validated the Python website ingestion pipeline, converting approved portfolio content into clean, structured and traceable JSONL knowledge chunks for RonBot.

Knowledge Python Ingestion
RON-08 COMPLETE

Local Knowledge Retrieval

Built the local Python retrieval and scoring layer, including tokenisation, stop words, query expansion and relevance scoring to select grounded website knowledge for a user's question.

Python Retrieval Scoring Grounding
RON-09COMPLETE

Grounded Answer Acceptance Testing

Improved natural-language retrieval and conversational answers while preserving the website-only knowledge boundary and Contact-page fallback. Validated with an 11 / 11 regression test covering supported and deliberately unsupported questions.

GroundingRetrievalFallbackTesting
RON-10COMPLETE

Recruiter & technical answer depth

Added adaptive answer depth so general visitors receive concise portfolio answers while technical questions can surface deeper website-grounded implementation detail. Improved retrieval for RonBot implementation questions while preserving website-only grounding and the Contact-page fallback for unsupported questions.

UXAIRetrievalGrounding
RON-11COMPLETE

RonBot API

Deployed the RonBot backend to AWS Lambda, exposed it through an Amazon API Gateway HTTP API using POST /ask, connected the browser frontend to the live endpoint, configured CORS for local and production origins, and validated grounded answers, fallback behaviour and frontend error handling.

API GatewayLambdaCORSTesting
RON-12COMPLETE

Serverless Backend Hardening & Observability

Hardened the AWS-hosted RonBot backend with structured Lambda logging, request IDs, duration tracking, safe 400/500 error handling, configurable log levels, CloudWatch observability, least-privilege IAM review and live API regression testing.

LambdaCloudWatchIAMObservability
RON-13 COMPLETE

AI Model Integration

Integrated Amazon Nova Micro through Amazon Bedrock into the production RonBot backend, using retrieved website evidence to generate grounded AI responses while preserving website-only knowledge boundaries, deterministic safeguards and the Contact-page fallback. Deployed the integration to AWS Lambda with least-privilege Bedrock permissions and validated the end-to-end production response path.

Amazon Bedrock Nova Micro AI Grounding Lambda
RON-14COMPLETE

Conversation context

Support natural follow-up questions while preventing chat history from overriding grounding rules.

ContextGuardrails
RON-15COMPLETE

Security controls

Added request and payload validation, bounded conversation limits, API Gateway rate controls, prompt-injection safeguards and clear rate-limit feedback in the browser. Verified through local tests, Lambda deployment, public API validation and live-site testing.

SecurityRate LimitsValidationPrompt SafetyTesting
RON-16COMPLETE

Privacy guardrails

Prevent external personal-data retrieval and define safe behaviour for personal or inappropriate questions.

PrivacySafety
RON-17COMPLETE

Cost controls & FinOps monitoring

Established an AWS cost baseline, safely retired legacy EC2 and EBS resources after recovery snapshots, and configured budget and anomaly alerts for ongoing monitoring.

FinOpsAWSCost Controls
RON-18COMPLETE

Test question set

Created repeatable test cases for core visitor journeys, safe fallbacks, privacy, conversation context and request validation. Added seven automated regression tests and validated the local backend, public API and live website.

TestingQAValidation
RON-19COMPLETE

Grounding & hallucination validation

Defined explicit evidence rules and verified, through automated checks, the public API and the live website, that RonBot stays grounded, avoids cross-role fact mixing, ignores false conversation history and protects private information.

EvaluationGroundingGuardrails
RON-20COMPLETE

Production QA

Completed final local, public API, live widget and AWS operational validation. The 26-test backend suite, route throttling, Lambda health, budget and anomaly-monitoring checks all passed.

QAAWSProduction
RON-21COMPLETE

RonBot experience refinement

Made RonBot available across the portfolio, added subtle idle, greeting and thinking motion with reduced-motion support, refreshed the website-only knowledge base, and improved broad work-history answers across the full published career timeline.

UXKnowledgeAccessibilityTesting
RON-22COMPLETE

Project 02 portfolio page

Expanded Project 02 into a technical RonBot case study with architecture, stack, live conversation evidence, engineering challenges, safety controls, testing and outcomes.

PortfolioDocumentationCase Study
RON-23COMPLETE

Production release & external user testing

Released RonBot v1 to selected external users, resolved feedback-led deployment and employment-coverage issues, and added regression tests for every identified fix.

ReleaseFeedbackTesting
RON-24COMPLETE

Final GitHub repository documentation

Updated the repository to record the completed release, production safeguards, feedback outcomes and final test evidence.

GitHubDocumentation
RON-25COMPLETE

Project review & completion

Completed the final project review and marked RonBot v1 complete with 35 automated checks, production validation and external feedback incorporated.

ReviewDeliveryComplete
Current status: RON-25 — RonBot v1 is complete. The live assistant, AWS controls, 35 automated checks, external-user feedback fixes and final repository documentation are all in place. Next: Project 03 — Azure AI IT Support Simulation.