This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine.
What I Built
Have you ever received an official notice, university circular or application document and struggled to understand what you actually need to do?
Sometimes the most important instructions are hidden inside lengthy paragraphs, scanned documents and complicated language. Deadlines get overlooked, required documents get missed, and important information gets lost.
I built NoticeLens, a multimodal AI document companion that helps bring those hidden instructions back into view.
The idea behind the Ghost in the Machine theme is that the ghosts aren't necessarily supernatural. They can be the forgotten deadlines, important instructions and information buried inside documents that people receive but rarely understand completely.
NoticeLens allows users to:
- Upload PDF documents and images.
- Get plain-language explanations.
- Extract important dates, amounts, contacts and eligibility information.
- Generate actionable checklists.
- Ask follow-up questions.
- Receive explanations in multiple languages.
Demo
Live application: https://noticelens-mhpm7idueguktzp8ih7zh4.streamlit.app
The demo uses a fictional notice so anyone can experiment without uploading personal documents.
Code
GitHub repository: https://github.com/AIstar007/NoticeLens.git
The repository contains the complete Python application, document-processing modules, Gemma integration, sample documents, tests and setup instructions.
How I Built It
The application uses:
- Python and Streamlit for the interface.
- PyMuPDF to process PDF pages.
- Pillow to normalize and prepare images.
- Google's official Gen AI Python SDK to communicate with Gemma.
- Gemma 4 26B A4B Instruct as the default AI model.
The core workflow is:
- A user uploads a PDF or image.
- PDF pages are converted into images.
- The images are passed to Gemma 4 for multimodal analysis.
- The model generates a structured explanation containing important points, actions, deadlines and details to verify.
- Users can ask follow-up questions based on the generated analysis.
The project also includes safeguards intended to reduce hallucinations and distinguish actual document requirements from suggested next steps.
Why Does Open Innovation Matter?
The application uses Gemma 4, an open-weight model whose official model card identifies its license as Apache 2.0.
The application source code is independently released under the MIT License.
For this prototype, I used Gemma through the hosted Gemini API to make implementation and experimentation faster. This version does not run locally or work offline, and uploaded document images are sent to Google's API.
However, building around an open-weight model provides a path toward future self-hosted deployment and model adaptation instead of depending exclusively on closed-weight AI models.
The goal is to make the underlying AI technology and application code more accessible and reusable.
The Spirit of It
Sometimes the information people need most is already in front of them, buried inside a document they don't have the time or ability to interpret.
A missed deadline or forgotten instruction can have real consequences.
With NoticeLens, I wanted to build something that helps bring that information back to life and turns confusing paperwork into understandable next steps.
Prize Categories
- Best Use of Gemma
Technologies
Python, Streamlit, Gemma 4, Google Gen AI SDK, Gemini API, PyMuPDF, Pillow and GitHub.
Top comments (0)