Skip to content

Size up competitors

Who am I up against, and what works for them? Name your site: your agent finds who shares your search results, the terms they rank for and buy, and the ads they keep running.

Size up competitors
You, to your agent

Who am I up against for rent tracking?

Show me what they rank for, what they pay for and the ads they keep running, then watch their pricing pages.

curl -X POST https://api.sb/leaseline.app/domains/benchmark \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hostname":"leaseline.app"}'

curl -X POST https://api.sb/leaseline.app/domains/benchmark \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hostname":"leaseline.app","competitors":["rentroll.example","ledgernest.example","keyplace.example"],"fields":["paid","ads","gap"]}'

curl -X POST https://api.sb/leaseline.app/monitors \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"outside","target":"rentroll.example/pricing","every":"1d"}'
import { $ } from 'startup-builder'

const field = await $.Domain.benchmark({ hostname: 'leaseline.app' })   // finds the sites that share your search results
const rivals = await $.Domain.benchmark({ hostname: 'leaseline.app', competitors: field.competitors, fields: ['paid', 'ads', 'gap'] })   // their terms, paid terms, ads and the gap
await $.Monitor.create({ kind: 'outside', target: 'rentroll.example/pricing', every: '1d' })   // a Page watch on each pricing page, daily
return rivals
npx startup-builder do Domain.benchmark --json '{"hostname":"leaseline.app"}'
npx startup-builder do Domain.benchmark --json '{"hostname":"leaseline.app","competitors":["rentroll.example","ledgernest.example","keyplace.example"],"fields":["paid","ads","gap"]}'
npx startup-builder do Monitor.create --json '{"kind":"outside","target":"rentroll.example/pricing","every":"1d"}'
{
  "name": "do",
  "arguments": {
    "code": "const field = await $.Domain.benchmark({ hostname: 'leaseline.app' })   // finds the sites that share your search results\nconst rivals = await $.Domain.benchmark({ hostname: 'leaseline.app', competitors: field.competitors, fields: ['paid', 'ads', 'gap'] })   // their terms, paid terms, ads and the gap\nawait $.Monitor.create({ kind: 'outside', target: 'rentroll.example/pricing', every: '1d' })   // a Page watch on each pricing page, daily\nreturn rivals"
  }
}
Response200application/json
{
  "$type": "Domain",
  "hostname": "leaseline.app",
  "observedAt": "2026-10-25",
  "readings": [
    {
      "hostname": "rentroll.example",
      "sharedTerms": 212,
      "searchVisits": 18400,
      "paidTerms": 64,
      "adBudget": "about $6,200 a month",
      "ads": {
        "google": 38,
        "facebook": 12,
  …
sample
3 competitors’ paid terms and ads: about $0.06
First run
Coming
Status
API
Runs by
nothing
Connect once

What you get

FieldWhat it says
CompetitorA site that shares your search results, or one you name, with how much of your ground it holds.
Search visitsEstimated monthly visits from search, and what the same clicks would cost as ads.
Ranked termsEach term they rank for, with position, searches a month and the cost of a click.
Paid termsThe terms they bid on and their estimated monthly ad budget. A blank reads unknown, never zero.
AdsEach ad they run on Google, Facebook, Instagram, LinkedIn and TikTok, with first and last seen. The longest-running ad is the one that works for them.
GapThe terms and links they hold and you do not, which feed Research demand and Earn first links.
PricingTheir plans and prices as their own pages state them, dated.
ChangesA change on their pricing or product page, with before and after, the day it happens.
CostThe most the read can cost, shown before it runs, and what it cost after.

How it runs

WhenWhat happensRuns byYour partTakes
Minute 1Find the sites that share your search results, or start from the rivals you name (Competitors)APIyour site, and any rival you already knowthe same minute
Minute 2Read each rival’s search visits, ranked terms and best pages (Their ranked terms)APInothingthe same minute
Minute 3Read the terms they pay for and every ad they run, with first and last seen (Their paid terms and ads)APInothingthe same minute
Minute 4Mark the terms and links they hold and you do not, and pass them to Research demand and Earn first links (Keyword gap)APInothingthe same minute
Day 1Read each rival’s pricing page, then watch it and their product page every day (Page watch)APInothinga change shows the day it happens
WeeklyRead their ads again, so a new ad or a stopped one shows the same week (Their paid terms and ads)APInothingthe same day

Jobs inside it

JobWhat it returnsPriceStatusRuns by
CompetitorsThe sites that share your search results, with how much of your ground each one holds$0.0005 a rowComingAPI
Traffic estimateEach rival’s monthly visits from search, and what the same clicks would cost as ads$0.001 a domainComingAPI
Their ranked termsThe terms each competitor ranks for, with position and traffic$0.005 a rowComingAPI
Keyword gapThe terms a rival ranks for and you do not, with their position and the searches behind each$0.005 a rowComingAPI
Their best pagesThe rival pages that earn the most links and search visits$0.0005 a rowComingAPI
Their paid terms and adsWhat they bid on and the ads they keep running, first and last seenabout $0.02 a competitorComingAPI
Their linksThe domains that link to each rival, ranked by authority, handed to Earn first links$0.000179 a rowComingAPI
Their pricing and pagesEach rival’s plans, prices and headline, read from their own site$0.001 a pageComingAPI
Page watchA change on a competitor’s pricing or product page, with before and after, the day it happensa fraction of a cent a checkComingAPI

Where and how it runs

Where it worksHow it runsConnect once
Google Search, Facebook, Instagram, LinkedIn, TikTokAPInothing

Your agent acts as you on every Venue you authorize. Where a Venue has no API, a browser agent signs in as you and does the steps.

Plays that use it

PlayStrategy that runs it
Paid searchPaid

Reference

Compiled, not written: edit the records it reads (catalog/size-up-competitors), then regenerate. Every step runs from a sentence or a line of code. In your words: the CRM words you know, and where each lives here.

Contents