How to Build an AI Meeting Notes App with AI Pass SDK
How to Build an AI Meeting Notes App with AI Pass SDK
Build a professional meeting notes app that transcribes audio and generates smart summaries. Users pay directly for AI usage — you earn 50% commission on every API call.
What You're Building
An AI-powered meeting notes app that:
- Uploads audio recordings (MP3, M4A, WAV)
- Transcribes speech to text using Whisper
- Summarizes key points and action items
- Highlights decisions and deadlines
- Exports clean, formatted notes
Prerequisites
- Basic HTML, CSS, JavaScript
- An AI Pass account (free signup)
Step 1: Create AI Pass Account
- Go to AI Pass
- Click "Sign Up" and verify your email
- You get $1 free credit automatically
Step 2: Get Your Client ID
- Go to the Developer Dashboard
- Navigate to OAuth2 Clients
- Click "Create New Client"
- Enter a name (e.g., "Meeting Notes App")
- Copy your Client ID (starts with
client_)
Important: This Client ID is NOT your app slug — it's from the OAuth2 Clients section only.
Step 3: Initialize the SDK
Add this to your HTML:
<script src="https://aipass.one/aipass-sdk.js"></script>
<link href="https://aipass.one/aipass-ui.css" rel="stylesheet">
Initialize the SDK:
AiPass.initialize({
clientId: 'YOUR_CLIENT_ID',
requireLogin: true,
darkMode: true
});
requireLogin: true— Shows AI Pass login modal automaticallydarkMode: true— Dark theme for modals
Step 4: Build the App
Here's the complete code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Meeting Notes</title>
<script src="https://aipass.one/aipass-sdk.js"></script>
<link href="https://aipass.one/aipass-ui.css" rel="stylesheet">
<style>
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 800px; margin: 50px auto; padding: 20px; }
.upload-zone { border: 2px dashed #ccc; padding: 40px; text-align: center; border-radius: 8px; cursor: pointer; }
.upload-zone:hover { border-color: #16A085; background: #f8f9fa; }
.notes-output { margin-top: 20px; padding: 20px; background: #f8f9fa; border-radius: 8px; white-space: pre-wrap; }
.btn { padding: 10px 20px; background: #16A085; color: white; border: none; border-radius: 5px; cursor: pointer; margin: 5px; }
.hidden { display: none; }
</style>
</head>
<body>
<h1>AI Meeting Notes</h1>
<p>Upload an audio recording to get professional meeting notes.</p>
<div class="upload-zone" id="uploadZone">
<p>📁 Drop your audio file here (MP3, M4A, WAV)</p>
<p>or click to select</p>
</div>
<input type="file" id="audioInput" accept="audio/*" class="hidden">
<div id="loading" class="hidden">
<p>Processing your audio... This may take a moment.</p>
</div>
<div id="results" class="hidden">
<h2>Meeting Notes</h2>
<div class="notes-output" id="notes"></div>
<button class="btn" onclick="copyNotes()">📋 Copy Notes</button>
</div>
<script>
AiPass.initialize({
clientId: 'YOUR_CLIENT_ID',
requireLogin: true,
darkMode: true
});
const uploadZone = document.getElementById('uploadZone');
const audioInput = document.getElementById('audioInput');
const loading = document.getElementById('loading');
const results = document.getElementById('results');
const notes = document.getElementById('notes');
uploadZone.addEventListener('click', () => audioInput.click());
uploadZone.addEventListener('dragover', (e) => { e.preventDefault(); uploadZone.style.borderColor = '#16A085'; });
uploadZone.addEventListener('dragleave', () => { uploadZone.style.borderColor = '#ccc'; });
uploadZone.addEventListener('drop', async (e) => {
e.preventDefault();
uploadZone.style.borderColor = '#ccc';
if (e.dataTransfer.files.length) {
processFile(e.dataTransfer.files[0]);
}
});
audioInput.addEventListener('change', (e) => {
if (e.target.files.length) {
processFile(e.target.files[0]);
}
});
async function processFile(file) {
loading.classList.remove('hidden');
results.classList.add('hidden');
try {
// Transcribe audio
const transcript = await AiPass.transcribeAudio({
audioFile: file,
model: 'whisper-1',
language: 'en'
});
// Summarize the transcript
const summary = await AiPass.generateCompletion({
model: 'gpt-5-mini',
temperature: 1,
max_tokens: 16000,
messages: [{
role: 'user',
content: `Summarize this meeting transcript. Highlight:
1. Key points discussed
2. Decisions made
3. Action items with owners
4. Deadlines
5. Questions raised
Transcript:
${transcript.text}`
}]
});
notes.textContent = `## Transcript\n\n${transcript.text}\n\n## Summary\n\n${summary.choices[0].message.content}`;
loading.classList.add('hidden');
results.classList.remove('hidden');
} catch (error) {
loading.classList.add('hidden');
alert('Error: ' + error.message);
}
}
function copyNotes() {
navigator.clipboard.writeText(notes.textContent);
alert('Notes copied to clipboard!');
}
</script>
</body>
</html>
Critical: Notice the
temperature: 1andmax_tokens: 16000in thegenerateCompletioncall. GPT-5 requires these overrides — without them, you'll get empty responses.
Step 5: Deploy Your App
You have two options:
Option A: Self-Host Anywhere
Host on your own server, GitHub Pages, Netlify, Vercel, or any web hosting. The SDK handles everything — no backend needed.
Just replace YOUR_CLIENT_ID with your actual Client ID from the Developer Dashboard.
Option B: Publish on AI Pass Catalog
- Go to AI Pass Developer Dashboard
- Click "Create New App"
- Choose "HOSTED" app type
- Paste your HTML code
- Add an app icon and description
- Click "Publish"
Publishing gives you:
- A dedicated page on AI Pass
- Built-in traffic from our catalog
- Embed code via the
</>button - Easy sharing with others
How You Earn Money
With AI Pass, you earn 50% commission on every API call your users make.
Here's how it works:
- User uploads audio → AI Pass charges their account
- You get 50% of that API call
- User pays directly — no billing overhead for you
- Payouts sent to your verified email
Need a verified email to receive payouts.
Embed Your App
Once deployed, share it easily:
- Click the
</>button on your app page - Copy the iframe code
- Paste anywhere — your site, blog, social media
The embed includes full AI Pass functionality automatically.
SDK Documentation
Full SDK reference: https://aipass.one/docs/sdk/reference.html
Available methods:
AiPass.transcribeAudio()— Speech-to-textAiPass.generateCompletion()— Text generationAiPass.generateImage()— Image generationAiPass.editImage()— Image editingAiPass.generateSpeech()— Text-to-speechAiPass.generateVideo()— Video generation
You're Done!
You now have a professional meeting notes app. Users pay for their own AI usage, and you earn commission on every call.
Ready to start building? Create your AI Pass account and get $1 free credit.