Skip to content

What's new

Release notes

Every version of SearchWare, newest first. See what has changed across screening, underwriting, diligence, and the work of running a search. For a dated list of what shipped, see the changelog.

v0.13.0LatestOctober 5–8, 2026

Precision

SearchWare has a new look, and it is quicker to work in. Every screen now shares one calm design: the most urgent thing comes first, figures line up, every click answers straight away, and almost anything you do can be undone from the message that confirms it. It works on a laptop and a phone and, for the first time, in dark mode. Nothing you've entered has changed, and the only change to who can see what is in the data room, where counterparties now see less.

The new look

🎨 One design, everywhere — A light sidebar with your work on a raised panel; one indigo for "act here"; colours that mean a state (green for done, amber for attention, red for overdue or failing) and nothing else; and deal stages drawn as progress dials instead of a rainbow. Figures share one typeface and line up in columns, and company and people names are set in a serif.

🌙 Dark mode — Choose System, Light or Dark from your account menu, the command bar (⌘K) or Settings → Appearance. It applies before the page appears, so nothing flashes, and it's remembered on this device. The data room, sign-in and public pages stay light.

↩️ Undo instead of "Are you sure?" — Moving a deal, ticking a to-do, removing someone from a deal, deleting a file or answering an expense happens at once, with Undo in the message that confirms it (⌘Z works too). Only what can't be undone asks first, in a dialog that says exactly what will go.

🎉 Small celebrations — Ticking a to-do, closing a deal and clearing your Expenses Inbox each get a short moment. Turn them off in Settings → Appearance; they never play when your device asks for reduced motion.

📱 Made for phones — A bottom bar with Today, Deals, a Create button (Drop CIMs, Add deal, Log meeting, New to-do), To-dos and More. Pages are laid out for the phone instead of squeezed onto it, and the tablet gets touch-sized controls. If your device asks for reduced motion, the interface keeps still.

Today

☀️ Your day, most urgent first — Today opens with a greeting and a one-line summary, then Up next (your next deal meeting, counting down, with Prep), then Needs you: exclusivity ending, legal follow-ups, files Screening needs you for, overdue to-dos and data-room requests, and your Expenses Inbox, in one list ranked by urgency. When it's clear, Today tells you what's next.

✅ One to-do list — Each to-do shows once, grouped Overdue, Today, Next 7 days and Later, with a quick-add that understands "tomorrow", "fri" and "#deal". Ticking one is instant, and Undo puts it back.

📈 Your pipeline at a glance — Beside them: what's asked across your pipeline by stage, deals waiting on a CIM or gone quiet (ask the broker, or nudge yourself in a week), and what last happened on your active deals.

🔁 Revisits come back — When a passed or archived deal reaches its revisit date, it joins Needs you. Reopen it at a stage, snooze it for a week, a month or three months, or clear the date, and Undo takes any of them back.

Deals

🗂️ A board that fits — All six working stages fit a laptop screen. Cards show the ask, earnings, multiple, your max price and the room under it, one offer chip and how long the deal has sat in its stage; a quiet deal says so in words.

✋ Drag and drop — Drag a card to another stage with a mouse, a long press on a phone, or the keyboard (Space to pick up, the arrows to move, Space to drop). Columns preview their new count and asked total as you drag, and a tray offers Closed won, Pass and Archive. Every move can be undone.

🔎 Filters that stay put — Team, In exclusivity, Gone quiet, Has offer and more, each with its count, kept in the address so a shared link or Back shows the same board. The List view is a full table you can sort by any column, with Active, All and Closed.

🚪 Quicker passes and new deals — Pick the pass reason from a grid (keys 1-9), then add a note and a revisit date in the same step. Add deal starts with a drop zone for the CIM and asks for four fields; the rest waits under More details.

📋 Bulk actions on the List — Select rows with a click, a shift-click for a range, the header checkbox or X. Then move up to 50 deals to a stage, pass or archive them with one reason, or export them as a CSV. Moves, passes and archives can be undone.

Screening

🧪 Triage at speed — Screening shows the batch's progress, the files that need you, and one ranked table with each deal's verdict and why, its fit, the ask, earnings, your max price and the room under it. Interested (A) and Pass (P) sit on every row: the deal slides away, and Undo brings it back. Tick deals to compare or pass them together, and step through the side sheet with J and K.

The deal page

🧾 The essentials up top — A compact header with the stage rail (click a later stage to move the deal, with Undo) and a strip of the key figures: asking price, revenue, SDE, the multiple, your max price with how far the ask sits under it, and the LOI's exclusivity. The tabs start near the top of the screen, even on a phone.

📌 Figures and their sources — The Overview leads with a table of the deal's figures, each with its period and where it came from. Hover a source to read the quote and open the page it's on.

⚡ Tabs that open instantly — Tabs keep your place and start loading when you point at them. Switch with 1-6, move to the next deal with J and K, and ask about the deal with ⌘J.

📝 Every tab, rethought — The memo reads like a document, with an outline that follows you. Underwriting shows the live price and coverage as you edit and saves with ⌘S from a bar that appears when you have changes. Documents is one list by folder: drop files anywhere on it, or select several to share or move. Diligence has to-do lists with progress and legal documents with their status and next step. Activity is one timeline with a one-line comment box.

🗃️ Your custom fields — The fields you define in Settings → Custom fields sit on the Overview, and members edit them in place. Each value is checked against its field's type, and one that no longer fits is flagged rather than lost.

Underwriting

🏦 One all-in SBA rate — SBA 7(a) loans are priced at one all-in rate: the one an admin sets in Settings → Underwriting defaults, or 10.00% until then, so nothing waits on Prime. A scenario saved on Prime plus a spread still computes as before, and one click moves it to an all-in rate.

📄 Deal fields from the CIM — Once a CIM has been read, a blank industry, location, description, website, employee count or year founded fills in from its verified facts, including scanned CIMs, CIMs added to an existing deal and files uploaded on Documents. Nothing you typed is overwritten, and a name taken from the file name becomes the company's real one, except on a blind deal.

🔄 Underwrites that keep up — An open deal's quick underwrite updates by itself once new documents are read, and deals that were waiting on Prime are priced. Generate underwrite (or Refresh from documents) on the Underwriting tab runs it straight away.

🤖 The underwriting agent — It reads the deal's documents and suggests assumptions for you to review: replacement salary, maintenance capex, working capital, closing costs, growth, contribution margin and how much of each add-back to accept, each with its reason and the quotes behind it. Accept one, accept all or dismiss, and see how the headline figures would move if you accepted them all. A scenario changes only when someone accepts, values you set are left alone, and viewers can read the suggestions but not act on them.

Contacts, meetings and to-dos

👥 Contacts — One compact table with each person's title under their name, type filters and counts, "last emailed" in words, and Email, Change type and Delete for a selection. A contact's page edits in place and saves your notes as you type. Point at a contact's name on a meeting or a deal to see their card.

📅 Meetings — An agenda grouped by day, with the next meeting marked. A "Synced 2m ago" pill replaces Sync now, suggestions answer one at a time, and one dialog logs or edits a meeting.

