Karkhana at work

Four jobs, run for real.

A lawyer, an accountant, an analyst and a property manager each hand Karkhana a folder and a request in plain English. Everything below — the steps, the questions it asked first, and the files it produced — is what it actually did, not a mock-up.

About these examples: the companies and documents are invented. Each example is a single run, made on 24 September 2026 in Karkhana's default mode, which asks before changing anything; every question it asked was answered yes. Planning used OpenAI's GPT-5.5 and the work GPT-5.4. With an AI company's model, the parts of files the agent reads are sent to that company; with a model running on your own computer, nothing leaves it.

For lawyers

Which supplier contracts renew before anyone notices?

An in-house lawyer has six supplier agreements, each with its renewal terms written differently.

The folder

  • ashgrove-services-agreement.docx
  • brightwater-services-agreement.docx
  • harbourline-services-agreement.docx
  • kestrel-services-agreement.docx
  • meridian-services-agreement.docx
  • oakfield-services-agreement.docx

The request

“Today is 1 October 2026. Read every contract in this folder and make a spreadsheet called renewals.xlsx with one row per contract: the supplier, when the current term ends, whether it renews automatically, the notice period, and the last day we can give notice to stop it renewing. Then tell me which contracts need action before 31 December 2026, including any where the notice deadline has already passed.”

What it did

  1. Planned the job in five steps, shown before any work began.
  2. Read all six contracts and found each renewal clause — notice given in days in some, in months in others, and one contract that does not renew at all.
  3. Tried to work the deadlines out on its calculator, which refused: it does arithmetic, not calendar dates.
  4. Handed the reading of the contracts to a helper agent, asking first: delegate · write. The helper works under the same rules and approvals as Karkhana itself.
  5. Asked before writing the spreadsheet: create_xlsx(renewals.xlsx) · write
  6. Checked the result — its check read the finished spreadsheet and confirmed the work first time — then answered.

What it produced

renewals.xlsx, as written. The highlighted rows are the three contracts it said need action.

SupplierCurrent term endsRenews automaticallyNotice periodLast day to give notice to stop renewal
Oakfield Security Systems31 March 2028Yes30 days' written notice before expiry1 March 2028
Meridian Payroll Bureau1 March 2027Yes6 months' written notice before end of current period1 September 2026
Ashgrove Cleaning Services15 November 2026NoNo automatic renewal; any continuation requires a new written agreement signed by both partiesN/A
Kestrel Cloud Hosting Ltd31 January 2027Yes3 months' written notice before end of current term31 October 2026
Brightwater Office Supplies30 June 2027Yes60 days' written notice prior to expiry of current term1 May 2027
Harbourline Logistics Ltd31 December 2026Yes90 days' written notice before end of current term2 October 2026

…and the end of its answer, in its own words:

Contracts needing action before 31 December 2026:

Meridian Payroll Bureau — notice deadline 1 September 2026; this has already passed.
Harbourline Logistics Ltd — notice deadline 2 October 2026.
Kestrel Cloud Hosting Ltd — notice deadline 31 October 2026.

Also relevant: Ashgrove Cleaning Services ends on 15 November 2026, but it does not renew automatically, so there is no notice deadline to stop renewal.

Worth knowing

  • Every date above is correct. The deadlines were worked out by the AI: the calculator Karkhana uses for arithmetic does not do calendar dates, so check each one against its contract before relying on it.
  • It reads what the contracts say. It does not give legal advice about them.
For accountants

What is still owed, and by whom?

A bookkeeper has a quarter's invoices and the payments that came in against them — including one invoice paid in two instalments and one payment recorded under a differently written reference.

The folder

  • invoices.csv — 12 invoices
  • payments.csv — 10 payments

The request

“Reconcile invoices.csv against payments.csv. Which invoices are unpaid or only part-paid, and how much is still owed on each? Put them in a spreadsheet called outstanding.xlsx with a total for each client, and tell me the total outstanding.”

