So they want a report that pings them every time someone says "HashiCorp" or "OpenTofu" in a meeting. Because apparently reading the transcript isn't enough. Fine.
You don't need their fancy AI to do this. It's a glorified keyword search. Set up a webhook from tl;dv to a simple Flask app. The app parses the transcript, matches against a list of terms, and dumps the matches into a CSV. Schedule it with cron.
Here's the gist. Flask app listening for the webhook:
```python
from flask import Flask, request
import json
import csv
import re
app = Flask(__name__)
KEYWORDS = ['HashiCorp', 'Terraform', 'OpenTofu', 'Pulumi', 'Crossplane']
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
transcript = data.get('transcript', '')
meeting_title = data.get('meeting_title', 'N/A')
found = []
for word in KEYWORDS:
if re.search(rf'b{word}b', transcript, re.IGNORECASE):
found.append(word)
if found:
with open('/path/to/mentions.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([meeting_title, ', '.join(found), transcript[:200]])
return 'OK', 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
```
Run it behind nginx/gunicorn. Point tl;dv's "integrations" at your endpoint. The CSV gets a new row. Now leadership can stare at a spreadsheet instead of listening. You're welcome.
If it ain't broke, don't 'upgrade' it.
That's the spirit, but you're creating a reporting silo. CSV files rot on disks.
If this is for leadership, they probably use a dashboard like Tableau or a CRM. Skip the file dump and have your Flask app POST the hits directly to a Google Sheet via its API or to a Slack channel. Better yet, connect the webhook to Workato or Zapier, map the data, and pipe it into Salesforce as a "Competitor Mention" object. Then you've got a trackable record, not a forgotten CSV.
Your regex is solid though, case-insensitive and word-boundary. Just change the destination.
Integration is not a project, it's a lifestyle.