☑️ To-dos — Grouped by when they're due, with Mine and Everyone, filters kept in the address, a detail panel with comments, and F to flag one.

🧺 To-dos in bulk — Tick several to complete, reopen, assign or reschedule them together, with Undo; deleting them asks first. On a phone, tap Select.

Analytics and portfolio

📊 Analytics — Overview, Stage flow and Offers. Every number opens the deals behind it. Stage flow brings the old Funnel and Velocity together and shows where deals drop off, and why. The In exclusivity list reads each deal's current LOI, so an exclusivity that was shortened or extended shows its real end date.

🤝 Who sends you deals — A card on Analytics shows the contacts who source your deals: how many each has sent, when the last one arrived, the verdict mix, how far their deals got and who has gone quiet. A contact's page shows the same under Deals sent.

🏢 Portfolio — Each company has six tabs instead of twelve: Overview, Financials, Ownership, People, Documents and Plan. Financials pairs a revenue and margin chart with the P&L, and a plan's items become to-dos in one click. Setup picks up where you left off, and old links still open the right place.

Expenses

💳 The Inbox — Each item says why it needs you and suggests an answer (keys 1-3). Answers apply at once with Undo, and the sidebar count drops straight away. A strip at the top shows what needs you, this month's spend, what awaits approval and the missing receipts.

🧾 All, Reports and Trips — All is a table grouped by month with a total, actions for a selection and filters kept in the address; an expense opens in a side panel. When a filter can't apply to an export, the Export menu says what the file covers. Reports has a period picker, a monthly chart and your top categories, merchants and deals. The trip you're on shows at the top of Expenses.

Settings

⚙️ Settings, regrouped — One page with a list on the left (You, Workspace, Deal flow, AI and Expenses) and a search box. Switches save on their own; forms show a save bar (⌘S) and stop you before you leave unsaved changes. Each section says whether it applies to you or to the whole workspace.

🗺️ Your buy box — Dollar ranges you can type as "2.5m", chips for industries and places, and one table for each criterion's weight and whether it's a must-have. Expense rules read as sentences, with a tester that shows which rule fires.

Drop files anywhere

📥 Drop where you upload — Drop files, or a whole folder, wherever you upload: on any tab of a deal (they go to its Documents), anywhere on Expenses for receipts, and on Contacts to start an import. A Screening file that's waiting takes its file by drop, and so do a legal review, a signed copy, an expense, an Inbox card that needs a receipt and the workspace logo. Whatever you drop on lights up while you hold the files over it, and a check confirms when they're in.

🏢 Portfolio documents — A portfolio company's Documents takes files too, with a category, and opens them from the list.

🛑 Drops land where you meant — A drop on a page with its own upload no longer becomes a Screening batch, and a file dropped while a dialog is open is no longer opened by the browser.

⏳ Uploads that keep going — Move around the app while files upload: a progress message follows them, with View to go back. When a deal's documents have been read, a message and a notification tell you; turn the notification off in Settings → Notifications ("Your uploads finished reading"). Each document's text is read in the background and retried if storage hiccups, so it ends "Ready for AI" or "Not readable" instead of waiting.

The assistant

💬 A calmer chat — Your chats sit in a list on the left, grouped by date, and open instantly. Stop is a quiet button inside the message box, answers aren't boxed in, and an email the assistant sends waits a few seconds behind Undo. Ask about a deal or a company uses the same chat, and a deal's answer keeps coming if you close its panel.

The data room

🏛️ For your counterparties — Data rooms are warmer and clearer. The dashboard leads with what's waiting on them: drop a file on a request to upload it, with progress and Retry. Documents is one browser with one preview, the schedule is an agenda with a small calendar, and Messages shows who's in the conversation.

🔒 What counterparties see — Their activity feed now shows deal progress only (uploads, reviews, workstream updates, shared files and messages), never who signed in or what someone viewed or downloaded. Their own data-room admins no longer see sign-ins, views or downloads in the Activity Log or its export either: those stay with your team. Their bell became What's new, and email preferences moved to the account menu.

🛠️ For data-room admins — Invite several people at once, change a role with Undo, and switches that save on their own.

📬 Review requests from the deal — The deal's Diligence tab lists its data-room requests from every workstream, grouped into To review, Overdue, Waiting and Approved, with how many are approved, and the data room's admins approve an upload or send it back right there, with Undo.

Speed and keyboard

⚡ Quicker pages — Every page shows its outline while it loads, the main content arrives first with the extras filling in after it, lists keep their last results on screen while the next ones arrive, and ticking a to-do on Today no longer reloads the page.

⌨️ A command bar — ⌘K (Ctrl K elsewhere) jumps to any deal, contact, page or setting, your recent records, and actions like New to-do. Start with > for commands, d and a space for deals only, c and a space for contacts.

🎯 Commands for the record you're on — On a deal, ⌘K lists its actions first (Ask, Open documents, the data room, Upload documents, Advance and Pass); on a contact, Email, Call, Log meeting and Add to deal. Create also adds contacts, contact imports, expenses and portfolio companies, every Settings section is listed with the best matches first, and viewers see only what they can use.

🧭 Shortcuts that teach themselves — G then a letter goes anywhere (G T Today, G D Deals, G S Screening, G O To-dos, G M Meetings, G C Contacts), J and K move through lists, and keys show on the buttons they press. Press ? for every shortcut, with this page's marked.

🔔 Notifications — The bell is now a Notifications row in the sidebar: All, Unread and Mentions, grouped by day, with Mark all read.

Getting started

🚀 A focused setup — New workspaces set up in five steps on a page of their own: your firm, your buy box (with a live preview), Gmail and Calendar, your team, and your first CIMs, screened while you watch. Members and viewers see only the steps that apply to them.

Renamed and moved

🏷️ New names — The "Pipeline" stage is now Sourced, the Diligence Portals menu is Data rooms, and Analytics' Funnel and Velocity are Stage flow.

🧩 Settings sections — Integrations is now Connected accounts, the forwarding address has its own section, Buy box & underwriting is now Buy box & screening plus Underwriting defaults, API keys are under Keys & providers, and Expense settings sit in the same list. Old links and bookmarks still land in the right place.

v0.12.0October 2, 2026

Front Door

Deals now come in through one front door: drop a folder of CIMs, or forward broker emails and listing alerts to your workspace's own address, and each one is read and screened for you in Deals › Screening. Every deal gets a memo that cites its figures, underwriting for both SBA and funded search, and offers built from your numbers. Meetings from your recorder land on the right deal, and Expenses can now fill itself from your bank and card feeds.

Deals come in by themselves

