$ ctc whois <file.csv> [out.csv]
Enrich signups with person + company
1 credit per row found
You build the outbound machine. ContactCTL gives you contact data as a primitive: positional commands, stable JSON, deterministic exit codes, and batch over stdin/stdout — so enrichment is a pipeline stage, not a browser tab.
GTM engineering is glue work, and the glue keeps tearing at the same place: data vendors that only exist as dashboards. Each one adds a login, a CSV mapping wizard, an export queue, and an API that paginates differently from the last one.
ContactCTL is the opposite shape. It is a single binary with six work verbs — verify, whois, find, phone, search, lookalike — plus a few utility commands. Exit codes are meaningful (0 found, 2 not found, 4 budget exceeded), output is deterministic JSON with --json, and batch is just files in, files out, row order preserved. Everything an agent or a cron job needs, nothing it has to be taught.
Spend is engineering-grade too: --estimate computes cost locally with zero spend, --max-cost is a hard cap enforced mid-run, and a clean miss on find, phone, or whois is free.
Exit codes drive control flow, JSON drives data flow. This is the whole integration surface.
#!/usr/bin/env bash
set -euo pipefail
# 1. enrich new signups exported by the warehouse job
ctc whois signups.csv enriched.csv --max-cost 50
# 2. branch on a single lookup's exit code
if ctc find "$FULL_NAME" "$DOMAIN" --json > result.json; then
jq -r '.contacts[0].value' result.json
else
case $? in
2) echo "no email found — route to manual" ;;
4) echo "budget cap hit — stop the run" ;;
esac
fiNo retry logic needed: on rate limits the CLI backs off and retries automatically using the server’s retry_after value, so the script sees latency, not flakes.
Every command reports its credit cost in the output. Preview any spend with --estimate at zero cost.
$ ctc whois <file.csv> [out.csv]
Enrich signups with person + company
1 credit per row found
$ ctc find <name> <domain> --json
Scriptable single lookup
1 credit per result found
$ ctc verify <email> --json
Send-time guard clause
0.02 credits per verification
$ ctc usage --json
Balance + ledger for monitoring
free
Full datasheet: credit costs in the docs · plan pricing on /pricing.