Agentic AI Cowlar Design Studio, product studio of YC-backed Cowlar
Automated HR letters and the worklogs behind ~$1M/month billing
At Cowlar I built an LLM agent on Google Sheets and Apps Script that drafts HR letters and onboarding checklists and keeps the worklogs that feed a ~$1M-a-month billing system.
3 min read
- Result
- Letters, onboarding checklists and worklogs generated from plain-language prompts instead of written by hand; worklogs reached the billing datasets without being typed in twice.
- Impact
- Removed a manual re-entry step between HR records and billing, a standing source of billing errors in a pipeline processing close to $1M a month. Usage volumes were not tracked.
- My role
- Designed and built the agent, the Sheets data model and the Apps Script document flow; connected its worklogs to the billing datasets I owned · Solo build, ~175-person studio
- Context
- Cowlar Design Studio, product studio of YC-backed Cowlar
- Timeframe
- May 2024 – Jun 2025
- Tools
- Google Apps ScriptLLM APIsGoogle SheetsSlack APIWorkflow automation
- Links
- Code and data available on request
HR paperwork and billing were maintaining the same fact twice
Cowlar Design Studio has about 175 people, and its HR work was high-volume, templated and low in judgement: employment and experience letters, onboarding checklists, and worklogs of who worked on what. In a services business that last record is two things at once. It is an HR artifact, and it is the hours data that billing charges clients for. Keeping it separately in two places meant typing it twice, and every retyped hour was a chance for a billing error in a pipeline processing close to $1M a month.
How I built it
Sheets beat a CRM because the process kept changing
The HR processes were not stable. A packaged HR system makes you model the process before you understand it. Google Sheets as the database, with Apps Script on top, let the data model change as the process changed, and gave me native access to documents, Drive storage and email. I chose speed of change over the stronger access control a packaged system would have given.
The LLM drafts, and scripts do the filing
A plain-language prompt goes to the agent. The LLM turns it into a draft letter or checklist; Apps Script handles everything that must be exact: reading and writing the Sheets database, generating the document, naming it and filing it in the right Drive folder. Slack integrations handled compliance follow-ups. Keeping storage and records in code meant the model never decided where a document lived.
Worklogs went straight into billing
The agent maintained employee worklogs and wrote them where the billing datasets could read them, so hours reached billing without being re-entered. That billing pipeline is the one in my billing case study, where automated capture improved billing accuracy by about 25%. The agent was one part of that pipeline, and I don’t claim that figure for it alone.
Letters and worklogs on request, with no re-entry into billing
Letters, onboarding checklists and worklogs came from a prompt instead of being written by hand, and the manual re-entry step between HR and billing went away. I did not track how many documents it produced or how much time each one saved, so this page gives no usage numbers.
What I’d tell the next team
Look for the fact two departments both maintain, and automate it once. Here it was the worklog. Let the model draft text, and keep every step that must be exact (records, file names, storage) in code you can test.
Limitations and what I’d do next
- No usage data. I didn’t log volumes or time per document. The next version should count both from day one.
- Personal data reached the LLM provider. Letters need employee details. A production version needs a written data-handling policy, a provider agreement that excludes training on the data, and redaction of anything the draft doesn’t need.
- Access control was spreadsheet-level. Sheets permissions are coarse. Role-based access and an audit log of who generated what would be the first upgrade.
- It has a scale ceiling. Sheets plus Apps Script suited a ~175-person studio with changing processes; at several hundred people I would move to a proper HR system and keep the agent as a front end.
- Human sign-off should be on record. Each letter should carry a logged approval before it goes out, so a wrong draft can be traced to who released it.
Technical appendix
Components
| Part | Tool | Job |
|---|---|---|
| Interface | Plain-language prompt | Request a letter, checklist or worklog update |
| Drafting | LLM API | Turn the request and the employee record into a draft |
| Database | Google Sheets | Employee and worklog records, read and written by the agent |
| Documents | Google Apps Script, Drive | Generate, name and file each document; keep the folder structure |
| Notifications | Slack API | Compliance follow-ups |
| Billing link | Worklog sheet → billing SQL datasets | Hours reach billing without re-entry |
Outputs. Employment, experience and warning letters; onboarding checklists per role; employee worklogs.