What it does
MLS Listing Sync Analyzer is a read-only analyzer for real-estate listings. It scores each listing's completeness (0–100), detects optimization issues (too few photos, short descriptions, missing required fields, price deviation vs comparables), and returns prioritized improvement recommendations. It never creates, updates, or deletes a listing. Every score, count, and percentage is deterministic and code-computed; the LLM is used only to write the human-readable narrative, with a deterministic template fallback when no model is available — so nothing numeric is ever fabricated. This published build runs on your own caller-provided listings or built-in mock fixtures, so you can analyze a portfolio with zero setup. (The repo also ships a connector-ready read-only MLS/portal client, but the hosted listing requires you to pass listings in as data; a live MLS pull is intended for self-hosting against your own portal API.) Guardrails: read-only (no writes), prompt-injection defang on listing free text, PII masking of seller/customer contact info, and no fabrication. Tools: - run_full — end-to-end: read listings (provided/mock), score completeness, detect optimizations, synthesize a narrative (LLM with template fallback), return the full AgentResult JSON. - fetch_listings — read-only fetch of the raw listing batch (mock/provided). No writes. - score_completeness — deterministic per-listing completeness score (0–100) + missing fields (no LLM). - detect_optimizations — deterministic issues + prioritized recommendations + price deviation (no LLM). - list_capabilities — static capabilities: tools, required fields, default thresholds. - plan_inputs — interview helper returning questions, JSON schema, and a ready-to-edit example for a tool. Provide listings as [{ listingId, price?, comparablePrice?, photoCount?, description?, fields? }]; optionally override thresholds. Array/object arguments may be passed as JSON or a JSON string. Missing required inputs return a structured needs_input payload (questions + schema + example) instead of erroring, and upgrade to a native elicitation form on clients that support it.
Example prompts
- Run run_full on the mock listings and summarize which need attention, with prioritized recommendations.
- Score completeness for these listings and list the missing required fields for any below 80.
- Run detect_optimizations on this batch and flag any listing priced more than 15% above comparables.
- Audit my listings: too few photos, short descriptions, or price deviations — give me a prioritized fix list.
- Use plan_inputs for score_completeness and show me the questions, schema, and a ready-to-edit example.
Tools (6)
Tools the agent exposes — your AI client calls them automatically when it needs them.
- run_full — Run end-to-end: read listings (read-only), score completeness, detect optimizations, synthesize a narrative (LLM with template fallback), return the full AgentResult JSON.
- fetch_listings — Read-only fetch of listings (mock fixtures / provided data). No writes. Returns the raw listing batch.
- score_completeness — Deterministic completeness scoring for given listings: per-listing 0-100 score and missing required fields. No LLM.
- detect_optimizations — Deterministic optimization detection for given listings: issues + prioritized recommendations + price deviation. No LLM.
- list_capabilities — List static capabilities: tools, required fields, default thresholds, and credential slots.
- plan_inputs — Plan/brainstorm the inputs for a tool: returns the questions, schema and a ready-to-edit example.
What you'll need to connect
This agent will ask you for the following. You enter them when you connect — they're encrypted and never shared with the creator.
- Anthropic API Key · optionalOptional. Enables the LLM-written narrative via Anthropic. Without a key (and no host sampling) the agent falls back to a deterministic template. Every score and number is always code-computed.Create a key on the Anthropic Console API keys page (console.anthropic.com → API keys).Paste the value as a single line.Only sent to: api.anthropic.com
- OpenAI API Key · optionalOptional. Enables the LLM-written narrative via OpenAI instead of Anthropic.Create a secret key on the OpenAI API keys page (platform.openai.com → API keys).Paste the value as a single line.Only sent to: api.openai.com
How you're protected
FindAgent runs these safety checks on every agent automatically. They're always on and can't be turned off.
- Prompt-injection scanning
Every request is checked for known prompt-injection and jailbreak attempts before the agent runs. This is always on.
- Secret-leak scanning
Every response is scanned for leaked API keys, tokens, and other secrets before it reaches you. This is always on.