What it did

  1. Planned the job in five steps and read both files.
  2. Asked before running a short script to match payments to invoices: bash(powershell …) · execute. It ran in Karkhana's sandbox, confined to this folder and with no network. The script treated “inv 1005” and “INV-1005” as the same invoice.
  3. Worked out every figure with its calculator, so the arithmetic is on the record: 2275.75-2000 = 275.75 sum(275.75,3890.25) = 4166 sum(275.75,480,960,3890.25,745) = 6351
  4. Asked before writing the spreadsheet: create_xlsx(outstanding.xlsx) · write
  5. Checked the result — its check read the finished spreadsheet and confirmed the figures first time — then answered.

What it produced

outstanding.xlsx, as written: the invoices still owed, then a total for each client.

ClientInvoice NoInvoice DateInvoice Amount (GBP)Paid (GBP)Outstanding (GBP)
Coldwell FarmsINV-10072026-08-092,275.752,000.00275.75
Dunmore ArchitectsINV-10082026-08-161,480.001,000.00480.00
Birchmoor DentalINV-10102026-08-30960.000.00960.00
Coldwell FarmsINV-10112026-09-063,890.250.003,890.25
Dunmore ArchitectsINV-10122026-09-13745.000.00745.00
Client Total: Birchmoor Dental960.00
Client Total: Coldwell Farms4,166.00
Client Total: Dunmore Architects1,225.00
Grand Total6,351.00

Worth knowing

  • Every figure is correct, including the invoice paid in two parts, which it correctly left out as fully paid.
  • It matched payments by their reference. A payment with no reference, or one covering several invoices, still needs a person's judgement.
  • Commands run only in the sandbox and only after you say yes; the sandbox cannot reach the internet.
For analysts

A board briefing from the numbers and the notes

An analyst has a quarter-by-quarter revenue file and three trading notes written by the business, and needs one page for the board.

The folder

  • sales-by-region.csv
  • trading-note-q1-2026.docx
  • trading-note-q2-2026.docx
  • trading-note-q3-2026.docx

The request

“Using sales-by-region.csv and the three trading notes, write a one-page briefing called brief.docx for the board: revenue by region for Q1 to Q3 2026, the percentage change from Q1 to Q3 for each region and in total, and the risks the notes raise more than once.”

What it did

  1. Planned the job and read the revenue file and all three notes.
  2. Worked out every percentage with its calculator, one call per figure: (262900 - 205500) / 205500 * 100 = 27.93…
  3. Asked before writing the briefing: create_docx(brief.docx) · write
  4. Checked the result — its check read the finished briefing and confirmed the work first time — then answered.

What it produced

brief.docx — the table, as written

RegionQ1 2026 revenue (£)Q2 2026 revenue (£)Q3 2026 revenue (£)Q1 to Q3 change
North412,000438,500471,200+14.4%
South389,000371,400352,600-9.4%
East205,500231,800262,900+27.9%
West298,300301,100296,700-0.5%
Total1,304,8001,342,8001,383,400+6.0%

…and the risks, as written:

Recurring risks raised more than once in the trading notes are: (1) supplier and freight delays, which were reported in Q1, Q2 and Q3 and affected stock availability and timing of promotions; (2) currency pressure on imported ranges, reported in Q1 and Q3 as sterling weakness increased imported costs; and (3) competitor discounting in the South, reported in Q2 and Q3 and linked to weaker footfall and falling South revenue.

Worth knowing

  • Every number and every risk is correct. The percentages are rounded to one decimal place; the calculator's unrounded results are in the record.
  • Deciding that two differently worded passages describe the same risk is a judgement. The briefing says which quarters each risk came from, so it can be checked against the notes.
For property managers

What does the building earn, and what falls due next year?

A property manager has six leases for one building, with the rent stated three different ways — and a side letter that quietly changed one of them.

The folder

  • unit-1-hollin-bakery-lease.docx
  • unit-2-marlow-opticians-lease.docx
  • unit-3-greaves-holt-lease.docx
  • unit-4-tillys-coffee-lease.docx
  • unit-5-pennine-cycles-lease.docx
  • unit-5-pennine-side-letter-2026.docx
  • unit-6-ardent-dental-lease.docx

The request

“Today is 1 October 2026. Go through every document in this folder and make a spreadsheet called leases.xlsx with one row per unit: the tenant, the annual rent, the next rent review date, and any break option with the last day notice can be given. Flag every rent review or break date that falls in 2027, and tell me the total annual rent across the building.”

