The workflow before#
MarkIT CRE works in commercial real estate leasing, where a deal moves from proposal to signed lease through rounds of drafting and redlines. Once a landlord and tenant agreed on a proposal, attorneys drafted the lease from it clause by clause. Then both sides traded redlines, arguing over whether each clause was market standard. A first draft took days and ran up legal fees on both sides before anyone had started negotiating the points that mattered. MarkIT CRE wanted something different for its users. Upload a proposal, choose whether the draft should lean toward the landlord or the tenant, and get a market-norm lease back right away.
What we built#
We built a lease drafting API that writes from real lease language instead of from scratch. A user uploads an accepted proposal, picks a side and gets a full draft lease back in one call. Every section is grounded in vetted clauses from actual leases, so the draft reads like something an experienced attorney would recognize as market. It shipped as an MVP, ready to deploy on AWS.
Drafts grounded in real clauses
Behind the API sits a library of real lease clauses stored in a vector database. For each section of the lease, retrieval pulls the closest market-norm language and the model drafts from it. We grounded drafting this way because a lease is the wrong place for a model to improvise. Attorneys trust language they've seen hold up in other deals.
Landlord or tenant, chosen up front
Before generating, the user sets whether the draft should favor the landlord or the tenant. The same proposal can produce a landlord-friendly draft for a property owner or a tenant-friendly one for the occupant's broker. Setting it at the start saves a round of redlines that would otherwise happen anyway.
Clause-level edits, the way redlining works
Negotiation happens one clause at a time, so the API works that way too. It rewrites a single clause without regenerating the whole lease, leaving everything the parties already agreed on untouched. We wrote separate prompt sets for the tasks a negotiator reaches for: summarize a clause, explain how two versions differ, assess which side it favors and rewrite it to market norm.
A market-norm check on every draft
Deviation detection compares a draft against the standard lease corpus and highlights any clause that falls outside the norm. A reviewer sees right away which sections deserve attention instead of reading the whole lease to find the two that matter.
How we delivered it
We delivered the MVP as a Python service with endpoints for full drafting and clause-level edits, packaged in a Docker container ready for AWS. Building it as an API rather than a finished app was deliberate. MarkIT CRE can put drafting inside its own user experience and decide how attorneys and brokers meet it. The MVP proves the core drafting and redlining loop ahead of production deployment.
Before and after#
| Measure | Before | After |
|---|---|---|
| First draft from proposal | 2 to 3 days of attorney drafting | Minutes, one upload |
| Single clause revision | Manual redraft and redline | Targeted rewrite through the API |
| Market-norm check | Attorney judgment, clause by clause | Automatic comparison against a standard lease corpus |
| Draft favorability | Settled through rounds of redlines | Set by the user before drafting |
What's next#
The MVP proves the drafting and redlining loop. Next comes production deployment on AWS and a negotiation workflow: when the other side sends a redline, the system proposes counter-language for each change, and a person approves anything that falls outside the norm.




