Email enrichment. No lock-in. Open source.
git clone https://github.com/enw/leadpure
cd leadpure
bun install
bun run dev
# Open http://localhost:3000curl -X POST https://leadpure.e10d.dev/api/v1/keys \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com"}'Response:
{ "api_key": "lp_live_xxx", "tier": "free", "monthly_limit": 50 }curl -X POST https://leadpure.e10d.dev/api/v1/enrich \
-H 'x-api-key: lp_live_xxx' \
-H 'Content-Type: application/json' \
-d '{"email":"john@acme.com"}'Response includes: name, company, industry, location, social profiles, confidence score.
curl https://leadpure.e10d.dev/api/v1/jobs/job_1234567890_1Free tier: 100 requests/minute. Returns 429 on exceed.
docker compose up
# Open http://localhost:3000
# Migration runs automatically on first start- Push the repo to GitHub
- Import at https://vercel.com/new
- Set FRAMEWORK_PRESET: Next.js, Root Directory: apps/web
- Add DATABASE_URL env var (get free one at https://neon.tech)
- Deploy
The worker runs in-process with Next.js — no separate service needed.
leadpure/
├── apps/
│ └── web/ # Next.js app (API routes + frontend)
├── packages/
│ └── core/ # Shared types
├── apps/
│ └── worker/ # Scraping workers (in-process)
├── scripts/ # DB migration
├── docs/ # Architecture docs
├── specs/ # Phase specs
└── test/ # Tests
bun test # Unit tests
bun run test:smoke # API smoke tests (needs dev server)
bun run migrate # Run DB migrationMIT