GET api.eliasstravik.com /projects/stockpile 200 OK

stockpile

project · 200 OK · application/json

Enrichment cache for Clay.

7★ Stars
0⑂ Forks
TSTypeScript
View on GitHub ↗
README.md

Enrich each lead once without buying the same data again

Stockpile lets you reuse enrichment results across Clay tables when the same people and companies keep appearing in new lists, by checking a self-hosted cache before each provider call and saving new results for the next exact match.

✓ 100% free and open source ✓ One‑click Railway deploy ✓ Works with HTTP enrichment providers

⭐ Used by top GTM Engineers

Keep every enrichment result useful after the first lookup

A lead enriched in one table arrives in the next campaign with the same work ready to reuse. New provider calls are reserved for data the team has not already bought.

Choose between paying again, maintaining a shared sheet, building a cache — or deploying the one made for Clay

Stockpile No cache Shared spreadsheet Custom cache
Free software
No code to deploy
No new service to run
Works across Clay tables
Checks before provider calls
Provider-specific cache slots
Normalizes common input formats
Automatic result expiry
One-click Railway deploy

Check Stockpile before the provider call. Clay keeps the interface, Stockpile remembers exact past results, and new credits are spent only when the cache misses.

Check Stockpile from Clay. Reuse the result before another provider call runs.

📈 Keep each enrichment useful across tables

An Apollo person match or Hunter email lookup stored in one workflow can serve the next matching lead in another. The result stays separated by provider, endpoint, and exact normalized inputs.

⚡ Let Stockpile recognize repeat lookups

Stockpile normalizes harmless changes in email case, phone formatting, and URL shape before matching. It does not use fuzzy identity guesses.

💬 Call the provider only when Stockpile misses

Place the cache check before the enrichment column and run the provider when no result is found. Store each successful result so the next matching row can reuse it.

Cache your first enrichment in ten minutes

1️⃣

Deploy Stockpile
Use the Railway template to create the service, persistent volume, public URL, and API key.

2️⃣

Add the cache check
Place a Stockpile lookup before the provider column using the lead inputs that define the enrichment.

3️⃣

Reuse the result
Run the provider on a miss, store the successful result, and let future matching rows use the cache.

Choose how to get started

Self-serve

For GTM engineers who manage Clay enrichment

Free

✓ Lookup, store, invalidate, and stats endpoints
✓ Exact provider, endpoint, and input keys
✓ Cross-provider and endpoint lookups
✓ Optional expiry and automatic cleanup
✓ Bearer token protection
✓ Railway deployment and SQLite persistence

Done-with-you

Hands-on setup and ongoing support for your GTM team

Let's talk

✓ Everything in self-serve
✓ Full setup and Railway deployment
✓ Clay cache-check and store-column configuration
✓ Provider naming and cache-key design
✓ Team rollout, training, and best practices
✓ Ongoing maintenance and upgrades
✓ Dedicated Slack channel support
Deploy Stockpile Book a demo

Get your questions answered

Do I need to know how to code?

No code is needed to deploy the Railway template. You still need to configure the lookup, provider, and store columns in Clay's HTTP API builder.

Does Stockpile call enrichment providers for me?

No. Clay keeps calling Apollo, Hunter, Findymail, Icypeas, or another provider. Stockpile checks whether that exact enrichment is already cached and stores successful results for later reuse.

Can the wrong lead receive a cached result?

Stockpile does not fuzzy match identities. A cache slot is defined by the provider, endpoint, and deterministic hash of the normalized inputs you send.

Where is the cached data stored?

In one SQLite file on the host running Stockpile. The Railway template mounts a persistent volume at /data so the cache survives service restarts.

Do cached results expire?

Only when you set a time to live. Omit it or use zero to keep the result until you invalidate it.

Does Stockpile work outside Clay?

Yes. Any workflow that can make authenticated HTTP requests can use the lookup and store endpoints.

What does it cost?

The software is free and MIT licensed. You pay for the infrastructure where you deploy it and for any enrichment provider calls that still run on cache misses.

Cache your first enrichment in ten minutes

A repeat lead can reuse a past enrichment after one deployment and three Clay columns. Stockpile handles exact cache matching. You connect the lookup, provider, and store steps.

✓ 100% free and open source ✓ One‑click Railway deploy ✓ Works with HTTP enrichment providers

⭐ Used by top GTM Engineers