This is a submission for the MLH x DEV Writing Challenge
What I Built
Asking an AI about your own documents has an awkward trust problem. It gives a confident answer, and you have no idea whether it came from your files or from the model's imagination.
OpenLoom tackles that. You upload your PDFs and notes, ask a question, and OpenLoom answers using only those documents. Every claim points back to the exact passage it came from, like a thread you can pull. If the answer isn't in your files, it says so instead of guessing.
The name comes from weaving: many separate threads of source material become one answer, and you can always trace it back.
Demo
The flow is simple:
- Upload one or more PDFs or text files.
- Ask a question in plain language.
- Read the answer, then expand any citation to see the original passage and the file and page it came from.
Code
OpenLoom
OpenLoom is a lightweight platform for building and running AI-powered applications that leverage open models. It helps teams connect model workflows, orchestration logic, and deployment pipelines without locking themselves into a single proprietary provider.
What OpenLoom does
OpenLoom gives developers a practical way to:
- orchestrate AI workflows and tool usage
- connect applications to open-source large language models
- manage prompts, data flows, and model calls in a reusable way
- integrate AI features into products while keeping control over model choice and deployment
- support experimentation and iteration across models and environments
In simple terms, OpenLoom helps turn model capabilities into usable application features with a clear and flexible architecture.
Where the open model is used
The open model is used in the model layer of OpenLoom, where it powers inference, reasoning, and task execution in a transparent and portable way. This is typically the place where:
- chat and agent workflows run
- โฆ
Open-Source Technologies
OpenLoom is built entirely from open pieces, and all of it runs locally:
-
Embeddings:
sentence-transformersturns document chunks into vectors. - Vector search: Chroma stores the chunks and finds the most relevant ones for a question.
- Language model: an open-weight Gemma model, served through Ollama, writes the answer from the retrieved passages only.
- Interface: Streamlit for upload, questions, and source viewing.
The key design choice is the prompt. The model is told to answer only from the retrieved passages, cite them by number, and say "not found in your documents" when the evidence isn't there. That one rule is what makes the citations trustworthy.
What I Learned
Retrieval quality matters more than model size. Chunk size and overlap changed answer quality more than anything else, because a chunk that cuts a thought in half gives the model nothing useful to cite. Keeping the file name and page number attached to every chunk made citations nearly free to build.
Hackathon Experience
I built OpenLoom for Hacktoberfest 2026, MLH's open-source AI hackathon, where the goal was to build something new with open-source AI at its core. Building against that constraint pushed me toward local models, and that turned out to be the right call for a tool that handles people's private documents.
Top comments (1)
Excited to be part of this challenge! ๐
I built OpenLoom for Hacktoberfest 2026. You upload your own PDFs and notes, ask a question, and it answers using only those documents, with a citation for every claim so you can trace it back to the exact passage.
It's built on open-source AI that runs locally (open embeddings, Chroma for search, and Gemma through Ollama), so your documents never leave your machine.
Would love to see what everyone else built at their hackathons! ๐งต