This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
Boundary is an AI-powered assistant that helps freelancers and small businesses handle customer requests without losing sight of their agreements and policies.
If you've ever freelanced, you probably know the situation: a client asks for a few "small additions" that weren't discussed initially, or a customer requests a refund that doesn't quite fit your policy. You want to be helpful, but you also need to protect your time, money, and boundaries.
That's the problem I wanted to tackle with Boundary.
It currently has two modes:
- Project Scope: Compare a client's new request against the original project agreement and identify potentially out-of-scope work.
- Customer Policy: Compare a customer's request against a business policy and flag potential conflicts.
For each request, Boundary provides a classification, relevant evidence from the supplied terms, uncertainties to consider, a suggested next step, and a professional reply ready for review.
The important part is that Boundary doesn't just say yes or no. It shows you why a request may be problematic and what information might be missing.
Who would pay for it? Freelancers, independent consultants, designers, agencies, and small online businesses that regularly handle client requests but don't have dedicated contract-management or customer-support teams.
The goal is simple: spend less time figuring out how to handle awkward customer conversations and more time doing the work that matters.
Demo
The input prompts and output answer photos of both the "Project Scope" and "Customer Policy" modes are attached below.
Project Scope
Customer Policy
Code
GitHub repository:
theikosB
/
boundary-ai
An open-weight AI assistant that helps freelancers and small businesses handle customer requests against their agreements and policies. For submission to Hacktoberfest 2026 Week 2 Challenge: Side Hustle
Boundary
Know where the agreement ends. Respond with confidence.
Boundary is an AI-powered assistant for freelancers and small businesses that helps them evaluate customer requests against their existing project agreements and business policies.
Whether a client requests additional work beyond a project's agreed scope or a customer asks for a refund that conflicts with a business's policy, Boundary helps identify relevant terms, highlight uncertainties, suggest a next step, and draft a professional response.
Instead of making decisions on your behalf, Boundary gives you the context to make better-informed decisions.
The Problem
Freelancers and small businesses regularly face situations where a customer request conflicts with an agreement, a policy, or an expectation that was never clearly established.
Handling these situations can be difficult:
- Is a client's new request included in the original project scope?
- Does a refund request meet the business's stated conditions?
- Which clauses are relevant to the situation?
- How…
The project is built with Python, Flask, HTML, CSS, and JavaScript, with Gemma powering the core analysis.
The repository includes the application, prompt construction, hosted model integration, frontend, configuration example, and setup instructions.
How I Built It
I built Boundary using Gemma, an open-weight language model, through Google's hosted inference API. The application uses Python and Flask for the backend, with HTML, CSS, and JavaScript for the interface.
How it works
User enters agreement + customer request
|
v
Flask Backend
(app.py)
|
v
Prompt Builder
(prompts/boundary.py)
|
v
Hosted Gemma Model
(services/gemma.py)
|
v
Structured JSON
|
v
Classification | Evidence | Uncertainties
Next Step | Draft Reply
|
v
Human Review
The application has two modes: Project Scope, which compares client requests against project agreements, and Customer Policy, which evaluates requests against business policies.
I designed the prompts to ground the analysis in the user's supplied terms, avoid inventing clauses or obligations, and explicitly identify missing information. Gemma returns structured JSON containing a classification, supporting evidence, uncertainties, a suggested next step, and a draft response. Flask validates this output before the frontend presents it to the user.
I chose hosted inference rather than running the model locally, keeping development lightweight on my laptop without requiring a local GPU or a large model download. This let me focus on building the application around Gemma and turning its capabilities into a practical tool.
The result is a working prototype in which the model does more than draft text: it helps connect a recommendation to the evidence behind it, while leaving the final decision to the human user.
My First User
My first user was me!
I tested Boundary against two realistic scenarios: a client requesting extra deliverables and revision rounds beyond a logo package, and a customer requesting a refund that conflicted with a digital-product policy.
Boundary correctly identified the relevant terms, highlighted the potential scope or policy conflict, and drafted a professional response in both cases.
These initial tests helped me validate the core workflow before putting it in front of other users. My next goal is to get feedback from freelancers and small-business owners who regularly handle these situations.
What I Learned
Building Boundary reinforced something I find important about AI applications: generating a convincing answer isn't enough.
A useful system should also explain what supports its conclusion, acknowledge what it doesn't know, and avoid presenting an inference as an established fact.
That distinction is particularly important when a tool helps people make decisions involving money, customer relationships, and contractual expectations.
Boundary is an initial step toward that goal, and there's plenty more to improve as I test it with a wider range of real-world scenarios.
Prize Categories
- Best Use of Gemma — Boundary uses Gemma as the core reasoning engine for comparing customer requests against supplied agreements and policies, extracting relevant evidence, identifying uncertainty, and drafting actionable responses.




Top comments (0)