Dashboard del CRM inmobiliario con pipeline, embudo y ranking de agentes

NelkoCRM Real Estate es un prototipo de CRM inmobiliario que combina la gestión comercial clásica (doble pipeline, cartera, leads, agenda, contactos) con una capa de datos públicos españoles e inteligencia de valoración. Busca resolver dos problemas concretos del sector: enriquecer fichas de inmueble con fuentes oficiales gratuitas (Catastro, CartoCiudad/IGN, INE, BCE) y detectar oportunidades de captación de propietarios sin recurrir a scraping agresivo de portales.

El sistema tiene dos partes. Una aplicación de escritorio en un único index.html (Tailwind por CDN + Leaflet, sin framework ni paso de build) que ejecuta toda la lógica de negocio en el navegador: un motor de valoración automática (AVM) con Deal Score, simulador de hipoteca conectado en vivo al Euríbor del BCE, mapas con ortofoto del IGN y parcela del Catastro, perfil socioeconómico de zona, cualificación de comprador en vivo y vistas de pipeline, matching y prospección. Y un mini backend en Node.js (carpeta radar/) que implementa el "Radar de mercado": ejecuta fuentes de prospección, persiste un snapshot por ejecución, detecta anuncios nuevos y variaciones de precio, deduplica contra la cartera y puntúa cada oportunidad de captación con razones explicables.

Conviene leerlo como lo que es: un prototipo. Buena parte de los datos del front-end son datasets demo deterministas que imitan la respuesta de las APIs reales (perfil de zona INE, datos catastrales, comparables, matching), y solo hay llamadas en vivo donde el navegador lo permite sin CORS ni credenciales: el Euríbor del BCE (ECB Data Portal), la ortofoto del IGN y la parcela del Catastro vía capas WMS, y los servicios cercanos vía Overpass (OpenStreetMap), siempre con fallback local. La conexión real a Idealista requiere acuerdo partner y credenciales; el backend incluye los controles de cumplimiento (tope duro de 5 peticiones por minuto, solo dominios Idealista, sin bypass de CAPTCHA ni login) pero la fuente partner está desactivada por defecto y no ejecuta nada sin autorización explícita.

  1. Enriquecimiento de ficha por dirección o coordenadas (demo) En la vista Catastro el usuario introduce una dirección o un par lat/lon. La interfaz representa paso a paso la cadena oficial que se usaría en producción (CartoCiudad del IGN para geocodificar, Catastro Consulta_RCCOOR para pasar de lat/lon a referencia catastral y Consulta_DNPRC para obtener superficie, uso y año), pero en el prototipo los valores los genera un dataset demo determinista, sin llamar a esos servicios. El resultado es una ficha catastral normalizada lista para crear el inmueble o pasar al Tasador.
  2. Valoración automática (AVM) y Deal Score El motor de valoración calcula el valor a partir de euros/m2 por zona y ajustes hedónicos (estado, antigüedad, exterior, terraza, garaje, piscina, ascensor, vistas), genera un rango mínimo-máximo, rentabilidad bruta y neta del alquiler, payback y comparables (CMA) deterministas. El Deal Score (0-100) pondera valor frente a precio, rentabilidad, liquidez de zona, estado y margen de negociación, y emite un veredicto. Se presenta como orientativo y no sustituye a una tasación homologada ECO.
  3. Simulador de financiación con Euríbor en vivo Al arrancar, la aplicación consulta el ECB Data Portal (series SDMX del Euríbor 1A/3M/6M y el tipo medio hipotecario MIR de España) mediante fetch directo. El simulador del Tasador calcula cuota, intereses, entrada, impuestos por comunidad autónoma (ITP o IVA+AJD), notaría, registro, cash flow y cash-on-cash. Si la llamada al BCE falla por red o CORS, usa un valor de referencia cacheado en el propio código.
  4. Mapa con capas cartográficas oficiales Leaflet monta capas WMS reales de la ortofoto PNOA del IGN y de la parcela catastral (CP.CadastralParcel), con un overlay opcional y desactivado por defecto de riesgo de inundación SNCZI (MITECO) y círculos de isócronas aproximadas a pie de 5/10/15 minutos. La vista de servicios cercanos consulta Overpass (OSM) con varios mirrors y, si todos fallan, recurre a un recuento de referencia por zona.
  5. Cualificación de comprador en vivo La vista Onboarding recoge presupuesto, ahorro, ingresos, deuda, estado de financiación, plazo y urgencia. Calcula la capacidad real de compra (esfuerzo del 35% y financiación al 80%), el esfuerzo financiero, un score 0-100 con tier A/B/C/D, banderas rojas (presupuesto por encima de capacidad, esfuerzo superior al 35-40%, sin financiación) y propone acción comercial, recursos a asignar y tiempo estimado de cierre, además de cruzar la petición con la cartera. La cuota se calcula con un tipo fijo de referencia (no con el Euríbor en vivo, que se usa en el Tasador).
  6. Radar de mercado en el backend Node El motor del Radar ejecuta una fuente (idealista-demo local, idealista-partner o idealista-apify), guarda un snapshot por ejecución en radar-db.json, compara contra el estado anterior para emitir eventos (anuncio nuevo, cambio, bajada/subida de precio, duplicado), mantiene historial de precios por anuncio, deduplica contra la cartera y otros anuncios por similitud textual y numérica, y calcula un score de captación con razones. Expone una API HTTP, una CLI y un dashboard web propio servido por el mismo proceso Node.

