Should I vibe code
Automatic meeting notes with custom templates and integrations
Nobody re-listens to the audio. The summary is the meeting — including the commitment your model invented.
?
Their verdict, the Plus price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Everyone building one of these thinks the hard part is transcription. It is not — Whisper solved that and you can run it on a laptop. Wudpecker's actual product is two things a homemade version handles badly. The first is a bot that reads your calendar and joins meetings on its own: the settings are external, internal, all, or none, which means the decision to record is delegated to a cron job walking events other people put in your diary. The second is that the deliverable is a structured summary against a template, and summaries are what get read. Nobody re-opens the audio. Whatever your model wrote in the Action Items section becomes the record of what was agreed, and a model that turns 'we could probably do that by the 30th' into a commitment has not crashed, failed a test or logged an error. Meanwhile the bot itself is three headless browsers pretending to be a participant in Zoom, Meet and Teams, and when any of those vendors moves a button your bot fails by sitting in a waiting room recording nothing. You discover that on the day somebody asks for the notes.
What actually breaks
not "if". the specific failures.
- The summary, which asserts a decision or a deadline that the conversation only floated, and which is then quoted back to you as the record because it was easier to read than the transcript
- The auto-join rule, which cannot tell the difference between a team standup and the call your calendar shows because someone invited you to their one-to-one
- The bot's arrival, when Zoom, Meet or Teams ships a UI change and your headless browser sits in a lobby recording silence, failing in the one way nothing alerts on
- Speaker attribution, which is a diarisation guess with names attached, and which will confidently put a sentence in the mouth of the person who spoke next
- Multilingual meetings, where the transcriber locks onto the dominant language and renders everything else as plausible nonsense in that language
- The shareable view-only link, which is an unguessable URL until the first person forwards it, after which it is just a URL
- The calendar OAuth grant, which is a live refresh token with read access to every meeting title, attendee and description your account can see
- Retention, because recordings accumulate at the rate your calendar fills and nobody ever picked a deletion date
A client call in March, forty minutes, ending in the usual round of half-commitments. Your template has a section called Commitments and the model fills it, because that is what the section is for: 'Team to deliver the migration plan by the 30th.' What was actually said was that it could probably be done by the 30th if the data export came back clean, and the export did not come back clean. The recap went out automatically to everyone on the invite, including two people from the client side, and nobody read past the bullet points because the bullet points were the point. Six weeks later the account manager is in a call about a missed deadline and the client is reading your own notes back at you. You go looking for the audio to show the sentence in context and find that the bot joined four minutes late that day, because the meeting started early, so the recording begins mid-sentence somewhere after it.
Is that you?
the verdict is a default, not a law
- It records only meetings you start manually, on your own device, with no calendar automation anywhere in the design
- The output is a transcript with timestamps, and any summary is clearly marked as generated and never sent anywhere on its own
- Everyone in the room knows, agrees, and can ask for the recording to be deleted with one message to you
- It is internal, it is your team, and no external attendee is ever in the call
- A rule joins meetings for you based on what appears in a calendar you do not fully control
- Summaries are emailed or posted automatically to anyone who was not going to read the transcript
- External clients or candidates are on the calls, because they did not sign up for your side project's data handling
- There is no deletion path that removes audio, transcript, summary and the copies you posted into Slack together
- The notes will be treated as the record of what was agreed, which is exactly what notes are for
If you build it anyway
the checklist, then the prompt that enforces it
- Build deletion before recording. One operation that removes audio, transcript, summary, embeddings and every downstream copy for a given meeting, with a test proving nothing survives it.
- No auto-join in v1. Recording starts because a human pressed something. If auto-join ever ships, make it opt-in per calendar event and never per calendar.
- Announce the bot loudly: a name that says what it is, a message in chat on join, and a visible indicator. A recorder that blends in is the version people are angry about afterwards.
- Treat the summary as a claim, not a fact. Every generated bullet links to the transcript timestamps it came from, and 'no supporting span' means the bullet does not render.
- Never auto-send a recap. Draft it, show the source spans, and require a human to press send — the failure here is social, and social failures do not roll back.
- Detect and refuse instead of guessing on language. If the audio switches, say so on the transcript rather than translating half a meeting into fluent fiction.
- Alert on the absence of a recording. A bot that fails to join must page you within minutes; the whole class of failure here is silent non-recording.
- Share links carry access control, not just entropy. Expire them, scope them to accounts where you can, and log every view — a forwarded transcript URL is the cheapest leak in this product.
- Store calendar tokens encrypted with the narrowest scope that works, and write the revoke path on the same day you write the connect path.
I am building a meeting notetaker that sends a bot into calls and produces a
structured summary. The failure I care about most is not a crash — it is a
summary asserting something nobody agreed to, and a recording nobody knew was
happening. Order the work accordingly and push back on the shortcuts.
1. First feature is deletion. One command removes audio, transcript, summary,
any embeddings and every exported copy for a meeting id. Write the test
that proves it before writing the recorder.
2. Second is the disclosure surface: the bot has a name that says it records,
posts a message in chat on join, and appears in the participant list. No
silent capture, ever.
3. Recording is manual in v1. If I ask for calendar auto-join, stop and tell me
that hands the decision to whoever writes events in my diary, and make me
confirm. If it ships, it is per-event opt-in, never per-calendar.
4. Store the transcript with word-level timestamps and speaker turns as the
source of truth. The summary is derived and disposable.
5. Every summary bullet cites the transcript spans it came from. A bullet with
no supporting span is dropped, not rendered. Show me that link in the UI.
6. Never auto-send a recap to anyone. Draft, show sources, require a human to
press send. Refuse if I ask for automatic distribution.
7. Detect language per segment. If the meeting is multilingual, mark the
segments rather than forcing everything into the dominant language.
8. Alert on silence and on absence: a bot that joined and captured nothing, or
never joined at all, must notify me within five minutes. Silent
non-recording is the default failure of this design.
9. Share links expire, are logged on every view, and can be revoked. Do not
rely on an unguessable URL as the access control.
10. Calendar and conferencing OAuth: narrowest scopes, encrypted at rest,
revoke path written the same day as the connect path.
11. Set a retention default at 30 days, applied by a job that actually runs,
and make me change it deliberately rather than inheriting forever.
12. Out of scope unless I ask again: CRM sync, sentiment scoring, coaching
metrics and anything that ranks people by talk time.
13. Finish by reminding me that consent rules differ per jurisdiction and that
hosted tools have already done this work for around $23 a month.That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
Once anybody outside your own team is on the call. Plus is $23 a month billed monthly and what it buys is the unglamorous half: bots that keep working when Zoom moves a button, a deletion path that exists, a data processing agreement you can hand to a client's security reviewer, and a support address that is not you. There is also a free tier with ten bot-attended meetings a month, which is more than a personal experiment needs. Build your own only where it is your own audio, on your own device, with a manual button — that version is genuinely fine and is a different product.
$23/mo is cheaper than your weekend.
Keep the transcript, not the app. Per meeting, write a directory: the audio, a transcript as JSON with speaker turns and word timestamps, the generated summary as Markdown, and a metadata file recording participants, the template used and the model version. That bundle imports into anything and is readable by a person in ten years. What does not travel is everything you pushed downstream — Slack messages, CRM notes, recap emails — so keep a per-meeting index of where copies went, because 'delete my recording' means all of them and you will not remember. And decide the retention window now: the hardest part of leaving is the four thousand recordings you never picked an end date for.
Open-source meeting-bot API for Zoom, Meet and Teams, which is the part of this build that actually consumes the weekends.
Local speech-to-text, fast enough that transcription stops being the interesting problem.
Questions
The other notetaker entries are all about consent. What is different here?
Consent still applies and you should read the Granola or Fireflies pages for it. The specific thing about this shape of product is the pairing of a calendar-driven bot with a templated summary: the decision to record is automated away from you, and the artefact people actually read is generated rather than recorded. Those two together mean the system can produce a confident, circulated, wrong account of a meeting that nobody chose to have recorded, and neither half will log an error.
Why is the bot the hard part if Whisper is free?
Because transcription is a library call and joining a meeting is not. A bot is a headless browser that authenticates, waits in a lobby, gets admitted, finds the audio stream and survives being renamed, muted or removed — separately, for Zoom, Google Meet and Teams, each of which ships UI changes on its own schedule. When one breaks, your bot does not crash; it joins and records a waiting room. That is a maintenance commitment measured in years, and it is why open-source projects exist purely to do this bit.
Is the local-recording version safer?
Considerably, and it is the version worth building. Capturing your own machine's audio with a button you press keeps the decision human, keeps the data on your disk, and removes the bot maintenance entirely. You lose the automation that makes the paid product feel magic — which is the same automation this entry is warning about.
- RCFP — Reporter's Recording Guide (US, per-state consent rules)
- GDPR Art. 6 — lawfulness of processing (EU)
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
whisper.cpp plus a drop zone is the whole app. The only real question is who else was on the recording.
A transcript is a guess with punctuation. Wire one to a send button and a mishearing becomes a sent email.
A transcript of a call someone didn’t know was recorded isn’t a side project. It’s evidence.
last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice