Skip to Content
Case Study

BidReady RFPs: Productising the Tool We Built for Ourselves

Cross Coast Digital started as another digital agency. We then built an internal tool to qualify the RFPs worth bidding on, and our win rate moved from 1-3% on broad bidding to ~30% on tool-qualified bids. That validation made us productise the tool as BidReady RFPs: a curated RFP service for digital agencies. Built in 4 weeks, breakeven in 5, refined in a 5-day brand and design system sprint, now operating on roughly 10 hours a week.

RoleCo-Founder, Design / Product / GTM
Timeline0 to 1 to steady state
Year2026
Team2 Co-Founders (Tech, Customer Success)
Key Outcomes
4 weeks To launch 5 weeks To breakeven 2.8% → 4.3% Site conversion (post-redesign)
01

The Tool That Became the Product

BidReady started inside our own digital agency, Cross Coast. We were one of the customers we eventually built the product for: sourcing, qualifying, and responding to public sector and enterprise RFPs across LinkedIn, Google, public procurement portals, and a string of third-party aggregators. The tooling was uniformly poor. Sam.gov was one of the more visible examples, but the same pattern repeated everywhere we looked: tens of thousands of irrelevant listings, outdated opportunities, and no meaningful filtering for digital-focused agencies.

The cost wasn't in writing the proposals. It was in finding the proposals worth writing. Our team was burning 20 to 60 hours a week just building a shortlist of opportunities we had a real chance on.

"15 hours a week. That's how long it took to get from the platforms to a hit list of RFPs we actually had a shot on. Two working days gone before we'd written a word of a proposal."

To solve our own problem, we started building scraping and AI pipeline workflows to automate the qualification step. The result was significant. Across the RFPs we bid on, our internal win rate moved from a typical 1 to 3% (the rate when bidding broadly across all available opportunities) to roughly 30% on the curated subset the tool surfaced. The leverage was in qualification, not in bid-writing: same proposal team, same writing process, very different shortlist. The tool didn't make us better at winning, it stopped us from bidding on RFPs we had no chance of winning.

Cross Coast had effectively become the proof of concept for a product. We decided to productise the internal tool as BidReady RFPs: a curated RFP service for other digital agencies, built around the same qualification engine we had used on ourselves.

I co-founded BidReady with Alex (tech, backend) and Jason (customer success, RFP sourcing). My remit was full-stack product and go-to-market: UX of the sales and product flows, UI, brand, content, and the AI-driven outreach automation, with hands-on contribution to the tech build and the marketing strategy alongside.


02

Productising the Internal Tool

Turning a tool we ran for ourselves into something we could sell required a different shape. Three things had to change: the AI pipeline had to be white-labelled to serve different agency profiles, the scraping had to be reliable across our most relevant sources, and the whole thing had to live somewhere a small team could operate it.

White-Labelled Pipeline & Focused Scraping

The qualification engine we had used internally was tuned to Cross Coast's profile. Productising it meant abstracting the matching logic so it could serve subscribers with different ICPs, certifications, and budget thresholds. We focused scraping on LinkedIn and Google as the primary sources where the agency-relevant opportunities surfaced, rather than chasing breadth across every public procurement portal.

Competitive Analysis

Having been customers of most of the existing RFP services at Cross Coast, the competitive landscape was already mapped from firsthand experience. We formalised this into a proper analysis during the build: populating the comparison first with what we already knew from using the services, then layering in additional research to fill gaps. The exercise confirmed the positioning we'd been operating on. Existing tools were either generic procurement portals or vertical-specific (construction, defence, IT services), with nothing tuned to digital agencies. That was the wedge, and it shaped pricing, tier structure, and the founder-led tone of the product.

Two Databases on Odoo

Odoo was the right platform for a lean team: CMS for the marketing site, and a custom Odoo app we built ourselves to run as our prospect CRM. That gave us two cleanly separated databases: the RFP product database (what subscribers see) and the prospect CRM (internal sales). Keeping them apart meant we could iterate on outreach without touching the product, and rebuild the marketing site without touching the sales data.

