<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Getting Documents In</title><description>Document ingestion for retrieval systems: extracting text from real files, stripping boilerplate, deduplication, keeping an index fresh, and deletions.</description><link>https://contextaugmentedllm.com/</link><item><title>A website has no file list</title><link>https://contextaugmentedllm.com/blogs/a-website-has-no-file-list/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/a-website-has-no-file-list/</guid><description>A share can be enumerated. A site cannot: its document set is whatever the traversal reached, and nothing on the far end will report what was missed.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>freshness</category><category>metadata</category></item><item><title>The page that checks who is asking</title><link>https://contextaugmentedllm.com/blogs/the-page-that-checks-who-is-asking/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-page-that-checks-who-is-asking/</guid><description>Four hundred documents in the corpus say &apos;Verify you are human&apos;. Every fetch succeeded; the source served the barrier instead of the page.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate><category>extraction</category><category>boilerplate</category><category>pipelines</category></item><item><title>What the converter threw away</title><link>https://contextaugmentedllm.com/blogs/what-the-converter-threw-away/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/what-the-converter-threw-away/</guid><description>HTML becomes markdown or plain text and the conversion never errors. Tables, alt text, heading levels and withdrawn clauses go missing on the way.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>extraction</category><category>metadata</category><category>pipelines</category></item><item><title>Counting what you did not ingest</title><link>https://contextaugmentedllm.com/blogs/counting-what-you-did-not-ingest/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/counting-what-you-did-not-ingest/</guid><description>Every corpus has documents that never made it in. Without a category for each way that happens, they look identical to documents that never existed.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>metadata</category><category>freshness</category></item><item><title>Reprocessing a corpus you already ingested</title><link>https://contextaugmentedllm.com/blogs/reprocessing-a-corpus-you-already-ingested/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/reprocessing-a-corpus-you-already-ingested/</guid><description>An extraction fix only runs on documents ingested after it shipped. Everything already in the index keeps the old damage until something goes back for it.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>metadata</category><category>freshness</category></item><item><title>Deletion is the hard one</title><link>https://contextaugmentedllm.com/blogs/deletion-is-the-hard-one/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/deletion-is-the-hard-one/</guid><description>Removing a source file removes nothing downstream. Everything derived from it persists, stays retrievable, and answers questions as if it still existed.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate><category>deletion</category><category>freshness</category><category>metadata</category><category>pipelines</category></item><item><title>Keeping an index fresh</title><link>https://contextaugmentedllm.com/blogs/keeping-an-index-fresh/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/keeping-an-index-fresh/</guid><description>A full rebuild is correct and unaffordable. Incremental sync is affordable and drifts. What decides it is how you detect that something changed.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>freshness</category><category>metadata</category><category>pipelines</category></item><item><title>The same document three times</title><link>https://contextaugmentedllm.com/blogs/the-same-document-three-times/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-same-document-three-times/</guid><description>Identical copies, near-copies and successive versions look alike and need opposite treatment. Deduplicating a version history destroys the record.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>deduplication</category><category>metadata</category><category>pipelines</category></item><item><title>Boilerplate is not content</title><link>https://contextaugmentedllm.com/blogs/boilerplate-is-not-content/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/boilerplate-is-not-content/</guid><description>Navigation, footers and disclaimers extract perfectly and index as fact. Repeated across a corpus, they crowd out the pages they were attached to.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>boilerplate</category><category>extraction</category><category>pipelines</category></item><item><title>Extracting text from real documents</title><link>https://contextaugmentedllm.com/blogs/extracting-text-from-real-documents/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/extracting-text-from-real-documents/</guid><description>A PDF that extracts as scrambled reading order does not raise an error. It produces text, reports success, and poisons everything downstream of it.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate><category>extraction</category><category>ocr</category><category>pipelines</category></item><item><title>Ingesting the same document twice at once</title><link>https://contextaugmentedllm.com/blogs/ingesting-the-same-document-twice-at-once/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/ingesting-the-same-document-twice-at-once/</guid><description>Retries and queues deliver documents more than once. If a rerun adds records instead of replacing them, one document answers with two of everything.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>deduplication</category><category>freshness</category></item><item><title>Capturing who may see a document</title><link>https://contextaugmentedllm.com/blogs/capturing-who-may-see-a-document/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/capturing-who-may-see-a-document/</guid><description>Permissions live on folders and groups, not on documents. If ingestion does not record them, nothing downstream can reconstruct who may read what.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><category>metadata</category><category>pipelines</category><category>freshness</category></item><item><title>The reconciliation pass</title><link>https://contextaugmentedllm.com/blogs/the-reconciliation-pass/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-reconciliation-pass/</guid><description>Incremental sync has no way to prove it kept up. A periodic comparison of the index against the source is the only thing that finds what it missed.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>freshness</category><category>deletion</category><category>pipelines</category></item><item><title>Finding one bad document a month later</title><link>https://contextaugmentedllm.com/blogs/finding-one-bad-document-a-month-later/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/finding-one-bad-document-a-month-later/</guid><description>Someone reports a wrong answer citing a specific file. Ingestion logs are keyed by job and time, so nothing can say what happened to that one document.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>metadata</category><category>pipelines</category><category>freshness</category></item><item><title>Replacing what an edit invalidated</title><link>https://contextaugmentedllm.com/blogs/replacing-what-an-edit-invalidated/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/replacing-what-an-edit-invalidated/</guid><description>A document was edited and reprocessed correctly. The index now holds the new text and some of the old, because the previous records were never removed.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><category>freshness</category><category>deletion</category><category>pipelines</category></item><item><title>Formats with no reading order</title><link>https://contextaugmentedllm.com/blogs/formats-with-no-reading-order/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/formats-with-no-reading-order/</guid><description>Spreadsheets and slide decks have no sequence to extract. Flattening them produces values and phrases detached from the thing that gave them meaning.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>extraction</category><category>metadata</category><category>pipelines</category></item><item><title>Deciding which documents need OCR</title><link>https://contextaugmentedllm.com/blogs/deciding-which-documents-need-ocr/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/deciding-which-documents-need-ocr/</guid><description>Recognition is the most expensive stage in ingestion, and the documents that need it do not announce themselves. Routing has to be inferred per page.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><category>ocr</category><category>extraction</category><category>pipelines</category></item><item><title>Normalising text before anyone reads it</title><link>https://contextaugmentedllm.com/blogs/normalising-text-before-anyone-reads-it/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/normalising-text-before-anyone-reads-it/</guid><description>Invisible characters, split accents and soft hyphens break matching without changing how text looks. The damage is silent and the fix is one pass.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate><category>extraction</category><category>metadata</category><category>pipelines</category></item><item><title>Separating extraction from indexing</title><link>https://contextaugmentedllm.com/blogs/separating-extraction-from-indexing/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/separating-extraction-from-indexing/</guid><description>One pass that reads a file and writes records means every fix re-reads the whole corpus. Keeping the extracted text makes reprocessing affordable.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>extraction</category><category>metadata</category></item><item><title>A document ID that survives a move</title><link>https://contextaugmentedllm.com/blogs/a-document-id-that-survives-a-move/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/a-document-id-that-survives-a-move/</guid><description>Path-based identity breaks the moment a file moves. One rename produces a duplicate and an orphan at the same time, and neither of them errors.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>metadata</category><category>deduplication</category><category>pipelines</category></item><item><title>Which date does a document have</title><link>https://contextaugmentedllm.com/blogs/which-date-does-a-document-have/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/which-date-does-a-document-have/</guid><description>A file offers half a dozen dates and none of them is when the document was written. A share migration set most of them to the day the migration ran.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>metadata</category><category>freshness</category><category>pipelines</category></item><item><title>The listing that was not complete</title><link>https://contextaugmentedllm.com/blogs/the-listing-that-was-not-complete/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-listing-that-was-not-complete/</guid><description>Everything downstream of enumeration is scoped by it. A listing that stopped early produces a smaller corpus that behaves exactly like a correct one.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>freshness</category><category>metadata</category></item><item><title>Which language is this document in</title><link>https://contextaugmentedllm.com/blogs/which-language-is-this-document-in/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/which-language-is-this-document-in/</guid><description>Language is a fact nothing records by default. Without it, translations look like duplicates and quality checks report clean text as damaged.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>metadata</category><category>extraction</category><category>deduplication</category></item><item><title>Documents inside documents</title><link>https://contextaugmentedllm.com/blogs/documents-inside-documents/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/documents-inside-documents/</guid><description>Archives, attachments and embedded files hold most of what people search for. A pipeline that reads only the outer file ingests the wrapper and none of it.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>extraction</category><category>metadata</category><category>pipelines</category></item><item><title>The documents that will not ingest</title><link>https://contextaugmentedllm.com/blogs/the-documents-that-will-not-ingest/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-documents-that-will-not-ingest/</guid><description>Every corpus has files that error, time out, or crash the parser. Handled as log lines they leave the corpus quietly and never come back.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>freshness</category><category>metadata</category></item><item><title>Pages that are empty until something runs them</title><link>https://contextaugmentedllm.com/blogs/pages-that-are-empty-until-something-runs-them/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/pages-that-are-empty-until-something-runs-them/</guid><description>A web source ingested cleanly and every page holds the same nav and a loading message. The fetch returned a shell that assembles its content elsewhere.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>extraction</category><category>boilerplate</category><category>pipelines</category></item><item><title>A thread is not a document</title><link>https://contextaugmentedllm.com/blogs/a-thread-is-not-a-document/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/a-thread-is-not-a-document/</guid><description>A twenty-message email thread contains the first message twenty times. Ingest it naively and the oldest, most-quoted text becomes the loudest claim.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>extraction</category><category>boilerplate</category><category>deduplication</category></item><item><title>The order the stages run in</title><link>https://contextaugmentedllm.com/blogs/the-order-the-stages-run-in/</link><guid isPermaLink="true">https://contextaugmentedllm.com/blogs/the-order-the-stages-run-in/</guid><description>Hashing before normalising, fingerprinting before stripping, writing before deciding identity. Each is a stage in the wrong place and none of them error.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><category>pipelines</category><category>deduplication</category><category>metadata</category></item></channel></rss>