3rd Place: Human Centered AI Track
Clerki - Your office AI coworker
Clerki is an app for non-tech office workers. Unlike traditional chatbots that only provide advice, it manages your documents, organizes emails, and creates professional outputs through conversation
Core trick
Sandboxed Python agent executes document tasks on Gmail-imported attachments, streaming each tool call to the frontend in real time.
Built with
claudegcppythonreact
Description
Inspiration
The idea for Clerki came from watching my non-technical colleagues struggle with everyday office tasks. I saw administrative assistants manually copy-pasting data from emails into spreadsheets, project managers drowning in scattered documents across different folders, and team members spending hours creating reports that could be automated.
What it does
Clerki is an AI-powered workspace assistant designed for non-technical office workers. Unlike traditional chatbots that only provide suggestions, Clerki:
Connects to Gmail
and automatically imports emails with attachments
Organizes files
into isolated workspaces
Understands and create documents
(PDF, Word, Excel, PowerPoint, images, text)
Takes action
through natural conversation—summarize reports, create documents, analyze data
Learn and create playbooks
Learn user usage through the seesion and do reproducable tasks
Example conversations:
"Analyze the emails from XXX and do the task"
"Summarize all the sales reports in this workspace"
"Create a PPT presentation from this data"
"Find all mentions of 'budget' across my documents"
How we built it
We integrated a mini-agent system that can:
Execute Python code safely in a sandboxed environment
Use specialized "skills" (document processing, web browsing, etc.)
Stream tool usage back to the frontend in real-time
The challenge was making the agent
actually useful
. Early versions would just talk about doing things. We had to build proper tool integrations so it could read files, write files, and execute system commands, all while maintaining security.
Implemented OAuth 2.0 flow for Gmail:
User clicks "Connect Gmail" → redirects to Google consent screen
Backend receives authorization code → exchanges for access token
Token encrypted with Fernet and stored securely
Backend fetches emails and attachments via Gmail API
UI/UX Polish
Challenges we ran into
AI Agent Reliability
Problem
: Early versions of the AI agent would sometimes fail silently or produce incorrect results. Users would ask "Summarize this document" and get a response about a different file.
Solution
: Implemented rigorous tool validation:
Log every tool call and result
Verify file paths exist before reading
Return structured error messages when tools fail
Show users exactly what tools are being used in real-time
Accomplishments that we're proud of
Now Clerki is able to do complex documentation task and able to learn through out the session and can do repetitative tasks by just one click which saves office works a lot of time.
What we learned
Technical Learnings
WebSocket Architecture
: Learned to properly manage WebSocket connections with connection managers, handle disconnects gracefully, and stream chunked responses from AI models.
OAuth 2.0 Flow
: Implemented Google OAuth from scratch—understanding authorization codes, access tokens, refresh tokens, and secure token storage.
Async Python
: FastAPI's async/await patterns were new territory. Learned to use
asyncio
properly to handle concurrent file operations and API calls without blocking.
AI Agent Design
: Building a reliable AI agent is harder than it looks. Early versions would hallucinate file paths or claim to do things they didn't. We learned to:
Validate all tool outputs before proceeding
Implement proper error handling and retries
Stream intermediate results for transparency
The linked repo returns 404, so it was deleted or made private.