Two Tiers, Deliberately Different Surfaces

The default product was a single-tier curated feed: digital-only, budget-qualified ($20k minimum), human-reviewed. The Enterprise tier came later, from a customer signal, and was built differently: a fully customised feed defined in a founder discovery call, with ongoing refinement as the agency evolved.

Enterprise was deliberately gated. It lives on a separate landing page surfaced only to existing customers as an upsell, or to specific prospects we identified as a fit. Keeping it off the public site framed it as a relationship-led product rather than a self-serve plan, which matched both the higher price point and the human-led delivery model.


03

Launch in 4 Weeks

Building a product with two non-designer co-founders on a lean budget shaped every decision. The principles weren't aspirational, they were practical constraints that turned out to produce better outcomes.

Trust Over Features

The credibility of the product depended entirely on the credibility of its founders. The design had to communicate that this was built by people who had actually been in the room, not a faceless scraping tool. Every page, every piece of copy, and every UI decision was filtered through this: does this feel like it was made by experienced practitioners, or does it feel like generic SaaS?

Lean and Shippable

The first version of the UI was built in Odoo's website editor, which meant working within a component-based system rather than designing from scratch. Shipping fast and validating the market mattered more than pixel-perfect custom UI at zero revenue. The constraint kept the product lean and forced prioritisation of what actually mattered to the user.

Product Interface

The core product, the RFP list, needed to let subscribers filter quickly and get to the detail without friction. I designed the filterable list view with a modal popup for full RFP detail, keeping the table scannable at a glance while making depth available on demand. The weekly email digest followed the same principle: lead with the custom shortlist, surface the most relevant opportunities first.

Subscription & Checkout Flows

The commercial flows handled three paths: standard subscription, Enterprise subscription (with discovery call scheduling), and 3-day free access via token. Each flow was designed to minimise drop-off, with the free access path in particular needing to feel frictionless because it was the primary conversion mechanism from outbound campaigns.

Sales Infrastructure

LinkedIn outreach has hard daily ceilings, which forced quality over volume from day one. I built an AI-assisted personalisation flow to make every message count: enrich each prospect with their LinkedIn and agency website data, have the AI match them to the most relevant RFP in our database, and then have the AI draft an outreach message in the prospect's own tone and language. I reviewed, edited, and sent. Each message led with a single specific RFP relevant to that agency rather than a generic pitch. We were showing the product working, not describing it.

SEO and organic posting ran in parallel from day one. AI wrote a fresh blog post every week, hosted on the BidReady site to drive search visibility against the terms our ICPs were actively using. Separately, an AI-scripted process picked 2 RFPs each week that we released for free: we posted redacted versions on LinkedIn and Reddit, replied to anyone who engaged, and DM'd them a link to the BidReady site where the full free RFP was listed alongside membership CTAs. The social posts did discovery, the blog drove search visibility, and the free RFP page did the conversion work.


04

First Customer & Feedback Loop

One week after launch we had our first paying customer, sourced through the LinkedIn flow. That single customer's feedback shaped everything that came next: tightening the proposition, sharpening the content, and identifying the marketing-page friction points that became the priority backlog for the next sprint.

It also surfaced the second product. During the onboarding conversation, the customer kept asking detailed questions: could we filter by certification type? By compliance history? By client sector? Drawing on our own experience qualifying RFPs, we recognised this wasn't a niche request, it was a second product. The Enterprise tier was built off the back of that conversation. That same discovery-call format then became the delivery mechanism for every Enterprise subscription that followed.


05

The 5-Day Sprint: Brand, Design System, CRO Redesign

With early customer feedback in hand, the next priority was the marketing surface. The launch site had got us to first revenue, but conversion friction was clearly the bottleneck for scaling outbound. Rather than patch incrementally, I ran a single end-to-end sprint to rebuild the brand, ship a design system, and redesign the marketing pages. End to end, 5 days.

Order of Operations

