The CRM half of Close is ordinary software: leads, contacts, a pipeline, one timeline per lead and saved lists all fit in a SQLite file, and an agent writes that in a sitting. What people actually pay Close for is the phone and the inbox inside the CRM, and those lean on Twilio, IMAP and a public URL for webhooks, which is where the weekend goes. Even then there is no power dialer, no phone app and no team view, so a sales team is better off self-hosting Twenty or EspoCRM than building.
Before you buildClose has no free plan, but Solo drops to $9 a month billed yearly. If one seat with calling built in is all you need, put that next to your Twilio bill before building.
Build me a personal sales CRM to replace Close. Requirements:
- Node.js 22 + TypeScript: a Fastify server and a React front end built with Vite.
`npm start` serves everything on http://localhost:4700.
- Storage: better-sqlite3 in ./data/crm.db. Leads (companies) hold contacts and
opportunities (value, confidence, close date, stage). Every lead has one
timeline of emails, calls, texts, notes and tasks in date order.
- Email: poll my mailbox over IMAP with `imapflow` every 5 minutes and attach each
message to the lead whose contact matches the address. Send with `nodemailer`
over SMTP from templates with {{first_name}}-style tags. Credentials in .env.
- Sequences: up to 5 email steps with delays, stopped as soon as the contact
replies, never more than 50 sends a day per mailbox.
- Calls and texts through Twilio (keys in .env): click-to-call in the browser with
`@twilio/voice-sdk`, inbound calls ring the open page, and each call is logged
with its duration and recording link. Without keys, hide these and show a
manual "log a call" form.
- Smart views: save any search (lead status, last contacted, stage, custom field)
as a list and work through it lead by lead. A drag-and-drop pipeline board, and
a home page with today's tasks and leads untouched for 14 days.
- CSV import with a column-mapping preview, CSV export of any view, and a full
JSON backup command.
- Single user. No accounts, no telemetry, local-first.
- Out of scope: power or predictive dialers, AI calling agents, team permissions
and mobile apps.
- README: setup, where the data lives, and the Twilio steps. Budget an hour for a
number and a TwiML app; inbound calls and texts need a public URL (a cloudflared
tunnel or a VPS); US texting needs A2P 10DLC registration, which can take days.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Close.
Add an importer for a Close JSON export to the CRM in this folder. Requirements: - A command `npm run import:close -- <file>` that reads the leads export made with All fields, gzipped or not. - Create leads, contacts and opportunities, and turn each lead's activities into timeline entries: emails, calls with duration, SMS and notes. - Map Close lead and opportunity statuses onto my pipeline stages; print the mapping and ask before writing anything. - Keep the Close ids in a column so a second run updates instead of duplicating. - Print a summary of imported and skipped leads, contacts, deals and activities. - Update the README with the Close export steps.
Add a simple dialer to the CRM in this folder. Requirements: - Start a session from any smart view; it queues every contact with a phone number. - Dial the first one through the existing Twilio setup. When the call ends, show a wrap-up form (outcome, note, next task) and dial the next only after I click Next or press N. - Skip contacts called in the last 3 days and numbers marked do-not-call. - Only dial between 9:00 and 18:00 in the contact's time zone (a field that defaults to mine). - Show session stats: dialed, connected, average talk time. - Out of scope: dialing several numbers at once. - Update the README.
Add call transcripts and summaries to the CRM in this folder. Requirements: - After a recorded Twilio call, download the recording into ./data/recordings/ using the Twilio credentials in .env. - Transcribe it locally with whisper.cpp (small model), or with OpenAI's API if OPENAI_API_KEY is set. - Ask the LLM for a 3-line summary, next steps and any dates mentioned. Put the summary on the lead's timeline and offer the next steps as tasks to accept. - Make transcripts searchable from the global search. - Out of scope: live transcription during the call. - Update the README with the whisper.cpp install and a note on consent laws for recording calls.
Reps spend the whole day in Close because calls, texts, email and the pipeline share one screen and need almost no setup, and the dialers turn a list into an afternoon of calls. Managers pay for one view of what every rep did, while phone numbers, sending limits and US texting registration are handled for them.
Estimate · Without calling it runs for free on your machine. With Twilio you pay for the number plus each minute and text at Twilio's rates, which stays small at personal volume. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Solo | $19/user | $9/user | One user, up to 10,000 leads, 3 connected mailboxes, calling and SMS, 30-day call-recording retention, 500 AI credits a month. |
| Essentials | $49/user | $35/user | Unlimited leads, team features, 3 mailboxes per user, open tracking, 30-day recording retention, 1,000 AI credits per user. |
| Growth | $109/user | $99/user | Adds workflows, power dialer, bulk email, email scheduling, custom activities, 10 mailboxes, 90-day recording retention, 1,500 AI credits per user. |
| Scale | $149/user | $139/user | Adds predictive dialer, call coaching, custom roles, lead visibility rules, custom objects and unlimited recording retention. |
| Custom | custom | — | — |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Power and predictive dialers, voicemail drop and call coaching, Chloe, the AI agent that calls and qualifies leads.
About $19 a month on the Solo plan per seat, $228 a year (checked 2026-10-13).
Power and predictive dialers, voicemail drop and call coaching; Chloe, the AI agent that calls and qualifies leads; Mobile apps for calling and texting on the go; Shared team inboxes, permissions and reporting; Ready-made importers from HubSpot, Pipedrive and others. If any of those matter to you, keep paying.
Yes: Twenty (open source), EspoCRM (open source), Krayin CRM (open source).