Gemelo Comercial — Arquitectura consolidada

📄 gemelo_comercial.md — Versión consolidada

  1. 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

  1. 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

  1. Flujo end-to-end

  2. Discovery identifica empresa

  3. Evaluación calcula prioridad

  4. Se clasifica como ENRICH_CONTACTS

  5. LinkedIn genera búsqueda

  6. Usuario valida contacto

  7. Merge actualiza estado

  8. Prospecto pasa a READY_FOR_OUTREACH

  9. Se habilita CRM

  10. Estado actual (MVP)

✔ Discovery funcional ✔ Evaluación integrada ✔ Filtro de accionables ✔ Enrichment LinkedIn operativo ✔ Estado READY_FOR_OUTREACH funcional ✔ CLI usable ✔ Vista tabular operativa

  1. 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

  2. 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.