Buzzworks
Period: May 2025–May 2026
There’s a workflow behind that message.
Designing and building a personalized WhatsApp HR platform, from account verification and onboarding to everyday employee requests.
- Role
- Full Stack Software Development Intern
- Scope
- Conversational UX design · Full-stack development · Workflow orchestration · API integration · Deployment
HR workflows, inside a conversation
Buzzworks provides HR services and software to businesses. I extended its existing Veytan HR platform into WhatsApp, allowing candidates and employees to complete tasks through a conversation connected to their accounts.
The application supported onboarding, forms, documents, offers, signatures, leave requests, status checks, and company-policy questions. It was developed for Buzzworks’ own use and as a service for client companies.
I was the sole developer responsible for designing and building the conversational application from scratch. I worked with product stakeholders on requirements, company teams on existing and additional APIs, the infrastructure team on hosting, and Wacto’s team on messaging integration.
Explore the experience
Different workflows called for different interactions: selecting a task, correcting a form, reviewing an offer, or asking an open-ended question.
The reconstructed examples below show several of those journeys, using fictional information.
Hi Meera! You have 3 pending tasks. Choose one to continue.
View tasks
This example follows one path; the other options are shown for context.
Step 1 of 9
Designing within WhatsApp
Make choices easier to navigate
I used buttons and single-choice lists where users were selecting from known options, keeping text input for information they needed to provide. Menus, contextual prompts, and return paths helped people move through the available workflows without memorizing commands.
Let people correct an answer
Forms did not end with the first round of inputs. I built a review step that summarized the collected information and let users select individual fields to edit before submission.
After a correction, the application returned an updated summary so users could check their information without starting over.
Work within the platform’s limits
WhatsApp limited selection lists to ten items. When an account had more pending tasks, I displayed the first ten and explained which additional tasks would become accessible as the visible ones were completed.
This made the constraint explicit and gave users a next action rather than leaving the remaining tasks unexplained.
Behind the conversation
I separated messaging integration, conversational workflow logic, and backend API interactions into modular services packaged with Docker.
Meta’s WhatsApp Business APIs, Wacto, and webhooks connected incoming messages to the application. A Redis-backed state machine tracked the active workflow and collected information, while task handlers retrieved account-specific data and submitted updates through Veytan and company APIs.
Collecting an answer and completing a backend task were separate steps. The application needed to preserve that distinction while supporting review, editing, and submission.
- Employee or candidatein WhatsApp
- Messaging integrationMeta WhatsApp Business APIs · Wacto · webhooks
- Workflow logicRedis-backed state machine · task handlers
- Backend API interactionsVeytan and company APIs
- Company systemsand document operations
Engineering decisions
Select the documents before asking the model to read them
For company-policy questions, I designed a two-stage Claude workflow to avoid sending the full document collection into every request.
The first stage received the question alongside document titles and descriptions, then selected relevant files. The application retrieved those files through a content API, and the second stage used the returned, processed document content to answer the question.
- The questionwith document titles and descriptions
- Stage 1 · ClaudeSelects relevant files
- Content APIretrieves the selected documents and returns their processed, chunked content
- Stage 2 · ClaudeAnswers using the returned content
- The answerdelivered in WhatsApp
Separating selection from answering limited unnecessary retrieval and model context, with the aim of reducing token costs and response time. It also introduced a dependency: the answering stage needed the selector to find the appropriate material.
Treat an upload as part of a task
A document arriving in WhatsApp did not mean the underlying task was complete.
I integrated media retrieval, OCR, and company-backend storage workflows so uploaded files and extracted information could be associated with the correct account and task. This supported identification and KYC documents alongside other forms and attachments.
The work connected a familiar interaction—sending a file—to the processing and submission required by the HR system.
Deployment and delivery
I deployed the containerized application on AWS EC2, coordinating server setup and connectivity with the infrastructure team. I configured messaging webhooks and used Postman to inspect and test the APIs behind the workflows.
Throughout development, I led demonstrations and technical walkthroughs to gather feedback and refine the experience.
At the stage documented here, the platform was being prepared for integration into ICICI Bank’s internal infrastructure.
Tools and infrastructure
| Area | Tools and approach |
|---|---|
| Messaging | Meta WhatsApp Business APIs · Wacto · Webhooks |
| Workflow orchestration | Redis-backed state machine · Task handlers |
| Infrastructure | Docker · AWS EC2 |
| Backend integration | Veytan and company REST APIs · Postman |
| Documents | Media APIs · OCR · Company-backend storage integration |
| Policy questions | Two-stage Claude document selection and answering |
What I took from it
Building this application taught me to consider the conversation and the system together. A simpler choice on screen could require careful state handling underneath; a useful backend capability still needed an interaction someone could navigate.
I also learned how much progress depended on working across boundaries: clarifying requirements, understanding another team’s API, debugging an integration, and following the journey through to completion.