Bowmark AIdocs

Starlight Homes

Reads Starlight Homes' own metro/neighborhood catalogue — every metro division, one metro's neighborhoods with real live monthly-price and sq-ft ranges,…

Reads Starlight Homes' own metro/neighborhood catalogue — every metro division, one metro's neighborhoods with real live monthly-price and sq-ft ranges, and one neighborhood's ACTUAL move-in-ready homes right now with real street addresses, real sale prices, real plan names and real availability — the cross-neighborhood search the live site itself does not offer.

Domain: starlighthomes.com

Also known as: Starlight Homes, starlighthomes.com

Call it directly

bowmark.providers.starlighthomes.listMetros(): Promise<StarlighthomesMetroSummary[]>
bowmark.providers.starlighthomes.getMetro(path: string): Promise<StarlighthomesMetroDetail>
bowmark.providers.starlighthomes.getNeighborhood(path: string): Promise<StarlighthomesNeighborhoodDetail>

Functions

FunctionWhat it does
listMetrosLists every metro division Starlight Homes currently builds in (e.g. Dallas - Fort Worth, Phoenix). The entry point: every metro's path is what getMetro takes.
getMetroReads one metro's own page: every named neighborhood in it with a real live monthly-price range, square-footage range and map coordinates.
getNeighborhoodReads one neighborhood's own page: its ACTUAL move-in-ready homes right now, each with a real street address, real sale price, real plan name and real beds/baths/sqft/availability — never a…

Types

// Starlight Homes' OWN shapes — not a capability contract.

interface StarlighthomesRange { lowest: number | null; highest: number | null }

interface StarlighthomesMetroSummary {
  name: string;                // e.g. "Dallas - Fort Worth"
  path: string;                // the key getMetro takes
}

interface StarlighthomesNeighborhoodSummary {
  name: string;
  path: string;                // the key getNeighborhood takes
  monthlyPriceRange: StarlighthomesRange;  // advertised MONTHLY payment, not sale price
  sqftRange: StarlighthomesRange;
  coordinates: { lat: number; lng: number } | null;
}

interface StarlighthomesMetroDetail {
  path: string;
  neighborhoods: StarlighthomesNeighborhoodSummary[];
}

interface StarlighthomesAvailableHome {
  address: string;             // real street address, e.g. "818 Independence Trail"
  price: number;               // current sale price
  listPrice: number | null;    // struck-through prior/list price, when discounted
  planName: string;
  planPath: string;
  beds: number;
  baths: number;
  sqft: number;
  availability: string;        // e.g. "Ready Now"
}

interface StarlighthomesNeighborhoodDetail {
  path: string;
  availableHomes: StarlighthomesAvailableHome[];
}

Examples

// The query ANGLE found ChatGPT could only answer by reconstructing pages
// one at a time: real move-in-ready homes across a metro's neighborhoods,
// under a price ceiling, right now.
const metro = await bowmark.providers.starlighthomes.getMetro("dallas");
const underBudget = metro.neighborhoods.filter((n) => (n.monthlyPriceRange.lowest ?? Infinity) <= 1800);
return underBudget.map((n) => ({ neighborhood: n.name, path: n.path }));
// Drill into one neighborhood's ACTUAL homes — real address, real price,
// real availability — where ChatGPT alone had to open the page itself.
const neighborhood = await bowmark.providers.starlighthomes.getNeighborhood("dallas/liberty-ranch");
return neighborhood.availableHomes.filter((h) => h.price < 300_000 && h.beds >= 3);