fathom-integration/
├── src/
│ ├── fathom_client.py
│ ├── transcript_processor.py
│ └── webhook_handler.py
├── tests/
│ ├── fixtures/
│ │ ├── meeting.json
│ │ └── transcript.json
│ └── test_processor.py
├── .env.local
└── requirements.txt
MOCK_MEETING = {
"id": "mtg-123",
"title": "Product Review Q1",
"created_at": "2026-03-20T14:00:00Z",
"duration_seconds": 1800,
"participants": ["alice@example.com", "bob@example.com"],
"summary": "Discussed Q1 roadmap priorities. Agreed to focus on API improvements.",
"action_items": [
{"text": "Alice to draft API spec by Friday", "assignee": "alice@example.com"},
{"text": "Bob to review competitor analysis", "assignee": "bob@example.com"}
]
}
MOCK_TRANSCRIPT = {
"segments": [
{"speaker": "Alice", "text": "Let us review the Q1 priorities.", "start_time": 0.0},
{"speaker": "Bob", "text": "I think the API work should come first.", "start_time": 5.2},
]
}
# Run with mock data (no API calls)
FATHOM_MOCK=true python3 src/transcript_processor.py
# Run with real API
python3 src/transcript_processor.py
See fathom-sdk-patterns for production API wrappers.