What it did

  1. Planned the job in six steps.
  2. Read all seven documents, the side letter included.
  3. Worked out the rent roll with its calculator — one rent is quarterly and one is per square foot: 28000 + (9250*4) + (22.50*1800) + 18600 + 31500 + 45000 = 200600
  4. Was sent back by its check for answering before the spreadsheet existed, then asked before writing it: create_xlsx(leases.xlsx) · write
  5. Was sent back again — its check read the spreadsheet and found two real mistakes (below).
  6. Asked again, rewrote the spreadsheet, and the check confirmed it.

What its check caught

“As of 1 October 2026, Unit 1’s 25 March 2026 rent review is already past, so it should not be recorded as the next rent review date. Also, the request asks to flag every rent review or break date falling in 2027; Unit 3 has a break date of 1 June 2027, but the spreadsheet flags the break/notice column as ‘No’ because the notice deadline is in 2026. That misses a 2027 break date.”

What it produced

leases.xlsx, as finally written. The highlighted rows are the three units with a 2027 date.

UnitTenantAnnual Rent (£)Next Rent Review Date (as of 1 Oct 2026)Rent Review Date in 2027?Break OptionBreak DateBreak Date in 2027?Last Day Notice Can Be Given
Unit 1Hollin Bakery Ltd28,000Not stated after 25 March 2026 in the leaseNoNo break optionNo
Unit 2Marlow Opticians LLP37,00029 September 2027YesTenant may end lease29 September 2027Yes29 March 2027
Unit 3Greaves & Holt Accountants40,5001 June 2027YesEither party may terminate lease1 June 2027Yes1 December 2026
Unit 4Tilly's Coffee House Ltd18,600No rent reviewNoNo break optionNo
Unit 5Pennine Cycle Works Ltd31,50024 June 2027YesNo break optionNo
Unit 6Ardent Dental Care Ltd45,00025 December 2028NoTenant may terminate lease25 December 2026No25 June 2026
TOTAL200,600

…and from its answer, in its own words:

Unit 5 — Pennine Cycle Works Ltd … Next rent review date: 24 June 2027 (2027 flag) … This review date comes from the 12 January 2026 side letter, which changes the next review from 24 June 2028 to 24 June 2027.

Total annual rent across the building: £200,600.

Worth knowing

  • Every figure and date is correct, including the review date the side letter moved — the lease alone gives 2028.
  • Unit 6's last day for break notice, 25 June 2026, has already passed. The spreadsheet gives the date without saying so; the request did not ask, and it is the kind of thing a person reading the sheet should still check.
  • The dates were worked out by the AI, not the calculator, so check them against the leases before acting on one.
Other work it suits

The same shape of job turns up everywhere

A folder of documents, a request in plain English, figures worked out on the record, a finished file at the end — and a question before anything changes. These are the kinds of requests that fit. Unlike the four above, they have not been run as worked examples.

Consultants and advisers

“Turn these twelve interview notes into a findings presentation, one slide per theme, with who raised each point.”

Procurement and operations

“Put these five supplier quotes side by side and show which is cheapest once delivery charges are included.”

Compliance and audit

“Check each policy in this folder for an owner, a version number and a review date, and list what is missing or overdue.”

HR and people teams

“Compare our leave policy with the new minimums in this memo and list every place ours falls short.”

Researchers

“From each paper in this folder, pull the sample size, the method and the main result into one table.”

Project managers

“From this month's meeting notes, write the status report: decisions, actions, owners and anything overdue.”

Journalists and writers

“List every figure quoted in these interview transcripts, with who said it and where.”

Small businesses

“Make a quote in Word for this customer from my price list, with the discount we agreed.”

Where it is not the right tool: scanned documents that are only pictures of text, since it reads text rather than images; email and calendars, which it does not connect to on its own; and decisions that need a professional's judgement — it can gather what the documents say, not give the legal, medical or financial advice. For personal or client data, a model running on your own computer keeps everything on it.

See it on documents like yours

Karkhana is shown by live demo on Windows — on sample files, or documents you bring.