# Semantic Doc Compare > Compare two documents by meaning. Paragraphs (or sentences) are matched with sentence embeddings that run in the browser, then marked same, reworded, changed meaning, only in A or only in B, with similarity scores, reasons and a side-by-side view. Free, no API key, no sign-in, documents never uploaded. URL: https://semantic-doc-compare.skillsafe.ai/ ## What it does - Input: two documents, pasted or opened from PDF (with a text layer), DOCX, ODT, RTF, HTML, EPUB, Markdown or text. Or two sentences for a quick check. - Unit: paragraph or sentence. Paragraphs longer than about 90 words are compared in parts. - Model: all-MiniLM-L6-v2 (sentence-transformers, Apache-2.0, 384 dimensions), run with ONNX Runtime Web on WebGPU or WebAssembly. One 90 MB download, cached by the browser. - Alignment: identical units first, then one-to-one greedy matching by cosine similarity above a match floor (default 0.55); pairs out of order are marked as moved. - Classification: same (identical words), reworded (similarity at or above 0.75 and no warning signs), changed meaning (below 0.75, or any of: negation added or removed, numbers or dates changed, obligation words such as must, should or may changed, scope words changed, opposite words such as hired and fired), only in A, only in B. - Output: verdict, meaning overlap percentage, counts, side-by-side and list views with word-level highlights, Markdown, CSV and JSON export. - Limits: English is the language the model was trained on. Up to 1,500 units per document. Scanned PDFs without a text layer cannot be read. ## Why embeddings alone are not enough Sentence embeddings place "The tenant may sublet the apartment" and "The tenant may not sublet the apartment" close together (similarity about 0.88), and "hired" close to "fired". The explicit checks catch these, and every changed-meaning mark shows its reason. ## Privacy and cost Everything runs in the page. No API key and no credits. Signing in is optional and only saves a comparison report (counts and the quoted passages that differ) to the person's SkillSafe account. ## Developer surface - API tutorial for saved comparisons: https://semantic-doc-compare.skillsafe.ai/api.html - There is no run endpoint: the comparison is computed on the device. Part of SkillSafe: https://skillsafe.ai/