Gemelo Comercial — Arquitectura consolidada¶
📄 gemelo_comercial.md — Versión consolidada
Objetivo del sistema
El gemelo comercial tiene como objetivo:
identificar → evaluar → priorizar → enriquecer → activar prospectos industriales
Opera sobre dos dominios:
Descubrimiento externo (empresas no presentes en ALEPH) Ejecución CRM (sincronización estructurada en ALEPH) 2. Arquitectura general Discovery externo → ProspectInput → evaluate_prospect (motor central) → discovered_actionable.jsonl → contact_enrichment_linkedin → discovered_actionable_enriched.jsonl → CRM (ALEPH)
Separación clave:
Evaluación técnica/comercial → prospect_intelligence Enriquecimiento de contacto → contact_enrichment_linkedin Persistencia CRM → flujo ALEPH 3. Pipeline de discovery
Flujo:
discover_pages → parse → DiscoveredCompany → build_prospect_input → evaluate_prospect → filter_actionable
Salida principal:
data/discovery/discovered_actionable.jsonl
Estructura real:
{ «operational_summary»: {…}, «company»: {…}, «prospect_input»: {…}, «evaluation»: {…} }
El campo clave para operación es:
operational_summary 4. Motor de evaluación
Función central:
evaluate_prospect(…)
Responsabilidades:
inferencia sectorial perfil técnico señales comerciales scoring compuesto decisión CRM estrategia comercial generación de email
Regla crítica:
NO duplicar esta lógica 5. Modelo operativo (operational_summary)
Campos clave:
company_name country domain sector_hint priority_score priority_band commercial_access_score crm_initial_state recommended_next_action entry_point main_pain technical_angle
Ejemplo real:
{ «company_name»: «CODELCO - Corporación Nacional del Cobre», «country»: «Chile», «entry_point»: «mantenimiento», «main_pain»: «alto_consumo_energetico», «crm_initial_state»: «ENRICH_CONTACTS» } 6. Contact enrichment (LinkedIn)
Módulo:
prodisys/comercial/contact_enrichment_linkedin.py
Flujo:
discovered_actionable.jsonl → linkedin_review_queue.jsonl → linkedin_validated_contacts.jsonl (manual) → merge_validated → discovered_actionable_enriched.jsonl 6.1 Estados clave Estado Significado ENRICH_CONTACTS no hay contacto READY_FOR_OUTREACH contacto validado
Esto se alinea directamente con la máquina de estados CRM.
6.2 Lógica de scoring
El enrichment agrega:
linkedin_enrichment_score contact_readiness
Regla:
LOW → sin contacto MEDIUM → contacto parcial HIGH → contacto listo 6.3 Output enriquecido
Ejemplo validado:
CODELCO → HIGH → READY_FOR_OUTREACH SCC → LOW → ENRICH_CONTACTS Antamina → LOW → ENRICH_CONTACTS 7. Integración con CRM (ALEPH)
El flujo CRM está definido en:
aleph_crm_flow.md aleph_crm_state_machine.md aleph_crm_decisions.md 7.1 Orden jerárquico EMPRESA → PERSONA → PERSONA_PROYECTO
Regla obligatoria.
7.2 Estado crítico ENRICH_CONTACTS
Significa:
empresa válida + sin contacto → no se puede escribir en CRM
Esto conecta directamente con el módulo que construiste.
7.3 Transición clave ENRICH_CONTACTS → (contact_enrichment) → READY_FOR_OUTREACH → CREATE_CONTACT_AND_ACTIVITY → CRM_READY 7.4 Requisito mínimo CRM
Para escritura:
empresa válida contacto válido (nombre + email/phone) proyecto interno
Outputs operativos Archivos data/discovery/
discovered_actionable.jsonl
linkedin_review_queue.jsonl
linkedin_validated_contacts.jsonl
discovered_actionable_enriched.jsonl CLI disponibles build-queue sample-contacts merge-validated review-summary Vista operativa EMPRESA | PAIS | READINESS | STATUS | CONTACTO | ROL
Flujo end-to-end
Discovery identifica empresa
Evaluación calcula prioridad
Se clasifica como ENRICH_CONTACTS
LinkedIn genera búsqueda
Usuario valida contacto
Merge actualiza estado
Prospecto pasa a READY_FOR_OUTREACH
Se habilita CRM
Estado actual (MVP)
✔ Discovery funcional ✔ Evaluación integrada ✔ Filtro de accionables ✔ Enrichment LinkedIn operativo ✔ Estado READY_FOR_OUTREACH funcional ✔ CLI usable ✔ Vista tabular operativa
Limitaciones actuales dependencia manual en LinkedIn un solo contacto por prospecto sin integración automática con CRM sin preparación de outreach sin tracking de actividad
Siguiente módulo recomendado outreach_preparation.py
Objetivo:
Convertir:
READY_FOR_OUTREACH
en:
mensaje comercial accionable
Incluye:
contacto objetivo hipótesis de valor problema técnico asunto de email borrador de contacto recomendación de material 13. Estado conceptual final
El sistema ya funciona como:
motor de generación de pipeline comercial técnico
Capacidades:
identifica empresas relevantes entiende su problema prioriza encuentra contacto habilita acción comercial Conclusión
Ya tienes un sistema que conecta:
inteligencia técnica → decisión comercial → acción CRM
El cuello de botella principal (contacto) ya fue resuelto.
Siguiente paso
Si quieres seguimos con:
outreach_preparation.py
Ese es el punto donde el gemelo pasa de “analítico” a generador de negocio real.