← All work

Shipping for real users · Side projects

A live WhatsApp bot, and the tool that tailored my CV

Two small products built end to end: a Malayalam WhatsApp enquiry bot in production for an Akshaya e-Centre, and a CV generator that won't let an LLM invent a single fact.

Role
Solo builder
When
2026
Stack
Next.js · TypeScript · Supabase · WhatsApp Cloud API · OpenAI API · Playwright

Live

WhatsApp bot in production

Fact-checked

every CV number validated in code

Malayalam

bot conversations

The problem

A local e-Centre answered the same questions all day on WhatsApp: which documents, what fee, how long. Separately, every job application needs a tailored CV, and LLMs happily make up numbers.

What I did

  • Built and launched a Malayalam WhatsApp bot for an Akshaya e-Centre on Meta's WhatsApp Cloud API: customers browse services, see required documents, fees and processing time, and request a staff callback.
  • Designed the staff follow-up workflow: one open enquiry per phone number, New, Today and Overdue tabs, tap-to-call and WhatsApp buttons, and call outcomes that set the next follow-up date.
  • Secured the webhook by verifying Meta's request signature on the raw body, de-duplicated retried deliveries by message id, and kept the conversation logic a pure function with no I/O.
  • Kept running cost near zero by replying only inside customer-opened conversations with no paid message templates, and read the service catalogue live from Supabase so staff edits reach the bot.
  • Built a CV-tailoring app that turns a hand-verified fact bank and a job description into a one-page tailored CV PDF, with the LLM limited to selecting and lightly rewording bullets.
  • Enforced fact checks in code: any number, skill or bullet id not backed by the fact bank is rejected, followed by a spacing lint, one-page check and rank-based overflow fitter before export.
  • Added on-demand fit analysis and cover letters: JD requirements marked met, partial or missing with fact-bank evidence, a match score computed in code rather than by the model, and token cost per run.
  • Built the application tracker on Supabase: stored PDF and JD per application, automatic status history, resumes locked once sent, a follow-up queue and response-rate insights by CV angle and source.

Outcome

The bot is live and logging real enquiries. The CV you can download from this site was rendered by the job-portal pipeline, from the same fact bank that powers every number on this page.