Running a comparison site means managing hundreds of brand relationships simultaneously — some paying sponsors, some affiliate partners, some neither. Here's how we built a CRM-free relationship management system that scales to 200+ brands using nothing but a structured spreadsheet, a tagging system, and a 4-touch outreach cadence.
Why We Didn't Use a CRM
Every sales tool vendor will tell you to use their CRM. We tried HubSpot, Pipedrive, and Notion for 60 days each. The problem: all three are built for B2B sales pipelines where you're tracking inbound leads and demos. We have outbound-only relationships at low deal values ($500–$2,000) with contacts who are often individual brand managers without procurement authority.
The overhead of CRM maintenance — updating deal stages, logging calls, managing sequences — consumed more time than the relationships themselves. We replaced it with a system optimized for our actual workflow.
The Brand Relationship Database
A single Google Sheet with one row per brand contact. Columns:
| Column | Type | Purpose |
|---|---|---|
| Brand | Text | Company name |
| Contact Name | Text | Individual point of contact |
| Contact Email | Text | Outreach address |
| Title | Text | Their role (influences messaging) |
| Category | Text | Product category (tech, home, health...) |
| Tier | A/B/C | Partnership priority tier |
| Touch 1 Date | Date | First email sent |
| Touch 2 Date | Date | Follow-up sent |
| Touch 3 Date | Date | Social proof email |
| Touch 4 Date | Date | Final ask |
| Status | Enum | cold/contacted/replied/meeting/partner/declined/dormant |
| Monthly Searches | Number | "Brand vs competitor" volume from DataForSEO |
| Deal Value | Number | Agreed monthly rate |
| Notes | Text | Anything relevant |
| Next Action | Text | What happens next and when |
25 columns, one row per contact. No deal stages, no pipelines, no nested objects. A Google Sheet with conditional formatting on the Status column tells you everything you need in one view.
The Tier System
We segment all 200+ brands into three tiers before first contact. This determines email tone, deal structure, and follow-up aggressiveness.
Tier A — Premium targets (5–15 brands)
Criteria:
- 10,000+ monthly searches for "brand vs competitor" terms
- Product in a high-CPC category ($3+ CPC on comparison keywords)
- Active LinkedIn/marketing presence (indicates budget)
- We rank in the top 5 for their primary comparison keywords
Tier A brands get our most personalized outreach: custom competitive reports, direct founder-to-founder messaging, and our $2,000+/month deal framing from Touch 1.
Tier B — Mid-market (50–80 brands)
Criteria:
- 1,000–10,000 monthly comparison searches
- Moderate-CPC category ($1–3 CPC)
- Marketing team visible but no dedicated partnerships function
Tier B gets semi-personalized outreach with a templated data hook. We lead with the $1,000/month tier and negotiate.
Tier C — Long tail (100+ brands)
Criteria:
- Under 1,000 monthly comparison searches
- Lower-CPC categories
- Smaller brands without dedicated marketing budgets
Tier C gets our most efficient outreach: templated, personalized only at the brand/contact name level. We lead with the $500/month tier or the free affiliate program.
The 4-Touch Sequence
Each tier runs the same 4-touch sequence with different messaging. Timing is fixed:
- Touch 1: Day 0 (initial outreach)
- Touch 2: Day 5 (value-add follow-up)
- Touch 3: Day 13 (social proof)
- Touch 4: Day 20 (final ask + close)
After Touch 4, the brand moves to dormant status with a 90-day reactivation date. Dormant brands get one reactivation email at 90 days citing new data about their category.
Touch 1 — Data Hook
Subject: [Brand] gets [X] comparison searches/month — here's the data
The subject line is the hook. We pull exact "brand vs competitor" search volume from DataForSEO and put the number in the subject. Open rates are 40% higher than generic subject lines.
Body structure:
- One sentence establishing who we are
- The data: "[Brand] vs [competitor]" gets [X] searches/month on our platform
- Insight: what those searches tell us about buyer intent
- Offer: free competitive report, no commitment
- CTA: "Want me to send it over?"
Length: under 120 words. Every word earns its place.
Touch 2 — Free Value
If no response to Touch 1, we send the competitive report anyway. A 1-page PDF:
- Top 10 comparison searches for their category this month
- Which competitors they haven't covered yet
- Their estimated monthly comparison search volume vs top competitors
- One observation about their brand's position
We attach it without asking for anything. This is the highest-converting touch in our sequence — 35% of replies to Touch 2 say "I didn't realize people searched for this."
Touch 3 — Social Proof
Subject: How [similar brand in same category] uses our comparison data
A brief case study of an existing partner in their space:
- What they were paying
- What traffic/data they received
- One specific metric that improved
We name the partner only if they've given permission (most do — they want the credibility). Otherwise we describe: "A direct-to-consumer audio brand we work with..."
Touch 4 — Final Ask
Subject: Last note on [Brand] partnership
Three sentences:
- Acknowledge this is the last follow-up
- Specific offer with a time boundary: "Category exclusivity for [Brand]'s category is available through [date]"
- Low-friction CTA: "A quick yes or no works"
If no response after Touch 4: dormant. No follow-up, no guilt-trip emails. Move on.
Response Management
When a brand replies, they go to replied status and get a personal response within 4 hours. Speed matters — brands who don't hear back within a business day often lose interest.
Reply types and responses:
"Interested, tell me more": Send our one-page partnership deck (PDF, 5 slides) and propose a 20-minute call.
"We don't do partnerships": Thank them, ask if they have a referral to someone who does. 15% of these generate a referral to a different contact at the same company.
"What's the ROI?": Send the free competitive report immediately + partner case study. Frame it as data-driven decision-making.
"Send me your media kit": We don't have one (by design). We send a 1-page summary instead. Media kits signal you're a publisher; we're positioned as a data partner.
"Not the right person": Ask who handles brand partnerships. Success rate: 60% get a warm referral to the right contact.
Pipeline Metrics (Current)
After running this system for 6 weeks across 88 brand contacts:
| Stage | Count | Conversion to Next |
|---|---|---|
| Contacted | 88 | — |
| Replied | 23 | 26% |
| Meeting | 9 | 39% |
| Partner | 4 | 44% |
| Declined | 14 | — |
| Dormant | 51 | 90-day reactivation |
4 paying partners from 88 contacts is a 4.5% close rate. Industry benchmark for cold B2B outreach is 1–3%. We're beating it because the data hook creates genuine curiosity rather than generic sales pitches.
The 51 dormant brands represent our largest untapped opportunity. The 90-day reactivation with fresh category data has historically converted at 8% — better than the initial sequence.
What We'd Do Differently
Start with Tier A only. We spread across all tiers simultaneously in Month 1. The 10x revenue difference between a Tier A partner ($2,000+) and Tier C ($500) means 1 Tier A win is worth 4 Tier C wins. Tier C takes similar effort. We should have run Tier A exclusively for the first 30 days.
Get email infrastructure right first. Sending 88 emails from a new domain without proper warming caused deliverability issues. SPF, DKIM, DMARC, and a 2-week domain warm-up should have been in place before Touch 1 went out.
Hire an SDR before 100 brands. The spreadsheet system breaks at scale. When we hit 150+ active contacts, the manual tracking overhead becomes the bottleneck. At that point, a junior SDR managing the sheet is more efficient than founder time.
SmartReview and aversusb.net build structured product comparison tools. Learn about our brand partnership program at aversusb.net.
This article was originally published by DEV Community and written by Daniel Rozin.
Read original article on DEV Community