What humans see vs what LLMs see
March 12, 2026
You open a Google Doc. You see a formatted document with headers, bold text, tables, and images. You understand it instantly.
An LLM sees nothing. The file is behind an OAuth wall. It doesn’t have access. It doesn’t even know it exists.
This is the gap that every AI application hits. Your most important data is locked in formats and systems that LLMs cannot reach.
the same file, two perspectives
The gap between these two is why AI agents hallucinate.
A context layer bridges it.
What humans see
A human opens Google Drive and sees a folder tree. Files organized by project. Docs, spreadsheets, slides. They click a file. It renders. Headers, formatting, embedded images, comments in the margin. The human reads it, understands context, makes decisions.
A human opens Slack and sees a conversation. Threads, reactions, attached files, links. They scroll, follow the discussion, understand who said what and when. They search for a keyword and find the message in seconds.
All of this works because humans have browsers. They have OAuth sessions. They have eyes that process rich visual layouts.
What LLMs see
Nothing.
An LLM has no browser. No OAuth session. No access to Google Drive, Slack, or GitHub. It cannot open a URL and read what’s behind it. It cannot log into your workspace. It cannot see your files.
When you paste text into ChatGPT, you are doing the work. You opened the file. You copied the text. You pasted it. The LLM processed what you gave it. But it only saw what you chose to paste. Not the full document. Not the related files. Not the Slack thread that discusses it.
Even when an LLM gets access to raw data through an API, it doesn’t see what you see. It sees the raw response. In Slack, that means a JSON blob full of user IDs like U04QAHJ3V, epoch timestamps like 1711036800.000100, nested Block Kit objects three levels deep, and formatting encoded as style attributes inside arrays of elements. No names. No readable dates. No conversation structure.
The Slack example
You open Slack and see a conversation. Names. Times. Threads. Bold text. You read it in seconds.
An LLM calling the Slack API sees this:
{ "type": "message", "user": "U04QAHJ3V", "ts": "1711036800.000100", "text": "deploy is blocked", "blocks": [{ "type": "rich_text", "elements": [{ "type": "rich_text_section", "elements": [{ "type": "text", "text": "deploy is", "style": {"bold": true} }, { "type": "text", "text": " blocked" }] }] }], "reply_count": 3}Nested JSON. User IDs instead of names. Epoch timestamps instead of dates. Block Kit objects instead of readable text. Formatting buried three levels deep in a style object. An LLM cannot reason over this.
A context layer transforms it into structured markdown:
## #engineering2025-03-22
**Sarah Chen** (10:15 AM)**deploy is** blocked
**Mike R.** (10:18 AM) CI is failing on the auth service. See PR #247
**Sarah Chen** (10:22 AM) Fixed. Deploying now.User IDs become real names. Epoch timestamps become readable times. Nested block objects become flat markdown. Thread replies are indented under the parent. The channel name and date become headers.
An LLM reads this the way a human reads Slack. It understands who said what, when, and in what thread. It can search it, cite it, and reason over it.
The format gap
Every file type is a translation problem.
| What the human sees | What it actually is | What the LLM needs |
|---|---|---|
| A formatted Google Doc | Proprietary JSON format | Clean extracted text with structure |
| A PDF with charts | Binary with embedded fonts and images | OCR’d text, table extraction |
| A Slack conversation | Nested API objects with timestamps | Flat text with speaker, time, context |
| An Excel spreadsheet | XML with formulas and formatting | Rows as text, headers preserved |
| A GitHub PR | Diff hunts, review comments, CI status | Unified text with metadata |
| A calendar event | iCal format with recurrence rules | Date, time, attendees, description |
Every one of these needs parsing. Different parsers for different formats. Different APIs for different apps. Different OAuth flows for different services.
This is months of infrastructure work before your LLM sees its first file.
The access gap
Even after parsing, there’s the access problem. Your files live behind OAuth walls in four or five different apps. Each app has its own API. Its own authentication flow. Its own rate limits. Its own data format.
To give an LLM access to your files, someone has to:
- Register OAuth apps with Google, Slack, GitHub, and every other service
- Handle token refresh, scope management, and permission flows
- Download files through each API
- Parse every format into clean text
- Keep everything in sync as files change
- Respect per-user permissions so data doesn’t leak between users
Every team building an AI application rebuilds this stack from scratch. Most give up and ask users to copy-paste into a chat window.
Bridging the gap
A context layer sits between your apps and your LLMs. It handles OAuth, downloads files, parses every format, and indexes everything into searchable text. Your files stay where they are. The context layer creates a searchable representation that any LLM or agent can query.
The LLM doesn’t need to open Google Drive. It queries the context layer. It gets back clean text with source URLs, timestamps, and app metadata. It can search across all apps at once. It can filter by date, app, channel, or folder.
This is what the human sees, translated into what the LLM needs. Formatted documents become searchable text. Slack threads become structured messages. Spreadsheets become rows with headers. All queryable through a single interface.
What changes
Without a context layer, your LLM is blind. It can reason, but it has no data to reason over. It answers from its training data. It guesses. It hallucinates.
With a context layer, your LLM sees what you see. Not the formatting. Not the layout. But the content, the metadata, and the source. It searches your files the way you would, but through code instead of a browser.
Your files. Any AI agent.
ctxd is cloud context infrastructure. Connect your files. Search from anywhere.
Get started