Open this lesson in your favourite AI. It'll walk you through the why, explain the demo, and quiz you on the try-it list.
Everything in this course lands on the specific shape of YOUR week, not a hypothetical knowledge worker. Before writing a line of code you need a real ledger of where your time goes, in enough detail that the bot's design decisions collapse out of it. The audit is not therapy — it's a spreadsheet with three columns (task, hours/week, delegation column) and a rule that you fill it in from actual events (last week's calendar, last week's sent-mail folder, last week's DMs), not from your mental model of your job. Almost everyone who does this audit is surprised: 15-20% of their week is invisible admin (calendar coordination, follow-up nudges, filing, meta-communication) that never made it into any job description but eats a substantial slice of every day. That invisible admin is exactly what a personal bot is best at, and finding it is the point of this task.
A structured audit template you fill from ground-truth sources, then aggregate into a delegation-column histogram. The audit doubles as the bot's initial task backlog.
Use these three in order. Each builds on the one before.
In one paragraph, explain why doing a time audit before building an agent matters more than the agent's technical design.
Walk me through how invisible admin work accumulates in a knowledge worker's week and why it's a good target for personal automation.
My audit shows 40% of my week is routine. Should I automate all of it? What's the second-order effect on my work identity and stakeholders?
import csv
from collections import Counter
# Fill this from real events: calendar, sent mail, DMs. Not from your mental model.
audit = [
# (task_name, hours_per_week, column)
("Calendar coordination replies", 1.5, "routine"),
("Newsletter triage", 0.8, "routine"),
("Meeting follow-up nudges", 1.2, "routine"),
("Weekly report drafting", 2.0, "judgment"),
("1:1 prep + notes", 1.5, "judgment"),
("Recruiter cold-outreach replies", 0.6, "routine"),
("Investor update drafts", 2.5, "learning"),
("Reading + summarizing papers", 3.0, "learning"),
("Deleting spam", 0.4, "routine"),
("Vendor renewal negotiations", 0.9, "judgment"),
]
# Aggregate by column
by_col = Counter()
for _, hours, col in audit:
by_col[col] += hours
total = sum(by_col.values())
print(f"Total audited hours/week: {total:.1f}\n")
for col in ("routine", "judgment", "learning"):
hrs = by_col[col]
pct = 100 * hrs / total if total else 0
print(f"{col:9s}: {hrs:4.1f}h/wk ({pct:4.1f}%)")
# Save for later modules — this is the bot's initial task backlog.
with open("delegation_audit.csv", "w") as f:
w = csv.writer(f)
w.writerow(["task", "hours_per_week", "column"])
w.writerows(audit)
print("\nAudit saved. First automation targets: highest-hours items in the 'routine' column.")
python3 main.py