📥 Drop CIMs — "Drop CIMs" at the top of the sidebar, or drag files (whole folders too) onto the Deals page. Each file is read, matched against the deals you already have (a CIM for a deal you're working on is attached to it, not duplicated), and screened against your buy box: Pursue, Ask first or Pass, with the reasons and the pages they came from. Add Deal's "Upload a CIM" works the same way for one file. A line under each drop says whose AI reads your files.

✉️ A forwarding address for deals — Your workspace has its own address. An admin creates it in Settings → Integrations → Agent access; whatever you forward there (attached CIMs and teasers, links to BizBuySell and other listing sites, or the email's own text) is screened like a drop, and you get a reply when you sent it yourself. Mail from someone who isn't on your team waits for an admin to accept it, and admins can allow whole domains. Gmail's forwarding-confirmation code shows up in Settings, so you can set up automatic forwarding.

🗂️ Deals › Screening — Files fill in as they are read, with the headline number for your buyer profile, the fit, red flags and the AI cost of the batch. Open a deal beside its PDF, with the quoted passages highlighted. Move fast with the keyboard (J/K, A to advance, P to pass, R to ask for information, S to snooze), pass everything the screen suggests in one go with the reasons filled in, and draft the notes to the brokers. A file that didn't read has Retry. Screened deals join the pipeline when you advance them. You get one notification when a batch is done, and Today shows batches still running and files that need you.

🔁 Screen my open deals — Run the screen over the deals you already had, with a cost estimate first.

🧷 Drops that survive a reload — The batch is opened before your files upload, so closing the tab loses nothing. A file that didn't finish shows "Waiting for the file" in Screening; choose the same file again and it carries on (a different file is turned away before it uploads). If it never comes back, the batch still finishes after an hour and tells you what was screened, and the file can be chosen again later.

🎯 Your criteria, weighted — Under the buy box, give each criterion a weight, mark the ones that are required, and set an EBITDA range on the reported or seller-adjusted figure. Deals that meet your required criteria come first in Screening; one that misses a required criterion is suggested for a pass, and one the documents don't settle is "Ask first". Change your criteria and the affected fits are marked stale: "Refresh fit" recomputes them from the figures already read, with no new AI cost.

🔎 The whole backlog, searchable — Search Screening by company, industry or location, filter by verdict or by your required criteria, and page through every deal waiting there: the best deals come first across the whole backlog, not just the page you're on, and sorting a column sorts them all. Compare up to four deals side by side, even from different pages, each figure with its period and source page, and copy the questions for the broker in one click.

The deal page

🧭 Six tabs — Overview, Memo, Underwriting, Documents, Diligence and Activity. Everything from the old tabs is still there: notes, comments, emails and meetings are one Activity timeline with filters; to-dos and legal documents are in Diligence; people and linked expenses on the Overview. Old links and bookmarks open the right place.

💬 Ask about this deal — Deal chat is a button in the deal's header and opens beside whatever you're looking at.

📌 Figures you can trace — Asking price, revenue, SDE and EBITDA show where each came from: the document and page, a person's edit, or the CIM's first read. The Overview leads with the next step (an NDA to send, an offer's exclusivity), the screen and when the deal was last touched.

Deal Memo and the Screen

📝 Deal Memo — A memo written from your documents, where every number is a reference to a figure the documents state or to your underwriting, so it can't drift from them. When figures disagree across documents it says so and suggests the question to ask; it marks itself stale when something changes and refreshes on its own. Previous memos, including the ones written before this release, stay listed.

🔍 The Screen replaces Score Deal — The Memo tab opens with the deal's screen against your buy box. When a figure couldn't be checked against the file, it says "Needs review" until someone marks it reviewed.

📨 Send the requests — The memo's missing-document requests go to the data room, a collection link or your to-dos in one step. Counterparties never see your figures in a request's title.

✅ Diligence checklists are to-dos — Open items from the old diligence checklist are now the deal's to-dos; completed ones stay readable in Diligence. Your diligence templates now create one data-room workstream per category when you launch a data room.

Underwriting

🧮 An Underwriting tab for both buyer profiles — Model a deal as an SBA-financed self-funded search (with or without passive investors) or a traditional funded search: sources and uses, debt, coverage, returns, sensitivity, and the price that meets your coverage or return target. Save scenarios, compare them, and pick the one that leads.

🏷️ Max price on every card — The pipeline, the Screening board and the deal header show the maximum price at your coverage target (SBA) or the value at your target multiple (funded search), with the gap to the ask. SBA numbers carry "8.1 · pending lender review": the SBA rules are built in but haven't been confirmed by a lender yet.

⚙️ Settings → Buy box & underwriting — Your search criteria moved here from General, next to your default buyer profile, financing terms and targets.

Offers

✍️ Make an offer from a scenario — Turn a saved scenario into an IOI or LOI. For SBA deals it checks the offer against the SBA rules first (no earnout, the seller note sized to fit) and blocks one that wouldn't pass. The letter is filled from the offer's terms, not the asking price, and its status follows the offer: sent, countered, accepted, declined. Accepting an LOI offers to move the deal to Under LOI and launch the data room.

⏳ Exclusivity countdown — An accepted LOI counts down its exclusivity on the deal, its card and Today. Analytics → Offers shows LOIs sent and signed, your win rate and how long CIM to LOI takes.

📄 NDAs from the deal — Generate an NDA from the deal's Overview or Diligence › Legal, prefilled from your firm and the seller. Your default NDA template in Settings → Templates is used (or SearchWare's starter, a draft for your counsel to review). Every field the template uses must be filled, then you read the NDA and can edit it before it's saved; the exact text is saved to the deal, and Draft details shows the template, values and edits it came from.

✍️ Confirm execution, with the date it was signed — In Diligence › Legal, Confirm execution records the day everyone signed, who confirmed it, and the signed copy (pick the PDF or Word file, or upload it) or a note saying where it's held. Executed is no longer a status you pick. Details & history shows every change, and the signed copy and executed agreements can't be replaced or deleted. Set a follow-up or expiry date and it shows on Today's Legal follow-ups and the Deals list's "Overdue follow-ups" filter. Accepting an offer confirms its LOI's execution on the day you record; generating a new NDA draft retires the previous one. Agreements marked executed before this release show as a "legacy record" until confirmed.

🖋️ Your letterhead on every draft — NDAs and offer letters are Word files with your firm's name, address and logo at the top, one title, "DRAFT" and page numbers at the foot, and signature blocks that don't split across pages. The Word letterhead needs a PNG or JPG logo: if yours is a WebP, upload a PNG or JPG in Settings → General before generating. An offer letter with a blank left (an NDA date, the governing state) can't be marked sent until it's filled and the letter generated again.

Meetings

🎙️ Connect your meeting recorder — Connect Granola in Settings → Integrations. Your recorded meetings about deals come in and are linked to the deal they're about; you confirm a link, and people SearchWare doesn't know become suggested contacts rather than new contacts. Meetings sync when you open Meetings or press "Sync now".

🔒 Private until you share — A recorded meeting is yours alone until you share it: confirming its deal shares it with the deal team, and "Share with everyone" makes it visible to the whole workspace (only meetings shared with everyone feed the Deal Memo). The transcript stays in your recorder and is read when needed. If you disconnect, meetings you never shared are removed after 30 days. Deal chat answers that could draw on a deal-team meeting are kept to the person who asked.

📅 Calendar: deal meetings only — Google Calendar import now keeps only meetings that belong to a deal, and no longer copies event descriptions.

🔎 Search your meetings — Meetings has instant search, and the Assistant searches and reads your meetings (and transcripts you can see).

Expenses

🔘 Expenses is a module — Workspaces that already used Expenses keep it; others can turn it on in Settings → General (admins, on plans with Expenses). When it's off, Expenses leaves the sidebar.

🏦 Bank and card feeds (rolling out) — Connect your business accounts and cards, and SearchWare files the charges for you: transfers and card payments are skipped, refunds are matched, categories come from your rules and what you've corrected before, and anything that needs you (a missing receipt, business or personal on a mixed card, an approval) goes to your Expenses Inbox. The details of personal charges are erased after 30 days. Feeds are opening to workspaces gradually; until yours is included, Expenses works as before.

🧾 Receipts that find their charge — Where bank feeds are on, snap a receipt on your phone, drop it in, or forward it to your own receipts address, and it's read and attached to the matching card charge. A weekly email lists what has waited for you for a week.

Removed and moved

📥 Deal Inbox — The Deal Inbox and its Gmail label sync are gone: forward broker emails and listing alerts to your forwarding address instead. An alert from a members-only site such as Axial or Acquire.com is screened from the deal details in the email, since SearchWare can't sign in to open the listing. Links to the Deal Inbox open Screening. Deals you added from the Inbox keep their source, notes and history. SearchWare no longer reads your "Deal Alerts" Gmail labels, so you can delete them and their filters in Gmail. For a week, Deals shows a note about the change to workspaces that used the Inbox.

⚖️ The Legal page — Legal leaves the sidebar. Its tracker is the Deals list's "Legal" filter (drafts, out for signature, executed), each row opening the deal's Diligence › Legal, where document status, downloads and Upload for Review now live. NDA templates are in Settings → Templates. LOI templates are no longer used, created or edited, because offers fill their own letter; existing ones stay readable and deletable. The manual LOI form, the Gmail-draft button and the cross-deal review page are gone.

💬 The Slack bot — The SearchWare Slack bot is retired. Where bank feeds are on, they file your charges and receipts come from your phone, a drop or your own receipts address instead; elsewhere, add expenses on the Expenses page. Expenses and receipts you sent through Slack stay, and you can still open, edit, approve and export them. Your admin can remove the SearchWare app from your Slack workspace.

🎧 MeetGeek and the Gmail "Meeting Notes" label — SearchWare no longer imports from MeetGeek or reads a Gmail label for meeting recaps; connect a recorder instead. Meetings you already imported stay. Admins can revoke their MeetGeek API key at MeetGeek.

🧠 Strategy, Negotiate and Score Deal — The Strategy advisor, the negotiation planner and Score Deal are replaced by the Deal Memo, its LOI levers and the Screen. Old Strategy and Negotiate links open the memo's LOI levers.

🧩 Optional deal tabs — Every workspace sees the same six tabs, so the setting that hid tabs is gone. The Batch Import dialog and the CIM review card are replaced by Screening.

Getting started

🚪 A forwarding address instead of an inbox to connect — Today's "Get started" card asks an admin to create the forwarding address, and the empty Deals board links to it. Setup's Gmail step now just connects Gmail: there is no "Deal Alerts" label to enter. Settings → Integrations says what your Gmail connection is used for: your deals' and contacts' email, drafts, and the Assistant.

Plans

💳 What each plan includes — Every plan now lists bulk CIM screening, the Deal Memo and underwriting for SBA and funded search; Pro and Team add meeting recorders, NDAs and offer letters, and Expenses with bank and card feeds as they roll out. Platform AI budgets are unchanged ($20 on Solo, $75 on Pro, $40 per seat on Team), and your own AI keys are never metered.

v0.11.0October 2, 2026

Focus

SearchWare gets smaller so the deal work can get better. Features that sat outside the path from CIM to close, or that never quite worked, are gone, and the Assistant sticks to drafting, replying and scheduling. Signing in asks Google for less, documents are read page by page, and every meeting now reaches the deal's AI.

Removed

📰 News Digest — The daily news and RSS digest is gone. Links to it open Today.

🎟️ Conferences — The conference catalog, bookings and RSVP scanning are gone. Expenses you had linked to a conference are now grouped as a trip named after it, so nothing you logged is lost: the expense list and the CSV export show the trip.

📬 Gmail triage — The email assistant that labelled, archived and drafted replies in your inbox is gone, with its daily digest. Settings → Assistant now holds only what the Assistant chat uses: its name, how you like emails written, your meeting preferences, the default meeting link and the system prompt.

🧹 Inbox clean-up in the Assistant — The Assistant no longer archives, trashes, labels or marks emails as read. It still searches and reads your email, drafts, replies and forwards (you review every draft), and works with your calendar, contacts and meeting recordings.

⚙️ Automation rules and check-ins — Follow-up rules never ran on a schedule, so they are gone, and so are check-in questions. Today's "Gone quiet" list still flags engaged deals nobody has touched in 14 days.

🚗 Mileage — The mileage settings tab, which only ever stored two addresses in your browser, is gone.

⚖️ Legal Compare — The "coming soon" Compare tab is gone. NDA and LOI generation, Red Flag Review, the tracker and templates are unchanged.

Google

🔐 Sign-in asks only who you are — Signing in with Google now asks for your name and email address and nothing else. SearchWare no longer asks for access to Google Drive.

🔗 Connect Gmail and Google Calendar when you need them — Each is connected on its own, with "Connect Gmail" and "Connect Google Calendar" wherever a feature needs one: Settings → Integrations, Meetings, a deal's or contact's Emails tab, the email dialog, Legal and the Assistant. If you already use Gmail or Calendar in SearchWare, your connection keeps working. If Google stops honouring a connection, SearchWare asks you to connect again instead of showing an error.

AI

📊 Your AI usage, month by month — Settings → Billing shows how much of your plan's built-in AI you have used this month. Owners and admins get a notice at 80%. AI you run on your own API keys is never metered.

🔑 The right model for each step — If your firm uses its own API keys, quick steps (processing meeting recordings, Slack receipt replies, chat titles, reading receipts and scanned pages) now run on your provider's fast model: Claude Haiku 4.5, GPT-5.6 Luna or Gemini 3.8 Flash. If "Test key" finds your key can't use it, your own model is used instead. CIM parsing still runs on the model you chose. SearchWare's built-in AI now reads scanned pages with Gemini 3.8 Flash.

🧪 A more thorough Test key — Test key now tries every model your key serves and reads its rate limits, and remembers which models your key can't use.

🤝 A second AI provider only with your say-so — If your firm uses its own keys, CIM parsing checks its figures with a second provider only after an admin turns on "Second AI provider" in Settings → Integrations. Until then it runs on one model. Firms on SearchWare's built-in AI keep the two-model check.

📝 Underwriting memos that finish — Memos are now written on the server, so leaving the page no longer cuts one short. The Analysis tab lists your previous memos, opens one when you expand it, and marks the latest "Stale" once the deal's figures, documents or notes change. The AI's own CIM summary is labelled as AI-written in search and is no longer read back to the AI as your notes.

Documents

📄 Read page by page — PDFs are now read one page at a time. Scanned and table-heavy pages are read by AI in the background after you upload, so their figures reach deal chat and memos. PowerPoint decks are read too (they used to come back empty), spreadsheets sheet by sheet, and Word files at their page breaks. Documents you uploaded before this release are processed in the background.

Meetings

📅 Calendar meetings land on the right deal — A meeting imported from Google Calendar is linked to a deal when exactly one open deal matches it: an attendee is a contact on that deal, or has an email at the company's website domain. Your teammates and personal email domains never count, and a meeting you unlink stays unlinked.

🗂️ Every recap on the deal — Meeting recaps saved on deals by early versions of SearchWare now show on the deal's Meetings tab, with their attendees, and feed deal chat and the negotiation planner like every other meeting.

⚡ Faster meeting lists — Meeting lists show a short preview and load the full notes when you open a meeting.

👥 No teammates in your contacts — Importing a MeetGeek recording no longer creates contacts for people on your own team or at your own company's domain.

Security

🔒 A dedicated key for your secrets — Your AI API keys and MeetGeek key are now encrypted with a key of their own, separate from the one that signs you in.

Plans

💳 What each plan includes — Plans no longer list the News Digest, and now state the platform AI each plan includes every month ($20 on Solo, $75 on Pro, $40 per seat on Team). Your own AI keys are never metered.

Earlier releases

v0.10.1Current ModelsSeptember 28, 2026

A hotfix release. SearchWare moves to current AI models, CIM parsing tells you when it couldn't read a document, and a few paths that could share or spend more than you meant to are closed.

AI

🤖 Current models — SearchWare's built-in AI runs on Claude Sonnet 5, with Gemini 3.8 Flash reading CIMs. New API keys default to Claude Sonnet 5, GPT-5.6 Sol and Gemini 3.8 Flash, and Settings → AI API Keys lists the current models from each provider, Claude Opus 5.5 and Claude Fable 5.1 included. A key you saved with an older model keeps using it.

📄 CIM parsing you can trust — The extraction now fits the structured-output rules of Claude, GPT and Gemini alike. If neither model can read a CIM you get an error instead of an empty "Unknown" deal, and if one of the two fails the review card says so and asks you to check each value against the PDF. The confidence badge now reflects how sure the models were about each field, not just how often they disagreed.

✂️ No more cut-off answers — Current models think before they answer, so SearchWare gives them room to finish: memos, chats and legal drafts are no longer cut short. If an answer still runs out of room you see an error, and nothing half-written is inserted into your LOI or NDA.

🎚️ No temperature setting — Current Claude models refuse a custom temperature, so SearchWare no longer sends one and Settings → Assistant → Models no longer shows the slider.

🔒 Your keys, your providers — If your firm uses its own API keys, your documents go only to the providers you hold keys for. With a key for just one provider, CIM parsing runs on that one model.

Privacy and roles

📅 Add to Calendar sends only the title and time — Meeting notes and summaries stay in SearchWare. The meeting's contacts are invited, and emailed by Google, only when you tick "Invite attendees", and the dialog shows exactly who will get the invitation. When the Assistant creates an event, its card shows the description Google will email to the attendees, and you can edit or clear it before you send.

👀 AI generation needs the Member role — Memos, deal chat, legal drafts, the Assistant and the other AI features that generate content now need Member access or higher. Viewers keep their read-only access. The Assistant's MeetGeek tools, which read your firm's whole MeetGeek account, are for Members too.

Deal structuring

🏦 SBA-aware structures — SBA prohibits seller earnouts on 7(a) change-of-ownership loans. Underwriting memos, deal structures and negotiation plans now suggest an earnout only for a deal with no SBA financing, and say so; SBA structures follow the typical seller-note standby, equity injection and debt-coverage terms, with a reminder to confirm them with your lender. The LOI template's example structure no longer includes an earnout.

v0.10.0The March BatchMarch 27, 2026

The biggest single merge in SearchWare history. Seven parallel branches landed simultaneously: MeetGeek integration, a P0 security fix, seven deal improvements, blog and SEO infrastructure, observability upgrades, and a kanban redesign. A week of work dropped in a day.

Security: P0

🚨 OAuth Account Hijacking — Fixed — Critical: a conflict in PrismaAdapter could allow a new OAuth sign-in to attach to an existing account if the email matched, even with a different provider. An attacker who knew your email could sign in with their Google account and access your SearchWare data. Fixed immediately with proper provider + account ID isolation in the OAuth flow.

This was a P0 incident. Response time: discovered and patched in the same session.

MeetGeek Integration

🎙️ Native MeetGeek Integration — Connect your MeetGeek account in Settings → Integrations. SearchWare automatically ingests all your meeting recordings, transcripts, and action items. New meetings appear in the Meetings section as they complete. No copy-paste, no CSV export, no manual entry.

  • Real-time sync via webhook
  • Meeting summaries linked to deals automatically when deal context is detected
  • Action items extracted and added to To-Do's
  • Null-safe API response handling (MeetGeek occasionally sends empty arrays — now handled gracefully)

Deals: 7 Improvements (SEAA-37)

Seven targeted improvements to the deal detail page that operators have been asking for:

  1. Meetings Tab — Meeting history on the deal, not just in the global Meetings section
  2. Contact Linking — Link deal contacts directly from the deal detail view
  3. Stage Tracking — Stage change history with timestamps and who changed it
  4. Note Improvements — Rich text notes with better formatting
  5. Activity Feed Filtering — Filter the deal activity feed by type
  6. Quick Actions Bar — One-click actions for common deal operations
  7. Deal Score Card — Aggregate quality score from AI analysis components

Content & SEO

📝 Blog Infrastructure + 5 Posts (SEAA-28, SEAA-29) — Full MDX blog at /blog with RSS feed, article pages, and SEO metadata. Five initial posts targeting the keywords search fund operators actually search for:

  • The Complete Software Guide for Search Fund Operators
  • How to Manage Your Search Fund Pipeline
  • Search Fund Due Diligence Checklist (47 items)
  • Deal Management for Independent Sponsors
  • What Is a Diligence Portal?

❓ FAQ Page (SEAA-34) — SEO-optimized FAQ at /faq with FAQPage JSON-LD schema. Answers the five questions search fund operators ask most. Google will now know what a search fund CRM is.

Observability

🔍 Sentry Webhook + AppLog Error Triage Cron (SEAA-25) — Dedicated cron job for AppLog error triage: correlates error patterns, surfaces recurring issues, and creates Paperclip issues for high-frequency errors. The system now watches itself.

Kanban Redesign

🎯 3-Dot Stage Change Menu — Replaced drag-and-drop with a 3-dot menu for stage changes. The drag-and-drop had 7 bug fixes shipped in sequence and still had edge cases. The menu is reliable, works on mobile, and doesn't require precise pointer handling. Sometimes the right engineering decision is "just a button."


Seven branches. One merge. Zero regressions (we checked).

v0.9.0Trust the PlatformMarch 24, 2026

Security hardening, real pricing tiers, automated error monitoring, and portal invites that don't require a developer. The release that makes SearchWare something you can put in front of enterprise customers.

Security

🔒 Task Comments Scoped to Organization — Task comments were missing organizationId scoping in their database queries. In a multi-tenant system, this is serious. Fixed. Every task comment query now enforces org-level isolation.

No cross-tenant data was ever returned to users — the missing filter would have required a specific edge case query to exploit. Fixed immediately on discovery.

✅ Stripe Webhook Test Coverage — The Stripe webhook handler now has comprehensive tests covering every payment event: subscription created/updated/cancelled, invoice paid, invoice failed. If the webhook breaks, we know before your customers do.

Pricing Restructure

💰 Solo / Pro / Team / Enterprise — Four properly differentiated tiers:

  • Solo — For operators in active search, working alone
  • Pro — Full AI features, full portal access
  • Team — Associates, advisors, deal partners
  • Enterprise — Funds running multiple searches or a portfolio

Each tier has clear feature gates. The pricing reflects how SearchWare delivers value across the deal lifecycle.

Observability

📡 Automated Error Monitoring + Cron Health — GET /api/cron/health (secured with CRON_SECRET) provides real-time status of all background jobs. Error rates, function health, last-run timestamps. The ops team knows about issues before users do.

  • AppLog retention: 30 days, purged daily at 03:00 UTC
  • All cron routes use appLog({ level: "error", ... }) — never console.error
  • Sentry captures server action errors automatically via onRequestError in instrumentation.ts

Portal

📧 Portal Admin Invite API + Form — Portal admins can invite external users directly from the portal admin panel. Full invite flow: enter email address, add a personal note, send. Recipients get a Resend email with a portal access link. No developer required.

🦴 Skeleton Loaders Throughout Portal — Content-shaped skeleton loaders with shimmer animation replace blank flash states. The portal feels faster because you see structure immediately, not emptiness.


The release where SearchWare became something you could show an investor.

v0.8.0Portal v2 ShipsMarch 22, 2026

Portal v2 is done. The email assistant is polished. Portals get a quick-access dropdown in the main sidebar. Fourteen commits in one day. Standard.

Diligence Portal v2 — Complete

🗂️ Workstreams — First-class entity for multi-week diligence efforts (QofE, Technical DD, Legal Review). Status-bar cards with left color bars that change color by status (gray → amber → indigo → green). Accordion expand for the inline update thread. Seeing the status of 6 workstreams at a glance is now instant.

📋 Workstream Detail Page — Click into any workstream: status stepper, chronological update thread with timestamps and authors, document requests organized by workstream, direct owner assignment from portal users.

⚙️ Admin CRUD — Portal admins can create, edit, and delete workstreams and milestones directly from the portal. No more going back to the main app to update portal structure mid-diligence.

📧 User Reminder Emails — Automated reminder emails for portal users when document requests are overdue or milestones are approaching. Sellers stay on track without you manually following up.

🖼️ Warm SVG Illustrations — Empty states are first-class citizens. Custom illustrations replace generic "no data" placeholders throughout the portal. The empty state of your first portal feels intentional, not broken.

📱 Mobile Navigation — Portal works properly on mobile. Business owners upload documents from their phones. Now the experience doesn't make them feel like it's 2012.

Email Assistant Polish

  • Interactive Approval Cards — When the assistant wants to archive 50 emails or apply bulk labels, it shows a confirmation card. You approve or cancel before anything happens. No surprises.
  • Editable System Prompt — Settings → Assistant → Prompts. Customize the assistant's persona, deal context, and communication preferences.
  • Stop Button — Red square during streaming. Click to stop immediately.
  • Thinking Indicator Moved — Now appears near the input area (bottom of screen) rather than the header. You're looking at the bottom while you wait, not the top.
  • Bulk Tool Cards Collapsed — Bulk operations show as a single compact card, not 200 individual results.
  • Search Results Capped at 5 — Search itself queries up to 5,000 emails; display is capped at 5. Your screen thanks you.
  • No Re-Search After Confirmation — After confirming a bulk action, the assistant proceeds directly. It was asking "are you sure?" and then re-running the search before acting. Fixed.

Main App

  • Portal Dropdown in Sidebar — Quick-access dropdown showing active portals, lazy-loaded via /api/portals. One click to open any portal in a new tab. No more navigating to settings to find portal links.
  • Chat Message Persistence Fix — Internal team members accessing a portal now have messages persist correctly.
  • Dashboard Workstream Query Fix — Dashboard was querying DealTask instead of the Workstream model for the progress summary. The data was right; the query was wrong.

Portal v2 is done. 14 commits, one day, zero apologies.

v0.7.0Real InfrastructureMarch 21, 2026

Stripe billing. Platform-managed AI. Portal v2 foundation. Demo seed data. v0.7.0 is the release where SearchWare stops being a tool and becomes a business.

The Big Stuff

💳 Stripe Billing with Tiered Pricing — Four tiers built for how operators actually scale:

  • Solo — For searchers working alone in their search phase
  • Pro — Full AI features + Diligence Portal
  • Team — Add associates, advisors, and deal partners
  • Enterprise — Multi-search funds and portfolio managers

Subscription management, upgrade flows, billing portal. The pricing model matches how value is delivered.

🤖 Platform-Managed AI via Vercel AI Gateway — You no longer need to bring API keys to use AI features. SearchWare routes through the Vercel AI Gateway with platform-managed credentials. BYOK still works if you prefer it. This removes the most common friction point in onboarding: operators who wanted AI features but didn't want to manage API keys.

🎨 Diligence Portal v2 Foundation — The original portal worked. v2 is being rebuilt from scratch with a better design language, a proper sidebar navigation, and a workstream model that actually reflects how diligence is structured. This release ships the foundation: new schema, sidebar + dashboard redesign, design tokens.

The v2 design decisions:

  • Sidebar nav (not a hub) because diligence is cross-referential
  • Warm indigo palette with 11 CSS custom properties
  • Workstream cards as first-class entities
  • Illustration-driven empty states
  • Desktop-first, mobile-functional

🌱 Demo Seed Data — Complete demo environment in one script. Full deal pipeline with realistic companies, contacts, portal, documents, and timeline. Prospects see SearchWare working on real data. No more "this is better with data" conversations.

Documentation

  • Added Portal v2 premium redesign spec to Specs/
  • Fixed migration workflow contradictions that were causing confusion in the dev team

Tiered pricing. Platform AI. A portal worth redesigning. This is where "promising tool" becomes "real product."

v0.6.0The Seller Gets a PortalMarch 20, 2026

v0.6.0 is the Diligence Portal. Not a feature — a product. Sellers get a professional, branded interface for the diligence process. You get visibility into exactly what they've uploaded, what's pending, and what they've been saying. No more email chains for document requests.

Diligence Portal

🚪 Portal Authentication — Sellers get their own login. Custom bcrypt-based auth system with 6-digit email verification codes (sent via Resend). No Google account required. No friction. A business owner who has never done an acquisition can get into their portal in under two minutes.

📋 Portal Dashboard — Progress bars for overall diligence completion. Task list organized by category. Activity feed showing what happened and when. Sellers see exactly where things stand without asking you.

📁 Document Management — Folder tree organized by diligence workstream. Permission-filtered views (sellers only see what you've made visible). Document upload with status tracking. The request/fulfill loop that used to live in email is now tracked in a system.

💬 Portal Chat — Professional messaging between you and the seller, scoped to the deal. Smart polling with ETag headers (only fetches when there's something new). Not Slack. Not email. Deal-specific, professional, searchable.

📊 Activity Log — Every action in the portal is logged: uploads, messages, logins, status changes. You have a complete audit trail of the diligence process.

🎨 Design Language — Warm indigo palette. Workstream-organized layout. The portal doesn't look like your CRM's admin panel — it looks like something you'd be proud to send to a seller.

Expenses Overhaul

  • Travel mode: expenses can be linked to trips, with attendee tracking
  • Subfolders for document organization
  • Conference filters on the Discover tab
  • Onboarding improvements

Portal Infrastructure

  • PortalUser, DiligencePortal, PortalAccess, PortalMessage, PortalSession, PortalActivityLog, DiligenceTemplate Prisma models
  • Portal creation with template baseline tasks
  • /portal/[portalId] public routes added to proxy.ts
  • Portal management: create, edit, share from deal detail

The deal process has two sides. v0.6.0 is for the seller's side.

v0.5.0The Assistant Grows UpMarch 19–20, 2026

v0.5.0 is the AI assistant release. Four phases shipped over two days. When it was done, SearchWare had a full-featured email assistant with push notifications, draft replies, deal comments with AI extraction, and a daily digest. The sidebar got restructured. Legal templates went org-wide. A lot happened.

The Big Stuff

📬 AI Email Assistant with Gmail Push Notifications — The assistant now monitors your Gmail with push notifications (not polling). Urgent emails land in your workflow automatically. The assistant can search, read, archive, draft replies, and take action on your inbox in natural language. Ask it "summarize my unread emails from brokers this week" and it does.

✉️ AI Draft Replies — The assistant drafts context-aware email replies. It knows the deal you're working on, the person you're emailing, and the stage you're at. The draft lands in Gmail, ready to review and send.

📰 Daily Digest — A daily summary of what happened across your deals: new emails, stage changes, tasks completed, upcoming meetings. Delivered on your schedule, not when you remember to check.

💬 Deal Comments with Auto-Extraction — Comments on deals now have AI extraction: paste in an email thread or meeting notes, and structured data (stage changes, contact info, financial figures) gets extracted automatically into the deal record.

📊 Stats Card — Dashboard gets a stats bar: deals by stage, pipeline velocity, recent activity counts. The numbers you actually want to know when you open the app.

Also Shipped (Phases 1-2)

Schema & Renames (Phase 1):

  • "Deal Digest" renamed to "News Digest"
  • "Tasks" renamed to "To-Do's" (more honest about what they are)
  • 12 new Prisma models for comments, document collections, legal templates, notification preferences, and email assistant configuration
  • Configurable contact alert thresholds (was hardcoded at 30/60 days, now per-org)

Comments UI + Legal Templates (Phase 2):

  • Comments UI on deals with threading support
  • Legal templates: save NDA/LOI terms as org-wide templates, don't re-enter standard clauses every time
  • Email rework: consolidated Gmail settings, better labeling flow
  • Notification preferences per user

Magic URLs + Slack Debug (Phase 3):

  • Auto-extract deal data from BizBuySell and broker URLs (paste a URL, get a pre-filled deal)
  • Slack webhook debug tooling for the expense bot

Infrastructure

  • Sidebar restructured: Assistant below main nav, Admin panel behind separate divider
  • Settings cleaned up: Gmail/Calendar/Search Criteria moved to Assistant settings (they live there now)
  • News Digest config moved inline to the Digest page (it belongs there)
  • EIN and State of Incorporation fields on org settings (needed for legal doc auto-fill)

The assistant can now read your email, draft replies, and tell you what you missed. That's not a CRM feature. That's an AI coworker.

v0.4.1Legal OSMarch 19, 2026

The legal section of SearchWare was always there. v0.4.1 makes it a real product.

The Big Stuff

⚖️ Legal Command Center — /legal rebuilt with five tabs:

  1. Tracker — Cross-deal document dashboard. See every NDA and LOI across your entire pipeline in one place. Status badges. Filter by stage. Know at a glance what's signed, what's pending, what's expired.
  2. Generate NDA — Auto-fills counterparty fields from deal contacts (SELLER_OWNER role) and your org details. Your firm name, entity type, state, address, and authorized signer are pre-populated.
  3. Generate LOI — Same auto-fill, with deal-specific financial data pulled from the deal record.
  4. Red Flag Review — AI clause-by-clause analysis against your standard terms.
  5. Compare — Upload two versions of a document (your draft vs. their markup) and get a narrative analysis of every change.

📄 Document Status Tracking — Legal documents now have statuses: DRAFT → SENT → UNDER_REVIEW → EXECUTED → EXPIRED. Semantic color badges. Dropdown status changes with transition validation. When you mark a document EXECUTED, SearchWare automatically sets Deal.ndaSignedAt or Deal.loiSignedAt.

📧 Gmail Draft Button — On any generated NDA or LOI, one click creates a pre-addressed Gmail draft to the counterparty contact. The document is attached. You just review and send.

🏢 Per-Deal Legal Tab — The legal tab on each deal card is now live. Shows a "What's Missing?" advisory card, quick actions, document list, and due diligence progress rings.

Conferences

  • New tabs: "My Conferences" (booked) and "Discover" (filter-first aggregated feed)
  • Conference cards link to detail pages
  • Search and filter by type, location, and date

Notes

  • Deal Inbox removed from sidebar nav (code preserved for future implementation)
  • CLAUDE.md Rule #12 added: batch deploys, test locally before merging

Legal documents were always the most painful part of the deal process. They should be the easiest.

v0.4.0Drag That DealMarch 18, 2026

Expense management gets a serious upgrade. The kanban pipeline becomes actually draggable. And Plaid webhooks get the security treatment they deserve.

Expense Management v2

💰 Unmatched Transactions UI — A new card on the Expenses page lists Plaid transactions that don't have a receipt or expense record attached. "Match to Expense" dialog with an expense picker. "No Receipt Needed" dismiss action. The audit trail is now the default, not the exception.

📊 Expense Insights Dashboard — The Expenses page now has two tabs: Expenses (the list you know) and Insights (the summary you wanted). Summary cards for total approved, pending, count, and average. Breakdowns by vendor, category, entity, and month. AI-generated spending analysis via generateText + Output.object. Your expense data actually tells you something.

🔒 Plaid Webhook Security — Replaced the previous item-existence check with full JWT signature verification per Plaid's spec: ES256 signature with JWK caching, body SHA-256 hash validation, 5-minute replay window protection, timing-safe comparisons. Seven new security tests. The webhook is now as hardened as the financial data it processes.

Kanban Pipeline

🎯 Sortable Kanban — dnd-kit drag-and-drop replacing the previous HTML5 native approach. Cross-column stage changes (drag a deal from INTERESTED to UNDER_NDA). Within-column reordering. DragOverlay with a full card ghost at 1.02x scale and shadow for that satisfying "picked up" feel. Works on pointer, touch, and keyboard.

  • Deal.sortOrder Float field with composite index for persistent card ordering
  • Midpoint insertion algorithm (no rebalancing needed as you add cards)
  • reorderDeal server action handles atomic stage + sortOrder update
  • Cross-column moves trigger DealStageHistory, activity log, and team notifications

Infrastructure

  • IRS mileage rate updated from $0.68 to $0.70 (2025 standard rate)
  • PdfViewer and Skeleton UI primitives added

Drag-and-drop is one of those features that feels obvious once it exists and impossible to live without.

v0.3.0See the PDF While You Review ItMarch 18, 2026

The obvious design flaw in v0.2.0's CIM review flow: you had a dialog full of extracted data, but you couldn't see the source PDF while reviewing it. You had to flip between tabs. v0.3.0 fixes that in the most obvious way possible.

The Big Stuff

📄 Side-by-Side CIM Review — After CIM parse, the "Add Deal" dialog expands to full-screen split view: PDF on the left (40%), extracted data on the right (60%). Resizable panels. Now you can verify what the AI extracted against what the document actually says, without leaving the screen.

🔍 Field-to-Page Navigation — Click any extracted field label in the review card and the PDF scrolls to the page where that value was found. Revenue → jump to the financials page. Year Founded → jump to the company history section. The AI tracked where it found each piece of data.

📋 Tabbed Batch Review — Uploading 10 CIMs at once? Each one gets a tab in the review dialog. Shared PDF viewer switches per tab. Auto-selects the first, auto-advances on approve. Batch processing that doesn't feel like a spreadsheet.

Quality of Life

  • Private blob proxy — Vercel Blob private URLs returned 403 when react-pdf tried to fetch them client-side. Fixed with a server-side proxy route that streams the file. The PDF now loads.
  • Parse-complete confidence banner — Green/amber/red summary immediately after parse: "High confidence — all fields match" / "3 fields need review" / "2 discrepancies found."
  • Correction tracking — When you edit extracted data before approving, the diff is stored. These corrections feed the accuracy dashboard introduced in v0.2.0.
  • Integer field rounding — Year Founded and Employee Count no longer display as 2008.0000000000002. We're sorry.

Design

  • DESIGN.md created — codified design system: Geist Sans/Mono typography, navy HSL palette, spacing conventions, component patterns, financial display rules. The informal "just make it look like the rest" rule is now written down.

Sometimes the right feature is just: let the person see the document they're reviewing.

v0.2.0CIM IntelligenceMarch 18, 2026

The CIM (Confidential Information Memorandum) is the central document of every acquisition. Every operator spends hours manually pulling data out of PDFs into their CRM. v0.2.0 ends that.

The Big Stuff

🧠 Dual-Model CIM Extraction — Upload a CIM and two AI models parse it simultaneously. Not for fun — because models disagree, and disagreement is information. Field-by-field comparison with 5% numeric tolerance catches discrepancies before they become data quality problems in your pipeline.

  • Google Gemini 2.5 Pro handles primary extraction
  • Anthropic Claude runs secondary verification
  • high/medium/low confidence per field based on model consensus
  • Financial sanity checks: flags impossible multiples, EBITDA > revenue, implausible dates

📋 Two-Phase Deal Creation — CIM upload no longer drops raw data into a deal and hopes for the best. Files now pause at "review" status. You see what the AI extracted, edit anything wrong, approve. Deal creation only happens when you've confirmed the data.

🔄 Non-Blocking Parse — Close the dialog while the CIM processes in the background. A green pulse on the "Add Deal" button tells you when it's ready. No more staring at a spinner.

📊 Extraction Accuracy Dashboard — Settings → Advanced. See how well the AI is doing across all your CIM uploads: per-field accuracy rates, model comparisons, recent corrections. When you correct an extraction, that data is tracked. The system improves by osmosis.

Also Shipped

  • Batch summary card shows confidence distribution, total asking price, duplicate count across multiple CIM uploads
  • Duplicate detection against existing deals in your org
  • Financial multiples display (price/revenue, price/SDE, price/EBITDA) in the review card
  • Editable broker sub-form in review (broker data in CIMs is often wrong)

Bug Fixes Included

  • v0.2.1: Fixed blank fields after CIM parse — the API response was wrapped under parsed.data but the dialog was reading from the top level. Classic.
  • v0.2.2: Fixed dual-model never actually running — getAiModel() was returning the org default, so both "models" were the same model. Now explicitly picks a provider from a different family for the secondary extraction.

33 new tests for extraction logic (265 total). The CIM parser now has more test coverage than most billing systems.

v0.1.0Big BangMarch 8, 2026

Phase 1 through Phase 5. In one day. We don't recommend this for anyone's cardiovascular health, but here we are.

SearchWare launched as a complete acquisition platform — not a demo, not a prototype. A full product for search fund operators to run their entire deal lifecycle from first contact to close.

The Foundation

🏗️ Phase 1: CRM & Deal Pipeline — Contact database with typed roles (brokers, business owners, advisors, lawyers), deal pipeline with stages from SOURCED to CLOSED_WON, inline deal editing, team assignment. The thing search fund operators spend months retrofitting Salesforce to do, out of the box.

🤖 Phase 2: AI Engine — Bring your own API keys (Claude, GPT, Gemini). SearchWare routes them through every part of the workflow: underwriting models, legal document review, diligence analysis, deal structure recommendations. Pass it a CIM and get a structured opinion back.

📧 Phase 3: Gmail + Deal Feed — Connect Gmail, receive deals from BizBuySell and broker emails, parse them into your pipeline automatically. Meeting parser turns calendar invites into deal touchpoints.

🔍 Phase 3.5: RAG Deal Chat — pgvector embeddings on your deal documents. Upload a CIM, ask "what are the customer concentration risks?" and get a real answer from the actual document. Negotiation planner generates position papers for LOI stage.

🏢 Phase 4: Portfolio Ops — After you close, you need somewhere to track what you own. Portfolio companies get their own records with 12 tabs and an AI assistant that knows the company context.

⚙️ Phase 5: SaaS Infrastructure — Multi-tenant architecture, RBAC (OWNER/ADMIN/MEMBER/VIEWER), Stripe subscriptions, 5-step onboarding wizard. Team invites, per-user feeds, role-based access.

Production-Ready From Day One

  • Sentry error monitoring with custom error boundaries
  • Automated build pipeline with Prisma migrations on deploy
  • Baseline database migration for automated deployments
  • Testing infrastructure: Vitest with unit + integration projects, 32 tests passing
  • Expense management schema: 10 models, 8 enums, state machine (DRAFT → APPROVED)

Five phases. One day. Somehow shipping.