Connected — schema not applied
Mosser Companies · Internal Tool
Competitor Intelligence
tracking the SF multifamily field, daily
Daily-refreshing pipeline that pulls listings from eight SF operators plus Craigslist, diffs against prior state, and writes a full audit history to Neon Postgres. Operators consume via Excel-on-SharePoint; ad-hoc questions go through a read-only AI Q&A agent.
01 / Pipeline Status
Health
database, schema, seed data
0/8
Operators Seeded
0
Fingerprint Rules
0/6
Tables Applied
—
Daily Cron 06:00 PT
Diagnostics
Database Connection
| Connected | true |
| Schema applied | false |
| Operators | 0 / 8 |
| Fingerprints | 0 |
02 / Coverage
Operator Roster
eight operators plus a separate Craigslist scan
In Scope
SF Multifamily Competitors
2B LivingAppFolio
Gaetani Real EstateAppFolio
Brick + TimberYardi RentCafe
Trinity SFYardi RentCafe
Parkmerced (Maximus)Yardi RentCafe
RentSFNow (Veritas)Custom WP · Playwright
Mosser LivingCustom WP · Playwright
Rentals Inc.Webflow · Playwright
Plus a separate Craigslist SF scan (apartments-for-rent, multifamily only), attributed to operators via the fingerprint dictionary in the fingerprints table.
03 / Setup
Onboarding Checklist
complete before first daily run
Required
Pre-flight
- Connect Neon database via Vercel → Storage. Confirm
DATABASE_URLpopulated. - Apply schema:
npm run db:apply - Create Cloudflare R2 bucket and add credentials to env vars.
- Add GitHub Actions secrets:
DATABASE_URL,R2_*,SLACK_WEBHOOK_URL. - Verify daily ETL runs at 06:00 PT via GitHub Actions cron.