Kalven Privacy Policy
Kalven is a Chrome extension for commercial real estate (CRE) brokers. It assists with property prospecting, prioritization, and workbook generation. This policy describes what data Kalven collects, how it is stored, and where it is sent.
What Kalven Does
Kalven runs inside your existing authenticated CoStar and Chicago Title browser sessions. It reads property data from web pages you are already logged into, sends that data to the Anthropic Claude API for structured analysis using your own API key, and generates a downloadable Excel workbook with property prioritization and outreach recommendations.
Kalven is a CRE prospecting and prioritization tool. It does not provide lending recommendations, credit decisions, property appraisals, or investment advice.
Data Stored Locally
Kalven stores the following data in your browser using Chrome's built-in extension storage:
- Anthropic API key — stored in
chrome.storage.local(persists across sessions, scoped to your local Chrome profile, never synced to any server, never transmitted anywhere except as an authentication header to the Anthropic API atapi.anthropic.com). Chrome does not encryptstorage.localat rest; treat the value as sensitive on shared machines. - UI preferences — city, state, asset type, and filter settings you enter for the current session are stored in
chrome.storage.session(ephemeral; cleared automatically when you close your browser). - Recent Runs metadata (local) — a local IndexedDB database (
kalven_history) records operational metadata about your prospecting runs so you can see recent activity and resume an unfinished run. Records include run and batch identifiers, timestamps, counts (analyzed, processed, error), enumerated status and error codes, the broker profile snapshot you entered (your name, firm, specialty), the workbook filename Kalven chose, and the filter settings you typed into the popup for that run (city, state, asset type, ranges, checkbox selections). The filter-settings copy exists solely so you can click Continue and resume a run that hit Kalven's per-run cap; it is never used for any other purpose. Records are scoped to the Kalven account signed in when they were created. All fields listed here remain on your device: recipes, filenames, statuses, error codes, and profile snapshot are not sent to Kalven's backend, are not synced across devices, and are not shared with any third party. The one narrow exception, called out separately below, is a per-workbook usage summary sent to Kalven after a workbook download completes. Records persist until the extension's storage is cleared (via Chrome's extension controls or by uninstalling Kalven); a self-serve delete-per-run control is not yet available. - Selector schemas and page structure metadata — cached in
chrome.storage.sessionfor internal selector resolution. These contain only structural information about page layout (tag names, attributes, element positions). They never contain property data, contact data, or loan data. - Account session and entitlement tokens — when you sign in to a Kalven subscription, a short-lived signed entitlement token and account session metadata (your sign-in email, subscription status, renewal date) are stored in
chrome.storage.localalongside your profile and API key. These identify your subscription; they contain no property, contact, or loan data.
Property data, contact data, and financial data extracted from CoStar and Chicago Title pages are held only in browser memory during your active session. They are never written to persistent storage (including the Recent Runs database), never synced, and never cached between sessions.
Data Sent Externally
Kalven sends data to four external services, each for a distinct and limited purpose:
- Anthropic Messages API (
https://api.anthropic.com/v1/messages) — extracted property, financial, and contact data is sent over HTTPS for AI-powered analysis. These requests are authenticated with your own Anthropic API key. You are responsible for your API usage costs and for reviewing Anthropic's terms of service and privacy policy. - Kalven backend (
api.kalven.ai) — account, billing, entitlement, and operational usage metadata: your sign-in email, subscription state, entitlement-token requests, and one per-workbook usage summary (see below). See "Account and Subscription Data" below for exactly what this service does and does not receive. - Stripe (
api.stripe.com, via Stripe Checkout and the Stripe Billing Portal) — payment processing for your subscription. Your card details are entered on and held by Stripe; Kalven never sees, stores, or transmits card numbers. - Resend (transactional email API) — used solely to deliver one-use sign-in links and codes to the email address you provide.
Kalven does not send data to any advertising network, analytics service, or data broker, and does not collect crash reports. The one exception is the per-workbook usage summary described in the next section.
Operational Usage Reporting
After a workbook download completes, Kalven sends its backend an operational usage summary containing a random event identifier, the opaque Kalven account identifier, the number of properties processed in that batch, and whether the batch was an initial run or a continuation. The backend records when it receives the summary. Kalven uses these summaries for account usage reporting, service administration, and plan-limit administration. These summaries never contain property identifiers or addresses, owner, contact, loan, or other platform-derived data, filter selections, workbook contents, Anthropic prompts or responses, or your Anthropic API key. Raw event summaries are retained for 90 days. Kalven also derives per-broker daily aggregates (retained for 13 months) and anonymized cross-broker monthly totals (retained indefinitely as service growth metrics). Anonymized monthly totals contain no per-broker identifier. Months with fewer than five active brokers are excluded from the anonymized monthly table. Authorized internal dashboards are provided through Retool using limited read-only access. Delivery is default-on once you accept the current Terms of Service; delivery is best-effort and the extension will not block your workbook download or Recent Runs update if a summary fails to send.
Account and Subscription Data
The Kalven backend handles only account, billing, entitlement, and operational metadata: sign-in email, Stripe customer/subscription/invoice identifiers and lifecycle state, renewal or billing dates, signed-token issuance/expiry metadata, the per-workbook usage summary described above (event identifier, opaque account identifier, processed-property count, run kind), and ordinary request/webhook logs such as timestamps, IP addresses, user agents, webhook event IDs, and error traces. It never receives, stores, logs, proxies, or transmits broker deal data, property identifiers or addresses, owner/contact data, loan data, platform-derived records, filter selections, Anthropic prompts/responses, generated reports, Excel files, or your Anthropic API key.
The extension fetches an entitlement token when the popup opens or reopens, and again when you press Refresh; at those times it also tops the token up if less than two hours remain on it. It does not refresh the token in the background while the popup sits open. Before a run starts, it re-checks that token's expiry on your own machine, with no network request, and uses the cached token until it expires; after that a run is blocked until you reopen the popup or press Refresh. When a token is fetched or refreshed, the backend learns that an entitlement check happened at that time. It does not learn what property, platform, count, prompt, response, or report was involved. The workbook-completion usage summary is a separate, narrow signal described in "Operational Usage Reporting" above and does not include any of that content.
Sub-processors: Vercel (hosting and database for account/billing/entitlement/usage-summary metadata), Stripe (billing), Resend (sign-in email delivery), and Retool (authorized internal dashboards over account, subscription, and usage-summary query results via a limited read-only database role). Anthropic processes per-broker API calls authenticated by your own API key and is not a sub-processor of Kalven's backend.
Data Generated Locally
Excel workbooks (.xlsx) are generated entirely within your browser using the ExcelJS library and saved to your Downloads folder via the Chrome downloads API. No workbook data leaves your browser.
Permissions
Kalven requests the following Chrome permissions:
| Permission | Purpose |
|---|---|
| tabs | Navigate and read CoStar and Chicago Title tabs during analysis |
| storage | Store your API key and UI preferences locally |
| scripting | Execute extraction scripts on CoStar and Chicago Title pages |
| sidePanel | Display the Kalven interface as a Chrome side panel |
| downloads | Save generated Excel workbooks to your Downloads folder |
| alarms | Keep the background service worker active during long batch analysis runs |
| tabGroups | Group platform tabs under a "Kalven" label for organization |
| debugger | Send trusted keyboard events to CoStar form fields that use strict input validation masks and reject standard programmatic DOM events |
Kalven also requests host permissions for product.costar.com, api.anthropic.com, www.titlepro247.com, and api.kalven.ai to operate within your authenticated sessions, communicate with the Anthropic API, and check your subscription status.
Your Responsibilities
- You must provide your own Anthropic API key. You are responsible for all API usage costs incurred through Kalven.
- You must comply with CoStar's and Chicago Title's respective terms of service.
- Kalven does not independently access CoStar or Chicago Title. It operates exclusively within your own authenticated browser sessions using your own credentials. Kalven does not store your platform login credentials.
Data Retention
Kalven retains no property, contact, or financial data after your browser session ends. Your API key persists in local storage until you remove it or uninstall the extension. UI preferences are cleared automatically when you close your browser.
Changes to This Policy
If this policy changes, the updated version will be posted at this URL with a revised "Last Updated" date.
Contact
For questions about this privacy policy, contact: joe@kalven.ai