Doble pipeline drag-and-drop

Tableros separados de captación y demanda con etapas, SLA, valor de cartera y valor ponderado por probabilidad. Las tarjetas se arrastran entre columnas con HTML5 drag-and-drop y la etapa se actualiza al soltar.

Vista de matching oferta-demanda (demo)

Tab dedicado que cruza inmuebles en cartera con perfiles de demanda, muestra score de encaje, razones del match, posibles avisos y la acción comercial siguiente. En el prototipo los emparejamientos se sirven desde un conjunto de datos precomputado; el cruce dinámico real solo se ejecuta en la cualificación de comprador (Onboarding), que filtra la cartera en vivo.

Tasador con AVM, Deal Score y financiación

Valoración en vivo con rango, rentabilidad, comparables, posicionamiento precio/valor y simulador de hipoteca con costes de compra por comunidad autónoma y Euríbor real del BCE. Recalcula al cambiar cualquier input.

Comparador de inmuebles e informe imprimible

Compara inmuebles lado a lado (AVM, rentabilidad, financiación, Deal Score) resaltando el mejor de cada fila, y genera un informe de valoración imprimible que embebe la ortofoto aérea estática del IGN obtenida por GetMap (WMS).

Perfil socioeconómico de zona (INE)

Bloque con renta por hogar y por persona, índice de Gini, riesgo de pobreza, población extranjera, edad media, paro, densidad, tipología y antigüedad del parque de vivienda, régimen de tenencia y estudios. Alimenta la ficha y aporta contexto al AVM. En el prototipo es un dataset demo por zona con la estructura que devolvería el INE por sección censal.

Mercado por zona y riesgos

Vista de precio medio de venta y alquiler por zona, rentabilidad bruta y liquidez, más un bloque de riesgos por inmueble: inundación (SNCZI/MITECO) y servidumbre de costas (Dominio Público Marítimo-Terrestre), presentados como referencia a verificar con la fuente oficial.

Catastro: cadena de enriquecimiento de ficha

Vista que simula la geocodificación más la consulta catastral encadenada para autocompletar referencia catastral, superficie construida, uso, año y coordenadas, con paso directo a valoración o alta en cartera. Indica con claridad que titularidad y valor catastral requieren certificado y no son automatizables.

Prospección y captación de propietarios

Alertas guardadas por zona, tipología, precio, frecuencia y responsable; bandeja de anuncios detectados con score de captación, detección de particular frente a agencia, deduplicado contra cartera e importación de candidatos aptos al pipeline, más una pestaña de "scraping seguro" con arquitectura recomendada.

Radar backend con snapshots y eventos

Servicio Node que persiste cada ejecución en JSON, detecta anuncios nuevos y variaciones de precio, mantiene historial, deduplica y puntúa, accesible por API HTTP, CLI y un dashboard web propio.

Fuente partner Idealista con controles de cumplimiento

Adaptador que solo acepta URLs https de dominios idealista.com/.pt/.it, ejecuta las peticiones en serie, impone un tope duro de 5 peticiones por minuto (recorta cualquier valor superior), procesa solo las primeras N fichas de una búsqueda y permite un modo navegador con Playwright + stealth y perfil persistente, sin rotación de proxies, bypass de CAPTCHA ni login automático. Está desactivada por defecto.

Sandbox de extracción HTML y bandeja de leads

