Persona
ContactCTL for agencies
Client lists arrive as CSVs in every imaginable shape. ContactCTL turns each one into a clean, verified deliverable — with a cost estimate you can quote before you run, and a hard cap so a messy file can never blow the budget.
01 — The problem
Every client is a new data stack
Agencies do not have one enrichment workflow; they have one per client. Different CRMs, different column names, different volumes, different deadlines. Seat-priced enrichment tools punish exactly that: every client becomes another workspace, another license, another export queue.
ContactCTL treats clients as folders. Each engagement is a CSV in, a command, and a CSV out — scriptable per client, schedulable per retainer, and billable per credit. --estimate prices a file before you commit, which means you can quote enrichment as a line item with real numbers.
Batch runs are chunked and resumable: if a 5,000-row job outlives your terminal, the run-id reattaches to it without re-billing a single row.
02 — The workflow
How it runs
A per-client batch flow
Estimate first, quote the client, run with a cap, verify the output. Four commands per engagement.
On the Scale plan (€250/mo, 5,000 credits) top-ups cost €0.050/credit, and unused top-up credits never expire while you stay subscribed — quiet months do not waste spend.
# 1. price the file (no spend, computed locally) ctc find clients/acme/leads.csv out.csv --estimate # 2. run with a hard cap once the client approves ctc find clients/acme/leads.csv clients/acme/enriched.csv --max-cost 300 # 3. verify everything before handoff ctc verify clients/acme/enriched.csv clients/acme/deliverable.csv # 4. attach the spend report ctc usage --json > clients/acme/usage.json
03 — Commands and credits
What this workflow uses
Every command reports its credit cost in the output. Preview any spend with --estimate at zero cost.
| Command | Purpose | Credits |
|---|---|---|
| ctc find <in.csv> <out.csv> --estimate | Quote a file before running | free |
| ctc find <in.csv> <out.csv> --max-cost N | Capped batch enrichment | 1 credit per row found |
| ctc verify <in.csv> <out.csv> | Deliverability pass before handoff | 0.02 credits per row |
| ctc find --run-id <id> | Reattach to a long batch run | no re-billing |
Full datasheet: credit costs in the docs · plan pricing on /pricing
Next