Stop showing the same banner
to every visitor.
Most retailers serve generic banners — wasting 15-30% of potential conversions on mismatched creative. For a chain doing $1M/mo in banner-attributed revenue, that’s $150k–$300k left on the table every month.
Busyfolder’s Persona API infers visitor taste from location and context, returns the ideal banner plus an impression_id for conversion tracking. One call, under 60ms.
No ML team. No months of build. Your CMS, your content, your data.
No browser fingerprints. No cookies. Just public data and ZIP codes.
curl -X POST https://busyfolder.com/api/persona/select -H "Authorization: Bearer sk_..." -H "Content-Type: application/json" -d '{"context":{"zip":"94102"},"banners":["b1","b2","b3"]}'{ "banner_id":"b2", "external_id":"dato-123", "confidence":0.87, "impression_id":"imp_8a2f", "tags":["coffee_culture","affluent"] }Free Tools
Know any neighborhood instantly
Works with your existing stack
Bring your own CMS, your own content, your own data. No vendor lock-in, no replatforming required.
What works in Miami
Probably won’t work in Minneapolis.
Every city has a different rhythm. Different weather. Different crowds. Different needs. Your banners should match the moment.
Miami Beach, FL
Peak summer — 92°F
- •Beach season — tourists everywhere
- •Festival crowds filling the streets
- •Outdoor dining, late nights
- •High tourism traffic — higher willingness to spend
Best banner match
☀️ BEACH
Summer Collection
Minneapolis, MN
Deep winter — 18°F
- •Staying in — comfort food season
- •Hockey & indoor activities peak
- •Warm gear & home delivery demand
- •Budget-conscious, value-focused shoppers
Best banner match
❄️ WINTER
Comfort Collection
Same brand. Same day. Completely different visitors.
Busyfolder detects the difference and serves the right banner — in under 60ms.
Adoption
Stores powered across regional retail chains
15+ real-world signals monitored per location
Speed to value
First API call in under 90 seconds
Including reading the docs. Sandbox key issued instantly — no approval queue, no sales call.
Proven lift
+12% CTR · +9% conversion uplift
Pilot average across regional retailers. 3-week integration.
Quickstart — first API call in under 90 seconds
Sandbox key included below. No account, no credit card, no meeting.
Copy this command
Sandbox key is pre-filled. Paste in your terminal.
curl -X POST https://busyfolder.com/api/persona/select \
-H "Authorization: Bearer sk_sandbox_demo_key_abc123" \
-H "Content-Type: application/json" \
-d '{"context":{"zip":"94102"},"banners":["b1","b2","b3"]}'Get your selection
You’ll receive the best banner match with a confidence score.
{
"banner_id": "b2",
"external_id": "dato-123",
"confidence": 0.87,
"impression_id": "imp_8a2f",
"tags": ["coffee_culture", "affluent"]
}Try changing 94102 to your city’s ZIP and run it again — see how results change.
Render the winning banner
Use external_id to fetch the creative from your CMS and display it. That’s the integration.
Close the feedback loop
On CTA or purchase, POST /api/persona/convert with the impression_id. Each conversion improves future selections — no training data required.
Node SDK also available:npm install @busyfolder/persona
Measurable conversion lift — in 2 weeks, not 2 quarters
No ML team. No vendor lock-in. No long-term contract.
The cost of inaction
Generic banners in Miami look the same as Minneapolis. That’s not a personalization gap — it’s a revenue leak.
If you’re showing the same banners everywhere, you’re losing an estimated 15-30% of potential conversionsto mismatched creative.
The math: A 350-store chain averaging $2M/store/year in banner-attributed revenue is leaving $300k–$900k/yearon the table with generic banners. That’s not a theoretical loss — it’s budget already spent with nothing to show.
What pilots deliver
- +8-12%CTR lift on personalized banners
- +6-9%Conversion uplift across stores
- 2 weeksFrom integration to first results
Tell us your store count and banner volume. We’ll estimate your lift in 24 hours.
Why it works
“Generic banners cost you conversions. Personalized banners earn them back.”
Transparent scoring
15+ real-world signals scored against your banner tags via weighted affinity matrix. Not a black box. You can explain why a banner was chosen.
Your CMS, your content
We return an external_id. You fetch the creative from DatoCMS, Contentful, Sanity, Shopify, or your own system. Zero vendor lock-in.
Integration: one endpoint
POST /api/persona/select to choose. POST /api/persona/convert to track. A single developer can ship it in a sprint.
No-risk pilot
No long-term contract. No ML team required. If you’re not seeing lift in 30 days, you walk away. We provide SLA and DPA for all pilots.
How it works — one call, six signals, one banner
Every selection runs through the same pipeline. No manual rules. No black boxes.
1. POST a ZIP + banner list → we fetch 15+ signals
Real-world signals — weather, local happenings, demographics, and market conditions — all gathered from public data sources, never from browser fingerprints or cookies.
2. Signals → visitor context tags
Heat wave → hot_weather. Festival nearby → concert_attending. Affluent POI density → affluent. Coffee shop concentration → coffee_culture. Budget-friendly area → budget_shopper.
3. Banner tags vs. visitor tags → weighted affinity score
Each banner has tags. Each visitor has context tags. The affinity matrix scores every combination — not binary match/mismatch, but weighted affinity from 0 to 1. Transparent and explainable.
4. Best match serves. Challenger explores 15% of the time.
Highest-scoring banner serves. When the top 2 scores are within 0.15 of each other, we explore the challenger 15% of the time — discovering high-performers without wasting traffic. Decisions cached 15 minutes per visitor for stability.
5. POST impression_id → convert → feedback loop closes
Each /convert event feeds back into the scoring engine. Banners that convert get higher affinity weights. Banners that don’t get deprioritized. The system improves with every conversion — no manual training, no ML team.
Architecture — what happens in those 60ms
One request path, end to end. Your CMS, your content, your data.
POST /select
ZIP + banners
Signal Engine
Weather, events, POIs, …
Tag Extraction
Visitor context tags
Affinity Scoring
Weighted matrix match
Selection + ID
Banner + impression_id
Your CMS renders the banner. Your thank-you page sends the conversion event. We never store your content.
SDKs and integrations
Pick your path. All routes lead to the same API.
| Platform | Status | Quickstart |
|---|---|---|
| cURL | Available now | Copy from hero section — sandbox key included |
| Node.js SDK | Available now | npm install @busyfolder/persona |
| Quickstart guide | Copy Next.js example + GraphQL fragment | |
| App Store | Install from Shopify App Store — connects in 2 clicks | |
| Python SDK | Coming Q3 2026 | Join waitlist |
Security & compliance — built for retail
Enterprise-grade by default.
TLS
In transit
AES-256
At rest
SHA-256
API key hashing
SOC2
Assistance on request
Enterprise:SSO · DPA for all pilots · SOC2 assistance · Custom domain support
Case studies
Real numbers from real integrations.
Integration: 3 weeks via existing DatoCMS stack
Result: +12% CTR · +9% conversion lift
Signal matched: Weather + local events → seasonal banner rotation
“Finally, a personalization layer that works with our existing CMS. No replatforming, no data science hire.”
Before: Chain-wide seasonal promos, same for every store
Result: 18% reduction in wasted impressions
Signal matched: Local events + demographics → store-specific promotion targeting
What teams are saying
Real feedback from retailers who’ve integrated the Persona API.
“We integrated the Persona API into our DatoCMS workflow in under three weeks. The first month showed a +9% conversion lift across our 350 stores — and we didn't hire a single data scientist.”
VP of Digital
Regional Grocery Chain
“What sold us was the 2-week pilot. We ran it on 20 stores, saw +12% CTR on personalized banners, and rolled out to all 500 locations the next month. The ROI was immediate and measurable.”
Director of Marketing
Franchise Convenience Chain
“One developer integrated it in a single sprint. The feedback loop — impression_id → convert — meant we could A/B test banners and let the data decide. No ML team, no months of waiting.”
CTO
Midwest Retail Group
“We were showing the same summer promo in Phoenix and Portland. The API caught the difference — weather, local events, demographics — and served banners that actually matched each market. CTR went up 10% in the first week.”
E-Commerce Manager
Multi-State Apparel Chain
Stores already live. Beta capacity is filling.
We’re onboarding by cohort to maintain quality. Current wait time for new sandbox keys: ~2 days. 95% of stores that pilot stay on.
Your visitors’ privacy is built in, not bolted on.
Most personalization tools rely on browser fingerprints, third-party cookies, and cross-site tracking. Busyfolder takes a different approach — we infer taste from public data and location context. Nothing invasive. Nothing to install.
No browser fingerprinting
We never generate or read visitor fingerprints. No canvas, no WebGL, no nonsense.
No third-party cookies
No tracking cookies, no consent banners required. Just a ZIP code in, a banner ID out.
Public data only
Weather, demographics, nearby POIs, local events — all pulled from public sources. No PII ever leaves your servers.
Your visitors are different in every city.
Your banners should be too.
One API call, under 60ms, no ML team required. The fastest way to stop showing the same banner to every visitor.
Sandbox access: free, no card required. ~60s to first API call.
Already trusted by teams at hundreds of locations. Join them.
Questions? hi@busyfolder.com