For teams shipping AI-drafted text

Fact-check the draft before it goes out.

Lenz is a fact-checking service for newsletters, briefs and posts. It identifies factual statements it can check against independent public sources and returns a result for each.

Fact-check AI-generated newsletters, briefs, posts and reports before publishing.

  1. The draft is ready

    An issue, a brief, a post, a report — whether a model wrote the first pass or you did.

  2. Lenz finds the checkable statements

    You hand over the whole piece rather than a list. Lenz picks out the factual statements it can check against independent public sources and leaves the opinions and the recommendations alone.

  3. Each one comes back with a result

    An assessment gives you a verdict and a confidence level per statement in about 10 seconds, which is how you sort a whole issue; it does not hand back the sources. Send the statements that matter to a full verification, where the verdict comes from sources Lenz went and found rather than from a reading of the statement alone.

  4. You decide what to publish

    Read the results, and the statements Lenz could not substantiate, before the issue goes out. Cut a line, fix a figure, or run a full verification on the one you are least sure of. Lenz returns results — the editorial call is yours.

  5. Publish, with the checks behind it

    Each full verification keeps a record you can reopen: the statement as framed, the verdict and its score, every source with its date, and the reasoning that weighed them. A figure questioned after publication has a check behind it rather than a memory of one.

Market briefs, news digests and articles

Paste the whole piece. Lenz returns a result for each statement it finds, not one verdict for the document, so a wrong figure is named on its own with its own sources rather than leaving you to re-read the draft.

Blog posts, press releases and social media posts: the statistics in them

A statistic is checked like any other statement: Lenz looks for where the number was published and reports what it found, including when that is nothing.

Check ChatGPT-drafted content and X or LinkedIn posts inside Claude or Cursor.

Connect Lenz to Claude with one sign-in, no key to paste; Cursor and Claude Code take one command with your key. Then paste the content — a post, a thread, a whole draft, whether ChatGPT wrote it or you did — and ask for a check in the same window. The results come back in the conversation you are already working in.

Connect Claude →

Automate checks on recurring LLM output: briefs, digests, documents.

For a daily brief, a scheduled digest or a batch of documents a model drafts, a short Python script: extract the statements, submit them together for assessment, and route False, Mostly False, Mixed and low-confidence results to your reviewer. That routing is your policy; Lenz returns the results.

Python pip install lenz-io

# a recurring draft: extract the statements, assess them together, route the flagged ones
from lenz_io import Lenz

client = Lenz(api_key="lenz_...")
extracted = client.extract(text=draft)
# identified_claims is empty when the text yields a single statement
claims = extracted.identified_claims or [extracted.claim]
r = client.assess(claims=claims)   # one row per statement, same order

# your routing policy. "Error" means the item was not checked — never read it as clean
flagged = [c for c in r.claims
           if c.verdict in ("False", "Mostly False", "Mixed", "Error")
           or c.confidence == "low"]

send_to_reviewer(draft, flagged)   # your own function: an email, a ticket, a Slack message

The full sequence is extract → assess → verify → ask. Pipelines, webhooks and the TypeScript SDK are on the developer page.

What a full verification looks like.

A full verification is the investigation, not a longer assessment: Lenz searches independent public sources for the statement, reads them, has models argue both sides on what it found and a panel review the arguments, then returns the verdict with those sources and the reasoning, the arguments for and against kept rather than averaged away. About 90 seconds per statement.

Pricing

Free tier, no card: 100 assessments or 10 full verifications a month, in any combination. Developer is $99 a month for 5,000 assessments or 500 full verifications, the same way, and Scale is $399 a month for production volumes. Every plan includes 1,000 extractions a day, an extraction being one call however long the text.

Compare plans →

Frequently asked questions

They are two different checks. An assessment is a judgement: a panel of models reads the statement and returns a result with a confidence level, in about 10 seconds, so you can sort a whole issue quickly. A full verification is an investigation: Lenz searches independent public sources, weighs them and returns the verdict with those sources and the reasoning, in about 90 seconds per statement.

No. Connecting Lenz to Claude is one sign-in and needs no key. Cursor and Claude Code take one command with your key. You can also use a script to automate checks.

Nothing is invented to fill the gap. When Lenz finds no public evidence for a statement, the finding says so and the result scores low. Treat that statement as unverified.

Submissions through the API and the connectors are private to your account.

Check the next issue, statement by statement.