Extractor de prueba que normaliza HTML pegado en campos estructurados sin hacer peticiones externas, más una bandeja multicanal de leads (Idealista, WhatsApp, Web, Llamada, Fotocasa) con score de intención.

  • HTML + Tailwind CSS (CDN): Toda la interfaz de la suite vive en un único index.html sin paso de build ni framework; Tailwind por CDN aporta el sistema visual y la maquetación responsive.
  • JavaScript vanilla: Implementa todo el motor del front: router de vistas, AVM, Deal Score, simulador de hipoteca, cualificación de comprador, drag-and-drop del pipeline y render por plantillas de cadena (template literals).
  • Leaflet: Renderiza los mapas de cada ficha e informe con marcador, círculos de isócronas a pie y capas WMS superpuestas sobre la cartografía base de OpenStreetMap.
  • IGN PNOA (WMS): Aporta la ortofoto aérea real del inmueble en el mapa y como imagen estática (GetMap) embebida en el informe de valoración imprimible.
  • Dirección General del Catastro (WMS): Pinta la geometría de la parcela (CP.CadastralParcel) sobre el mapa. La cadena de servicios OVC (Consulta_RCCOOR, Consulta_DNPRC) se representa en la interfaz pero en el prototipo se resuelve con datos demo, no con llamadas reales.
  • CartoCiudad (IGN): Geocodificador de direcciones a coordenadas y, en producción, fuente del código de sección censal del INE para el perfil de zona. En el prototipo aparece como paso ilustrado de la cadena de enriquecimiento.
  • ECB Data Portal (BCE): Se consulta en vivo al cargar la aplicación (series SDMX) para traer el Euríbor 1A/3M/6M y el tipo medio hipotecario español, alimentando el simulador del Tasador con tipos reales, con fallback de referencia si falla.
  • INE (datos socioeconómicos): Define el perfil de barrio (renta, Gini, paro, tenencia, tipología y antigüedad del parque) que enriquece la ficha. En el prototipo va como dataset demo por zona con la estructura que devolvería el INE.
  • Overpass API (OpenStreetMap): Cuenta y localiza servicios cercanos (educación, salud, comercio, transporte, ocio, playa) en un radio de 1 km para el índice de servicios del inmueble, con varios mirrors y fallback local por zona.
  • SNCZI / MITECO (WMS): Capa WMS opcional de zonas de riesgo de inundación que se puede activar sobre el mapa de la ficha; el indicador textual de riesgo por zona es de referencia.
  • Node.js (http nativo, sin dependencias web): Soporta el backend del Radar: servidor HTTP, CLI, motor de ejecución, persistencia en JSON y dashboard, todo con módulos del core de Node.
  • Playwright + playwright-extra + puppeteer-extra-plugin-stealth: Modo navegador del crawler partner de Idealista: renderiza páginas con JavaScript y mantiene cookies de sesión autorizada en un perfil persistente, limitado al plugin stealth y solo bajo permiso partner. Son las únicas dependencias npm del proyecto.
  • Apify (FlowExtractAPI/idealista-scraper-api): Fuente externa opcional y desactivada por defecto que delega la extracción de URLs concretas de Idealista a un actor de terceros; requiere token de Apify y base legal de uso.
  • Una agencia capta propietarios particulares: define alertas por zona y precio, el Radar detecta anuncios nuevos y bajadas de precio, descarta agencias y duplicados de cartera, y manda los aptos al pipeline de captación con su score y razones.
  • Un agente prepara una valoración en la visita: introduce dirección o coordenadas, la ficha autocompleta superficie, uso y año, calcula el AVM y el Deal Score y entrega un informe imprimible con ortofoto aérea del IGN.
  • Asesoramiento a un comprador: el simulador de hipoteca del Tasador usa el Euríbor real del BCE para mostrar cuota, entrada, impuestos por comunidad autónoma y ahorro total necesario, con cash flow y rentabilidad para perfil inversor.
  • Cualificación de leads entrantes: el módulo de Onboarding clasifica al comprador en tier A/B/C/D según su capacidad real y urgencia, levanta banderas rojas y decide cuántos recursos comerciales asignar y qué acción tomar, cruzando con la cartera en vivo.
  • Análisis de inversión: comparativa lado a lado de inmuebles por valor, rentabilidad neta, financiación y Deal Score para decidir compra, con el perfil socioeconómico de zona como contexto.
  • Equipo comercial que importa anuncios sin integración automática: pega HTML autorizado en el sandbox y obtiene los campos normalizados (precio, m2, zona, tipología, vendedor) listos para revisar antes de importar.
  • Integración con fuentes de datos públicas españolas (IGN, Catastro, BCE, OSM, MITECO) priorizando capas gratuitas, sin API key y con fallback ante fallos de red o CORS, donde el navegador lo permite.
  • Diseño de un motor de scoring explicable (Deal Score, score de captación, tier de comprador) con factores ponderados y razones legibles para el usuario.
  • Arquitectura backend limpia para prospección: separación fuente/adaptador/normalizador/motor/API, snapshots con diff, historial de precios y deduplicado por similitud textual y numérica.
  • Enfoque de cumplimiento legal real (RGPD y criterios AEPD) integrado en el producto: tope duro de peticiones, solo dominios autorizados, redacción de datos de contacto, sin bypass de CAPTCHA ni login.
  • Capacidad de construir una suite completa y navegable con stack mínimo (un index.html y Node sin dependencias web), separando con honestidad lo que llama en vivo de lo que es dataset demo.
  • Razonamiento financiero e inmobiliario aplicado: AVM con ajustes hedónicos, costes de compra por comunidad autónoma, rentabilidad neta y capacidad real de financiación.

De prototipo a producción

Si algo de esto encaja con un problema real de tu negocio, lo convertimos en una solución mantenible y con control total.

Hablemos de tu proyecto

Diagnóstico gratuito — Detecta dónde se pierden horas y qué automatización tiene más retorno

Pedir diagnóstico