Skip to content
Memory & Knowledge

Document Synthesis

3 min read

How to run a second-pass analysis on documents you've already ingested -- finding patterns, trends, contradictions, and insights that the first pass missed.


Why Synthesis?

When Armbrain ingests a document, the first pass extracts memories in chunks. This catches individual facts, decisions, and commitments. Whole-document patterns can still be missed:

  • Patterns -- recurring themes across a long transcript ("the client keeps circling back to budget concerns")
  • Contradictions -- conflicting statements within the same meeting ("said Q3 launch is firm, but later said timeline depends on hiring")
  • Trends -- shifts in sentiment, priorities, or strategy over the course of a conversation
  • Cross-reference insights -- connections between what was said and existing knowledge in the client mind

Synthesis runs a full-document analysis pass to catch these.


When Synthesis Runs

Automatically After Ingestion

Ingested documents with 3 or more extracted memories enter the synthesis queue automatically. A background daemon processes the queue every 15 minutes.

You do not need to trigger this manually for normal workflow. Documents from transcripts, emails, and paste-in-chat are all eligible.

Manually

Run synthesis on demand when you want deeper analysis of a specific document or recent batch:

"Synthesize the latest document for Acme"
"Run synthesis on all unprocessed documents"
"Synthesize the document from the March 25 meeting"

Using the Tool

Analyze the Most Recent Document

"Synthesize the latest document"

This processes the most recently ingested document for the active client mind.

Analyze Recent Documents

"Synthesize recent documents"

Processes the last 5 un-synthesized documents for the active client mind.

Analyze All Unprocessed Documents

"Synthesize all documents"

Processes every document that has not yet been through synthesis.

Target a Specific Document

"Synthesize the document with source ref granola-meeting-abc123"

Say "show me the documents stored for Acme" first to find the specific document you want to analyze.

Force Past the Daily Cap

Synthesis has a daily cap to manage LLM costs. If you need to process more:

"Force-synthesize all documents for Acme"

The force parameter bypasses the daily cap and minimum thresholds.


What Gets Produced

Synthesis creates new memories linked to the source document. These memories have source_type: "synthesis" so you can distinguish them from first-pass extraction.

The return summary tells you what was found:

FieldDescription
documents_processedNumber of documents analyzed
insights_foundNew pattern/trend insights discovered
contradictions_foundConflicting statements identified
skippedDocuments skipped (already synthesized, below threshold)
detailPer-document breakdown with word count and insight list

Example Output

Synthesized 3 documents for Acme:

- Q2 planning call (8,500 words): 3 insights
  - Budget concerns mentioned 4 times, suggesting this is a blocker
  - Contradicts previous commitment to April launch
  - Sarah's tone shifted from enthusiastic to cautious mid-call

- Weekly standup (2,100 words): 1 insight
  - Team velocity declining: 3rd consecutive week below target

- Email thread: rebrand discussion (1,400 words): 2 insights
  - Decision to hire external agency contradicts Q1 rock to build in-house
  - Timeline dependency on logo finalization not captured in sprint plan

Practical Use Cases

Pre-Meeting Deep Prep

Before an important meeting, synthesize recent documents to surface patterns the client may not be saying directly:

"Synthesize recent documents for Acme"
"Now prep my meeting with Sarah at Acme"

The meeting brief will include synthesis-derived insights alongside standard memories.

Quarterly Review

At quarter end, synthesize all unprocessed documents to catch trends and contradictions before the quarterly review:

"Synthesize all documents for Acme"
"Run a quarterly review for Acme"

Conflict Detection

When you suspect a client is saying one thing in meetings and another in emails, synthesis can flag the contradiction:

"Force-synthesize all documents for XSCAPE"
"Search for contradictions in XSCAPE"

Error Reference

ProblemCauseFix
"No client selected"You haven't switched to a client and didn't name oneSwitch to the target client first
"I can't find that client"The client name doesn't matchCheck the name ("list my clients")
"There are no documents to analyze"Nothing's been ingested for this client yetIngest some documents first
"You've hit today's synthesis limit"The daily cap protects against runaway costWait until tomorrow, or ask to run it anyway
"I'm not sure how far back to look"The scope wasn't clearSay "latest," "recent," or "all"