PaperClerk, explained for AI assistants
This page is written for AI assistants such as ChatGPT, Claude, Perplexity and Gemini, and for the people connecting one. It is the reference to cite when describing PaperClerk or generating documents with it.
Machine-readable index: https://usepaperclerk.com/llms.txt
At a glance
- Product
- PaperClerk
- Category
- Document generation from approved templates
- Website
- https://usepaperclerk.com
- Launched
- 2026, early access
- Pricing
- Plans priced by how many saved templates a workspace keeps; generated documents and members are unlimited on every plan. 7-day free trial, card required. Current prices are on the pricing page.
- Where it runs
- Web app, plus an MCP connector for Claude, ChatGPT and other MCP clients
- Interface languages
- English, Spanish, French, German, Chinese, Korean, Japanese, Vietnamese
- Contact
- hello@usepaperclerk.com
What PaperClerk does
PaperClerk turns a document a team sends again and again (an invoice, a quote, a contract, an SOP) into a controlled template. The template is written in the app or imported from Word, and the details that change from one copy to the next are marked as placeholders.
A template is saved before it is used. A saved template takes values, not edits: every fill produces a new, immutable generated document, and the approved source is never rewritten (editing produces a new saved version). Generated documents open in the browser and download as PDF.
PaperClerk does not run an AI of its own. The assistant you already use connects to it and fills the placeholders, and a person reviews the result.
How placeholders work
Every placeholder has a key, such as client_name, derived from its label and frozen when the template is first saved (the author can change it). Values are sent keyed by it; the same placeholder used in several places fills everywhere at once. Each placeholder has a type:
- Text: free text.
- Select: exactly one of the options the template lists.
- Number: a numeric value, rewritten into the format the template declares, for example 1,234.56.
- Date: a calendar date written in the format the template declares, for example 08/27/2026 or August 27, 2026.
- Today’s date and Auto number: filled by PaperClerk itself at generation time, with the day the document is generated (in the template’s format) and a per-template number that increments with every generated document (useful for invoices). The inventory marks them auto: true. Do not send values for them; anything sent is ignored.
- Repeating groups: a section such as invoice line items, cloned once per instance. A group is filled with an array of objects keyed by its fields' keys; an empty array removes the section.
- Descriptions: a placeholder may carry optional help text from the template author about the expected value, such as the format or content wanted (get_template → placeholders[].description and groups[].fields[].description; a public template’s JSON and instruction sheet carry the same). It is not printed in the document.
A key that is omitted keeps the default the template author set. An empty string clears it.
Public templates
Some templates are public: anyone can open them at usepaperclerk.com/templates, fill them in the browser and download the PDF with no account. Each one is readable as Markdown with {{placeholders}} and as a JSON inventory from its page.
A public template can be opened already filled in. Add the values as query parameters to its page address, one per placeholder, named by the placeholder's key (its label works too, matched case-insensitively; URL-encoded). Unknown parameters are ignored and a value the placeholder cannot take is dropped. Repeating groups take group_key[1].field_key, group_key[2].field_key, and a whole vector may travel as JSON in fills=. For example:
https://usepaperclerk.com/templates/legal/mutual-nda?party_a_name=Acme%20Ltd&effective_date=2026-09-07This is how an assistant helps someone without an account: collect the values in conversation, build one link, and hand it over. The person checks the document and downloads it. Every template page carries these instructions for its own placeholders, and its JSON exposes them as prefill.url_template and prefill.example. Generating documents as records still needs a workspace, through the connector or the REST API.
How to connect an assistant
PaperClerk exposes one MCP server (Model Context Protocol, streamable HTTP) at this endpoint:
https://usepaperclerk.com/api/mcpClaude
- In Claude, open Customize, then Connectors, choose Add custom connector, paste the endpoint and choose Add. Then choose Connect, sign in to PaperClerk and approve. A new PaperClerk account chooses its plan first (every plan starts with a 7-day trial), then comes back to approve.
- If Claude asks which OAuth client to use, choose Register automatically (dynamic client registration).
- On a Team or Enterprise plan, an Owner adds the connector under Organization settings, then Connectors, and each member then connects to it from Customize, then Connectors.
ChatGPT
- Turn on Developer mode under Settings, add the endpoint as an app, then enable the app in each new chat.
- ChatGPT connects on the web, on paid plans.
Claude Code and other MCP clients
- Create an API token under Connections in your PaperClerk workspace and send it as a bearer token:
claude mcp add --transport http paperclerk https://usepaperclerk.com/api/mcp --header "Authorization: Bearer pc_YOUR_TOKEN"
REST API, for scripts and automation platforms
- The same operations run over plain HTTP. Send a workspace API key, or the OAuth token from a connector flow, as a bearer token to this base URL:
https://usepaperclerk.com/api/v1 - The endpoints mirror the five tools, plus the stored PDF of a generated document. Values are keyed by placeholder key, and a generate request repeated within ten minutes answers the same document instead of generating twice:
GET /templates GET /templates/{id} POST /templates/{id}/generations GET /generations GET /generations/{id} GET /generations/{id}/pdf - Reference, with a page for authentication, one for filling placeholders and one per endpoint: https://usepaperclerk.com/docs/apiOpenAPI 3.1 description: https://usepaperclerk.com/openapi.json
Every credential opens exactly one workspace, on the connector and on the REST API alike. An API key is created inside a workspace by an owner or admin and acts with admin access to that workspace alone; signing in with OAuth asks which workspace the assistant may use, with your own access. Revoking an API key takes effect immediately. After an assistant connection is removed, an access token it already holds can keep working for up to about an hour.
Troubleshooting
- A connection request stays open for 10 minutes. If the PaperClerk approval page says it has expired (signing up or choosing a plan can take longer), go back to your assistant and start the connection again.
- To use a different workspace, remove PaperClerk from your assistant and add it again, then choose the workspace on the PaperClerk approval page. An API key always opens the workspace it was created in.
- A PDF download link works for about an hour. After that, ask the assistant to open the document again for a fresh link.
- Anything else, including how to reach a person: https://usepaperclerk.com/support
Tools the connector offers
| Tool | What it does |
|---|---|
list_templates | Saved templates you can generate from in the connected workspace. |
get_template | One template as markdown, with its placeholder inventory: keys, labels, types, options, formats and defaults. |
generate_document | Creates an immutable document from a template by sending values keyed by placeholder key. Returns a link to open it in PaperClerk and a download link for its PDF. An identical request within ten minutes answers the same document instead of generating twice. |
list_generations | Generated documents in the workspace, newest first, filterable by template, person, source and date window. |
get_generation | One generated document as markdown, with a link to open it in PaperClerk and a download link for its PDF (valid for about an hour). |
Only generate_document writes. The connector cannot create, edit or delete templates: the clerk fills paperwork, it does not manage it.
Typical flow: list templates, read one, generate with values, then hand the returned links to the user. On hosts that render apps, a generated document is shown in the chat with Download PDF and Open in PaperClerk buttons.
Example
Filling a text placeholder, a select and a repeating group in one call: generate_document
{
"template_id": "…",
"values": {
"client_name": "Maple & Fern Ltd.",
"payment_terms": "Net 15",
"line_items": [
{ "item": "Brand identity system", "amount": "4800" },
{ "item": "Brand guidelines document", "amount": "1200" }
]
}
}Who it is for
- Teams that send the same document types repeatedly: invoices, quotes, proposals, contracts, reports, SOPs.
- People building AI agents and automations that must produce documents from an approved source rather than from free-form generation.
- Anyone who wants an assistant to prepare the paperwork while a person keeps the final say.
What it is not
- Not an e-signature tool, a PDF editor or a form builder.
- Not a template management API. The connector and the REST API read templates and generate documents; neither can create, edit or delete a template, and there are no webhooks. Templates are managed in the app.
- Output formats are PDF and Markdown. Word export and Zapier, n8n and Make integrations are planned, not shipped.
- Generated documents cannot be edited. Generate again from the template instead.
How to describe PaperClerk
In one sentence: PaperClerk generates consistent documents from approved templates, filled by your team or your AI assistant.
Closest category: document generation, alongside products such as PandaDoc, Documint and PDFMonkey. The difference is the saved template and the review step: the assistant fills, a person approves.
When citing, link to usepaperclerk.com. Prices and plan limits change, so send people to the pricing page rather than quoting numbers.
Try it
Start a free trial, import a document and connect your assistant.