Start with one job and grow from there.
Free to start · No credit card required
# Search Gmail for NDAs under the watched label that look unprocessed.
gmail.threads.list(label={{nda_label}}, query="has:attachment")
# For each candidate thread, check for an existing draft reply on it and an
# existing file in {{nda_folder}} named after the counterparty. Either one
# means it's already been handled — skip it.
gmail.drafts.list(threadId=thread.id)
drive.files.list(folder={{nda_folder}}, query="name contains '<counterparty>'")
docs.documents.get) so you're reading the actual body — not the
Gmail preview pane or the first page.| Clause | Routine | Flag |
|---|---|---|
| Type | Mutual | One-way, when we're also disclosing our own confidential info |
| Confidentiality duration | 2–3 years post-disclosure | Perpetual, or silent on duration |
| Governing law / venue | Our home jurisdiction | Counterparty's jurisdiction or an unfamiliar third one |
| Non-solicit | None, or ≤ 12 months, employees only | > 12 months, or extends to customers/contractors |
| Remedies | Standard damages; injunctive relief available to both | One-sided injunctive relief (counterparty only) |
| Residuals clause | Present, standard carve-out for retained general knowledge | Missing, or broad enough to cover specifics, not just recollection |
| Return/destruction of info | Either party, on request or termination, ≤ 30 days | No obligation to return/destroy, or > 30 days |
| Assignment | Requires consent, except to an affiliate/successor | Freely assignable without consent |
| Indemnification | None (standard for an NDA) | Any indemnification obligation placed on us |
docs.documents.batchUpdate
with the request's writeControl/suggester identity set so the change lands as
a suggestion, not an applied edit) — never as a direct write to the document.
Keep the redline close to our standard position (e.g., propose the 2-year term,
not a negotiating opener). One redline per flagged clause; reference the
section number.