Clurto is a production-ready, self-hosted open-source alternative to expensive commercial client onboarding platforms like Content Snare, GuideCX, and Onboard.io.
It runs an autonomous multi-agent pipeline (Intake Parser, Strategy Brief Writer, and CRM Sync Agents) to ingest kickoff transcripts, extract structured client variables, compile detailed scoped project briefs, and populate Notion/Airtable pipelinesβall from a single serverless web interface.
- Zero Recurring SaaS Costs: Fully self-hosted and free-forever. An open-source alternative to Content Snare ($200+/mo).
- Bring Your Own Key (BYOK): Fully compliant with BYOK. API settings are stored privately in your browser's local storage. Your credentials and client records never touch any external backend server.
- Dynamic Database Schema Auto-Discovery: Bypasses strict schema limitations by dynamically querying Notion and Airtable columns before syncing, mapping fields automatically and ignoring missing ones to prevent
400 Bad Requesterrors. - Stark Grayscale Aesthetic: High-contrast, premium interface with glassmorphism blur and smooth transitions, supporting instant toggle between Stark Light (black on white) and Stark Dark (white on black) modes.
sequenceDiagram
autonumber
actor Admin as Agency Owner
participant UI as Clurto UI (Stark Grayscale)
participant Proxy as Express API Proxy (Vercel)
participant NVIDIA as NVIDIA NIM (Mistral Large 3)
participant CRM as CRM Sync (Notion/Airtable)
Admin->>UI: Paste Call Transcript & Click "Run AI Employee"
activate UI
UI->>Proxy: POST /api/nvidia (Parser Prompt + Transcript)
activate Proxy
Proxy->>NVIDIA: Extract details with JSON Schema
NVIDIA-->>Proxy: Structured JSON
Proxy-->>UI: Contact, Budget, Timeline, Pain Points JSON
deactivate Proxy
UI->>Proxy: POST /api/nvidia (Brief Prompt + JSON)
activate Proxy
Proxy->>NVIDIA: Write scoped project brief in Markdown
NVIDIA-->>Proxy: Markdown Project Brief
Proxy-->>UI: Markdown brief payload
deactivate Proxy
UI->>Admin: Display editable profile & brief draft
Admin->>UI: Click "Save to CRM" & Trigger Sync
UI->>Proxy: POST /api/sync-notion or /sync-airtable
activate Proxy
Proxy->>CRM: Execute API requests (dynamic schema discovery)
CRM-->>Proxy: Synced Page URL / Record ID
Proxy-->>UI: Success Response with Links
deactivate Proxy
UI-->>Admin: Synced status with Live Notion/Airtable Links
deactivate UI
- Frontend: Vanilla HTML5, JavaScript (ES6+), Custom Grayscale CSS3, Lucide Icons
- Backend API Proxy: Node.js, Express, Axios (CORS Bypass & Key Security)
- Deployment: Vercel Serverless Functions (
vercel.json) - LLM Endpoint: NVIDIA NIM API (Mistral Large 3)
Clurto is designed to be lightweight with zero database setup.
Open your terminal inside the clurto directory and run:
npm installRun the startup command:
npm startYour terminal will show:
Clurto Server is running locally at http://localhost:3000
Open http://localhost:3000 in your web browser!
Clurto is ready to deploy serverless on Vercel:
- Create a free account on Vercel.
- Push this folder to a GitHub repository under your profile.
- Import the repository into Vercel.
- Click Deploy. Vercel will build the project automatically using the provided
vercel.jsonrouting configuration.
All credentials are saved locally inside your browser, keeping your keys private.
- Go to the NVIDIA Build Portal.
- Sign up for a free developer account (includes free API credits).
- Select the Mistral Large 3 model from the list.
- Click Get API Key in the upper right.
- Copy the key and paste it under the Settings tab in Clurto.
Connect Clurto to Notion to generate rich brief documents inside your database:
- Go to Notion My Integrations and click Create new integration. Save your Secret Token (starts with
secret_...orntn_...). - Create an inline or full-page database in Notion with columns matching these types:
- Company (Title - the main default column)
- Client Name (Rich Text)
- Email (Email)
- Phone (Phone)
- Budget (Rich Text)
- Timeline (Rich Text)
- Project Type (Select - e.g. with options "General Consulting", "SaaS MVP", "Web Design")
- Status (Select or Status)
- Share the database page with your integration (Click
...>Add connections> search for your integration's name). - Retrieve the Database ID:
- Open your database block in full-page mode.
- Look at the URL in your browser bar. It will change to:
https://notion.so/workspace/DATABASE_ID?v=... - Copy the 32-character database ID (e.g.
8a72b216c52a4efba9d9c28666ad63d3).
- Save your Token and Database ID in Clurto's Settings tab.
To populate rows in your pipeline bases:
- Create a table in Airtable named Clients.
- Add columns with these exact names:
Company Name(Single line text)Client Name(Single line text)Email(Email)Phone(Phone number)Budget(Single line text)Timeline(Single line text)Project Type(Single line text)Pain Points(Long text)Requirements(Long text)Brief(Long text)Status(Single line text)
- Go to Airtable Developer Hub and click Create Token. Assign scopes:
data.records:readanddata.records:write. - Copy your Base ID from the Airtable Web API Documentation page (starts with
app...). - Copy your Table Name (e.g.
Clients). - Save your Token, Base ID, and Table Name in Clurto's Settings tab.
Clurto is community-driven. Check out our open-source templates and policy docs:
- Code of Conduct: Details community pledges and enforcement.
- Contributing Guide: Setup, branch conventions, and PR requirements.
- Security Policy: Instructions for reporting vulnerabilities safely.
- MIT License: Permissive open source software licensing.
Author: Lakshya Gupta (Techiral)
Affiliation: Independent Tech Researcher & Full-Stack Developer | LinkedIn | GitHub
Socials: Instagram | YouTube (@techiral)
Live Application: clurto.vercel.app