Brand first: I redesigned the logo, font stack, and colour palette using AI as a creative partner, treating the new identity as the upstream input that would drive every subsequent decision. The design system was then built off the new brand, not the other way round. With the system in place, I iterated through the marketing pages page by page: homepage, product page, blog, FAQs, and supporting pages, each redesigned against the new system.

AI-Assisted Iteration Loop

I used Kiro and Claude as the design and build partners through the sprint. Design decisions were made directly in conversation with the AI, then pushed to staging one page at a time. Each page was tested on staging, feedback fed back to Kiro, AI made the amends in staging, I reviewed and signed off, then the AI shipped the change to production where I retested. The loop from design decision to live page was tight enough that 5 days of marketing-surface work was actually achievable for a single person.

CRO Scope, Deliberately Narrow

The product UI was deliberately out of scope. It was simple enough not to be the conversion bottleneck, and it had already received positive feedback from the first customer and pipeline conversations. The sprint targeted only the parts of the funnel that were actually leaking: the marketing pages doing the conversion work, where the CRO leverage lived.


06

Results & Impact

4 weeksTo launch

From product definition to live product: UI, commercial flows, sales infrastructure, and AI-driven outreach all shipped within the window.

5 weeksTo breakeven

One paying customer covered the running cost of the business. The unit economics validated the pricing model and the acquisition strategy from the first sale.

+1.5ppSite conversion lift

Marketing site conversion lift after the 5-day redesign sprint. The uplift came from multiple parallel inputs: the redesign itself plus optimisations to the AI-tuned outreach flow matching prospects to RFPs in their own tone. The contribution split between the two isn't precisely separable, so the number is read as directional.

Steady State

The brief from day one was to build something operable on around 10 hours a week once it had been validated. We hit that. The product now runs at that cadence. I have stepped away from operations and Jason runs it solo. The build was deliberately optimised for a small footprint after launch, not for permanent active development. That outcome was the goal, not an accident.


07

What I Learned

🎯 Being the customer is the strongest research

Cross Coast was the proof of concept and the discovery research at the same time. Knowing the pain firsthand meant we didn't spend months validating what we already knew, and the product decisions were grounded in direct experience of what was missing.

🧭 The leverage was in qualification, not effort

The 1-3% to 30% number is misleading without context. The tool didn't make us better at writing proposals, it stopped us writing the wrong ones. Naming where the leverage actually lives changed how we positioned the product to subscribers.

Constraints produced better products

Building the launch site in Odoo's editor forced ruthless prioritisation. The product shipped faster and the UI was cleaner for it. The same constraint made the 4-week launch achievable with a 3-person team.

🔁 Acquisition is a design problem

The outreach system, the AI personalisation flow, the token-based free access path: these were as much design work as the product itself. Treating the sales surface with the same rigour as the product surface produced better conversion than either would have alone.

🤖 AI-assisted iteration loops let small teams ship at scale

The 5-day brand, design system, and redesign sprint was only feasible because Kiro and Claude could move from design decision to staging code with very little human handoff. The AI wasn't a content generator, it was a build partner. That changes what one person can ship in a week.

🤝 Discovery calls are research

A single onboarding conversation with our first customer revealed the need for a whole second product tier. That same discovery-call format then became the delivery mechanism for Enterprise: every Enterprise subscriber gets one to define their custom query.

📐 Build to run itself

The brief from day one was that this had to be operable on 10 hours a week once validated. That constraint shaped tier structure, tooling, and automation choices. The fact that I can now step away cleanly is a feature, not a milestone.

What I'd Do Differently

Earlier instrumentation. We launched with light analytics and had to retrofit conversion tracking to measure the redesign properly. Going in with measurement infrastructure ready would have made the post-launch optimisation cycle cleaner and the 2.8% to 4.3% number more defensible.

Earlier moderated usability sessions. We shipped the launch site on founder intuition and iterated from customer feedback. A few moderated sessions before launch would have surfaced the friction points we ended up addressing in the 5-day sprint sooner.