DEV Community

Cover image for Building FathomExporter: From Web Scraping to Official API Partnership
Andy Stearman
Andy Stearman

Posted on

Building FathomExporter: From Web Scraping to Official API Partnership

I built FathomExporter, a Chrome extension that bulk exports Fathom meeting transcripts, and recently became an official Fathom partner. Here's the journey from scraping to official API integration.

The Problem

Fathom (the AI meeting recorder) doesn't have a bulk export feature. Users were manually clicking through hundreds of meetings, copying transcripts one by one. For someone with 500+ meetings, this could take 4-8 hours.

Version 1 & 2: Web Scraping

Initially, I built the extension using web scraping. It worked, but had major issues:

  • Slow: Had to navigate through each meeting page sequentially
  • Fragile: Broke whenever Fathom updated their UI
  • Limited: Required keeping the tab open and active

For 100 meetings, it took 16 minutes. For 1000 meetings? Over 2 hours.

Version 3: Official Partnership

After reaching out to Fathom, they approved FathomExporter as an official partner with OAuth API access. This changed everything:

10x Faster:

  • 100 meetings: 16 min → 2 min
  • 500 meetings: 80 min → 8 min
  • 1000 meetings: 2+ hours → 20 min

More Reliable:

  • Uses OAuth 2.0 authentication
  • Direct API access via /external/v1/meetings endpoint
  • Won't break with UI changes
  • Runs completely in background

Technical Implementation

The OAuth flow uses Chrome's chrome.identity.launchWebAuthFlow():

const redirectURL = chrome.identity.getRedirectURL('oauth');
const authURL = `https://app.fathom.video/oauth/authorize?client_id=${CLIENT_ID}&redirect_uri=${redirectURL}&response_type=code`;

chrome.identity.launchWebAuthFlow({
    url: authURL,
    interactive: true
}, (responseUrl) => {
    const code = new URL(responseUrl).searchParams.get('code');
    // Exchange code for access token
    // Store and use for API calls
});
Enter fullscreen mode Exit fullscreen mode

The export process respects Fathom's rate limits (60 requests/min) while maximizing throughput.

Key Learnings

  1. Reach out to companies: I assumed Fathom wouldn't partner with a small Chrome extension. I was wrong. The worst they can say is no.
  2. Official APIs > Scraping: Even though scraping "works," the reliability and speed of an official API is worth the effort to get approval.
  3. Performance matters for retention: When I cut export time from 2 hours to 20 minutes for 1000 meetings, customer satisfaction went way up.
  4. Partnership credibility sells: Being an "Official Fathom Partner" dramatically improved conversion rates compared to "Chrome extension that works with Fathom."

Results

  • $29 one-time purchase (no subscription)
  • 25x faster than manual (30 sec per meeting → 1.2 sec per meeting)
  • Handles 5000+ meetings without breaking
  • Live demo calculator

Try FathomExporter →

If you're building tools on top of other platforms, don't assume you can't get official access. Sometimes you just need to ask.

Top comments (0)