# Citation checking desk for manuscripts and AI-assisted drafts

> Check every reference in a draft against the official record of published research, and see exactly which ones are wrong before it goes out the door.

- Workflow type: app
- Services: Crossref, OpenAlex, Google Docs
- Categories: Operations
- Published: 2026-08-17

## What it does

- Paste a reference list or point the app at a Google Doc, and every reference gets looked up in the public record of published research.
- Each reference lands in a table as verified, mismatched or unverified, with mismatches sorted to the top because those are the ones people skim past.
- Click any row to see what the draft claims side by side with the real published record, so a wrong year, a missing author or a swapped journal is obvious at a glance.
- Copy out a cleaned reference list rebuilt from the confirmed details, and keep a history of every document you have checked.

## What you'll need

- Nothing to set up for the main lookup. Crossref is a free public catalog of published research and needs no account.
- A free OpenAlex API key for the second-opinion lookup that covers preprints, datasets, theses and books.
- A Google account, only if you want to point the app at a Google Doc instead of pasting your references in.

## Prompt

I want a bibliography checking desk I open before anything goes out the door, especially drafts written with AI help. Build it as an app with three surfaces: a check screen where I start a new check, a verdict table for the document I am currently checking, and a history list of everything I have checked before.

The check screen takes input two ways. I can paste a raw reference list straight into a text box, or I can paste a Google Doc link or document ID and have the app pull the manuscript text with Google Docs Get Document. When it pulls a document, find the reference or bibliography section and extract the entries from there, and also pick up any in-text citations that never made it into the list. Show me the parsed references and let me correct or delete any that the parser split badly before I run the check.

Parse each reference into structured fields: authors, title, year, container such as the journal or book or publisher, volume, issue, pages, and the DOI if one is present. Keep the raw string exactly as written, because every later comparison is against what the draft actually claims.

Resolve each reference against Crossref. If the reference carries a DOI, look it up with Get Work by DOI, and use Check Work Exists when I am re-running a long list and only need to know which DOIs resolve at all. If the reference has no DOI, use Search Works with the whole bibliographic string as the query and take the top candidates. If a DOI does not resolve in Crossref, call Get Work Registration Agency on it, because a DOI that belongs to DataCite or another agency is a real DOI that Crossref simply does not hold, and that is a very different finding from a DOI that exists nowhere.

When Crossref has no match, fall back to OpenAlex before making any judgement. Use OpenAlex Search Works on the title and author string, and Get Work when there is a DOI or another identifier to resolve directly. OpenAlex covers preprints, datasets, theses and books that were never registered with Crossref, so this fallback is what stops the app from flagging a legitimate arXiv preprint or an older book as fabricated.

Give every reference one of three verdicts. Verified means a canonical record was found and the key fields agree with the draft. Mismatched means a record was found but something in the draft is wrong: the year, an author who is not on the paper, a different journal, or a title attached to a DOI that belongs to another work. Unverified means no confident match was found in either catalog. Word that third verdict as unverified and never as fabricated or fake. The app reports what the catalogs can confirm, and the absence of a record is not proof of invention.

Matching must be conservative, because a near miss presented as verified is worse than no answer at all. Require a confidence threshold on fuzzy title and author matching before the app claims a match. When the best candidate sits below that threshold, show the reference as unverified with the candidate listed as a possible match rather than silently accepting it, and show the confidence score on every matched row.

The verdict table lists every reference with its verdict, the matched title and a short reason. Sort mismatches to the top by default, then unverified, then verified, because mismatches are exactly the ones people skim past. Show a count for each verdict above the table, and let me filter by verdict and search the list.

Clicking a row opens a side by side comparison: what the draft claims in one column and the canonical record in the other, field by field, with every differing field highlighted. Say which catalog the record came from and link out to the DOI. When the DOI turns out to belong to another registration agency, say so in plain words on this screen.

Give me a copyable cleaned reference list built from the canonical metadata for every reference that resolved, in a consistent style, with one button to copy the whole thing. Leave the unverified entries in the list but mark them clearly so I know they were not confirmed.

Keep a history of every document checked, with the document name or source, when it was checked, and the verdict counts. Let me reopen any past check and see the full table and the comparisons again. Persist the checks and their results so the history survives across sessions.

The people using this are researchers, students, editors, publishers, and legal and healthcare writers, so keep the language plain and the claims careful. The three failure modes worth catching are an entirely invented paper, a real title attached to a fabricated DOI, and a real article credited to authors who never wrote it. The comparison view should make each of those obvious without the reader knowing anything about how the lookups work.

## How to customize

- How strict the matching has to be before a reference is allowed to count as verified.
- Which details count as a mismatch, such as publication year, author list, journal or page numbers.
- Whether preprints, datasets and books that cannot be confirmed stay visible in the table or get tucked away.

## FAQ

### Does this tell me if a reference is fake?

It tells you what the public record of published research can confirm. A reference comes back verified when a matching record exists and the details line up, mismatched when a record exists but the draft gets something wrong, and unverified when no confident match was found. Unverified is a prompt to check by hand, not proof that something was invented.

### Why did a real paper come back as unverified?

The main catalog covers scholarly work that publishers have formally registered. Preprints, datasets, theses and many older books were never registered there, so they can be perfectly real and still have no entry. The app checks a second, broader catalog before it settles on a verdict, but a small number of legitimate sources will still need a human look.

### Can I check a draft that was written with AI help?

Yes, that is the main reason to use it. Invented papers, a real title paired with an identifier that belongs to something else, and a real article credited to authors who never wrote it are the common failure patterns, and the comparison view is built to make all three obvious.

### Do I have to paste my references, or can it read my document?

Either one. Paste a reference list straight in, or give the app a Google Doc link and it will pull the text and find the reference section for you. It only reads the document and never edits it.

### What counts as a mismatch?

Anything where the draft and the published record disagree on a detail that matters: the publication year, an author who is not on the paper, a different journal or publisher, or a title that does not belong to the identifier being cited. Every difference is highlighted side by side so you can judge whether it is a typo or a real problem.

Use this prompt in General Input: https://www.generalinput.com/prompts/citation-checking-desk-for-manuscripts-and-ai-assisted-drafts