Lo esencial
Una persona, en un solo día de trabajo, produce el contenido de una semana para cinco plataformas: texto, voz, video y un calendario de publicación. No porque sea un genio. Porque tiene armado el flujo correcto. Hoy recorremos ese flujo estación por estación: tendencias → idea → texto → imagen → video → voz → publicación. Claude es el director de orquesta y las demás herramientas son la orquesta.
Esta lección trae mucho código. La teoría se puede leer sin él: explica de qué estaciones está hecho el flujo. En la práctica hay un camino sin programar y otro para quien ya corre scripts.
Conceptos clave
- Fábrica de contenido: un solo orquestador maneja toda la cadena, de una tendencia a una publicación hecha
- Una idea → muchos formatos: adaptar para cada plataforma sin escribir todo desde cero
- Un calendario de contenido en JSON: un calendario legible por máquina que Claude entiende y ejecuta (JSON es un formato de texto simple que guarda los datos en pares "nombre: valor")
- Generación en paralelo: Claude, ElevenLabs y Runway trabajan al mismo tiempo, no uno tras otro
- Ciclo de análisis: las métricas del contenido publicado regresan a Claude para mejorar la siguiente tanda
- Puntos de control: momentos de aprobación, para que nada a medio hacer se publique solo
- Producción por tandas: 30 publicaciones en una sola corrida, y cómo se ve el costo por pieza a esa escala
Teoría
Arquitectura: las 9 estaciones del flujo
Antes de escribir código, dibujamos el diagrama. Toda la fábrica está hecha de 9 estaciones:
TENDENCIA → INVESTIGACIÓN → ESQUEMA → TEXTO → ADAPTACIONES → IMAGEN → VIDEO → VOZ → PUBLICACIÓNCada estación es una llamada a una API distinta (API significa interfaz de programación de aplicaciones: la forma en que un programa habla con otro). Cualquier estación se puede cambiar o apagar sin reconstruir todo el sistema. Después de publicar, las métricas regresan al inicio del flujo: ese es el ciclo de análisis, que se explica más abajo.
Qué hace cada estación:
| Estación | Herramienta | Qué hace |
|---|---|---|
| Tendencia | Búsqueda web + Claude | Qué está de moda hoy |
| Investigación | Claude con búsqueda conectada (por MCP, la forma de conectarle servicios externos a Claude) | Hechos, datos, fuentes |
| Esquema | Claude Sonnet | La estructura de la pieza |
| Texto (principal) | Claude Sonnet | El artículo o guion completo |
| Adaptaciones | Claude Haiku | Boletín, X (Twitter), LinkedIn |
| Imagen | gpt-image-2 / Ideogram / Nano Banana | Portada, ilustraciones (DALL-E 3 se apagó en la API el 12 de mayo de 2026) |
| Video (opcional) | Kling / Runway | Un clip corto, de unos segundos |
| Voz (opcional) | ElevenLabs (TTS, text-to-speech: convertir texto en audio hablado) | Locución para Reels y Shorts |
| Publicación | Buffer API / tu plataforma de boletines / la API directa de un bot | Programar y enviar |
Cuánto cuesta un paquete de contenido: calcúlalo con los precios de cada servicio. Para Claude, este es el orden de magnitud (precios por 1 millón de tokens a octubre de 2026: Sonnet 5.5 cuesta $2 de entrada y $10 de salida, Haiku 4.5 cuesta $1 y $5): un artículo de 1,200 palabras cuesta unos centavos, y las adaptaciones cuestan uno o dos centavos. Las imágenes, el video y la voz cuestan lo que cobre el servicio que elijas. Para sumar todas tus herramientas, usa la lección Cuánto cuestan de verdad las herramientas de IA.
Un calendario de contenido en JSON: un calendario legible por máquina
Un calendario de contenido no es una hoja de Excel. Es un archivo JSON que Claude lee y ejecuta. Legible por máquina significa que Claude puede llenar la semana siguiente por su cuenta, con base en las estadísticas de la semana anterior. El ejemplo de abajo usa una empresa inventada.
{
"brand": {
"name": "Acme Realty",
"voice": "Experto amable. No un vendedor. Datos + historias.",
"audience": "Personas de 35 a 55 años que piensan mudarse a Ecuador o invertir ahí",
"languages": ["es"],
"channels": ["newsletter", "youtube", "instagram", "linkedin"]
},
"week": "2026-10-05",
"posts": [
{
"id": "post-001",
"publish_at": "2026-10-05T09:00:00-05:00",
"topic": "Cuánto cuesta de verdad vivir en Cuenca en 2026",
"content_type": "educational",
"formats": {
"blog": { "words": 1200, "status": "pending" },
"newsletter": { "sections": 3, "status": "pending" },
"youtube_script": { "duration_min": 8, "status": "pending" },
"twitter": { "tweets": 5, "status": "pending" },
"linkedin": { "status": "pending" }
},
"assets": {
"cover_image": null,
"short_video": null,
"voice_over": null
},
"keywords": ["costo de vida en Cuenca", "costo de vida en Ecuador", "mudarse a Ecuador"],
"approved": false
}
]
}Cuando approved (aprobado) cambia a true, el orquestador arranca la producción y llena assets (los archivos terminados: portada, clip, locución).
Una idea → muchos formatos
Así es como Claude Haiku convierte un artículo principal en versiones para cada plataforma por un par de centavos:
import anthropic
import json
import os
claude = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
def text_of(response) -> str:
"""Junta el texto de la respuesta: los modelos nuevos pueden poner bloques de "razonamiento" antes del texto."""
return "".join(block.text for block in response.content if block.type == "text")
def generate_main_article(topic: str, keywords: list[str],
brand_voice: str, word_count: int = 1200) -> str:
"""Genera un artículo completo optimizado para SEO con Claude Sonnet."""
response = claude.messages.create(
model="claude-sonnet-5-5", # IDs de modelo vigentes: revisa la documentación de Anthropic
max_tokens=8000, # con margen: el "razonamiento" del modelo también cuenta para este límite
messages=[{
"role": "user",
"content": f"""Escribe un artículo de blog.
Tema: {topic}
Extensión: {word_count} palabras
Palabras clave SEO: {', '.join(keywords)}
Voz de la marca: {brand_voice}
Estructura:
1. Título H1 (con la palabra clave principal)
2. Introducción (150 palabras, un gancho + una promesa)
3. 3–4 secciones H2 con datos y cifras concretas
4. Consejos prácticos (lista con viñetas)
5. Conclusión + llamado a la acción
Requisitos:
- Solo datos, sin relleno como "esto es muy importante"
- Cifras y ejemplos concretos; no inventes cifras: si no tienes datos sólidos, marca el lugar como "por verificar"
- Tono conversacional pero experto
- Idioma: español neutro de América Latina, formato Markdown"""
}]
)
return text_of(response)
def adapt_to_all_platforms(main_article: str, brand_context: str,
topic: str) -> dict:
"""
Convierte un artículo base en contenido para cada plataforma.
Claude Haiku: rápido y barato (un par de centavos).
"""
response = claude.messages.create(
model="claude-haiku-4-5", # Haiku 4.5: su retiro de la API es posible no antes del 15 de octubre de 2026; revisa los IDs en la documentación de Anthropic
max_tokens=6000,
messages=[{
"role": "user",
"content": f"""Eres el estratega de contenido de la marca. Marca: {brand_context}
Artículo principal sobre el tema "{topic}":
---
{main_article}
---
Adáptalo a los siguientes formatos. Devuelve SOLO JSON válido, sin explicaciones y sin triples comillas invertidas alrededor:
{{
"newsletter": {{
"subject_line": "Asunto (corto y concreto)",
"sections": [
"Sección 1: la historia principal (hasta 1,000 caracteres, con emoji, amigable)",
"Sección 2: profundiza en una idea (800 caracteres)",
"Sección 3: un consejo práctico + llamado a la acción (600 caracteres)"
]
}},
"twitter_thread": [
"Publicación 1/5: gancho (hasta 280 caracteres)",
"Publicación 2/5: dato clave",
"Publicación 3/5: un ejemplo o una historia",
"Publicación 4/5: un ángulo inesperado",
"Publicación 5/5: conclusión + enlace"
],
"linkedin_post": "Versión para LinkedIn (300–400 palabras, tono profesional)",
"instagram_caption": "Versión para Instagram (150–200 palabras + 15 hashtags)",
"youtube_description": "Descripción para YouTube (300 palabras, marcas de tiempo, palabras clave)"
}}"""
}]
)
return json.loads(text_of(response))
def generate_youtube_script(topic: str, duration_minutes: int,
brand_voice: str) -> str:
"""Genera el guion de un video de YouTube con marcas de tiempo."""
words_per_minute = 130 # un ritmo de habla típico; mídete y ajústalo
target_words = duration_minutes * words_per_minute
response = claude.messages.create(
model="claude-sonnet-5-5",
max_tokens=8000,
messages=[{
"role": "user",
"content": f"""Escribe el guion de un video de YouTube.
Tema: {topic}
Duración: {duration_minutes} min (~{target_words} palabras)
Voz: {brand_voice}
Formato de cada bloque:
[MM:SS] TÍTULO DEL BLOQUE
(Nota de dirección: qué mostrar en pantalla / tomas de apoyo)
Texto del presentador...
Estructura:
[00:00] GANCHO: los primeros 30 segundos, la parte más importante
[00:30] INTRO: quién es el presentador, de qué trata el video
[01:00] PARTE PRINCIPAL: 3–4 bloques de 2–3 minutos cada uno
[{duration_minutes-1}:00] CIERRE: resumen + llamado a la acción
[{duration_minutes-1}:30] DESPEDIDA: suscríbete, siguiente video
Escribe de forma viva y conversacional, como si le hablaras a un amigo."""
}]
)
return text_of(response)Programar publicaciones: la API directa de un bot y la API de Buffer
Para la mayoría de los canales, casi todo el trabajo pasa por la Vía 2 (Buffer): Instagram, LinkedIn, X. Tu boletín normalmente sale desde su propia plataforma (Beehiiv, Kit, Mailchimp y otras). El flujo le entrega un borrador terminado, y tú lo pegas o, si tu plataforma tiene API, lo mandas desde el código con el mismo patrón que los ejemplos de abajo.
Vía 1: la API directa de un bot, con Telegram como ejemplo: publicar directamente, gratis. Telegram es solo un ejemplo: según tu audiencia puede ser más o menos usado que un boletín por correo, así que trata este código como un patrón y no como una recomendación: un token en una variable de entorno y una función que manda texto con una imagen opcional. Un canal privado de Telegram también sirve como canal de prueba gratis para ver las publicaciones en tu celular.
import asyncio
from telegram import Bot, InputFile
import os
TELEGRAM_BOT_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
CHANNEL_ID = os.environ["TELEGRAM_CHANNEL_ID"]
async def publish_to_telegram(text: str, image_path: str = None) -> dict:
"""Publica en un canal de Telegram."""
bot = Bot(token=TELEGRAM_BOT_TOKEN)
if image_path:
with open(image_path, "rb") as img:
message = await bot.send_photo(
chat_id=CHANNEL_ID,
photo=InputFile(img),
caption=text,
parse_mode="Markdown"
)
else:
message = await bot.send_message(
chat_id=CHANNEL_ID,
text=text,
parse_mode="Markdown"
)
return {"message_id": message.message_id, "date": str(message.date)}
# Para correrlo: asyncio.run(publish_to_telegram("Publicación de prueba"))
# El bot tiene que ser administrador del canal; TELEGRAM_CHANNEL_ID es la dirección del canal, como @tu_canalVía 2: la API de Buffer: un programador para Instagram, LinkedIn y Twitter/X. La API de Buffer está hecha sobre GraphQL (un lenguaje de consultas; la dirección es https://api.buffer.com), y la clave la creas en la configuración de Buffer (Settings → API). Revisa los nombres de los campos en developers.buffer.com:
import json
import os
import requests
BUFFER_API_KEY = os.environ["BUFFER_API_KEY"]
BUFFER_CHANNEL_IDS = {
"instagram": os.environ["BUFFER_INSTAGRAM_CHANNEL_ID"],
"linkedin": os.environ["BUFFER_LINKEDIN_CHANNEL_ID"],
"twitter": os.environ["BUFFER_TWITTER_CHANNEL_ID"],
}
def schedule_to_buffer(text: str, platform: str, due_at: str) -> dict:
"""
Programa una publicación con la API de Buffer (GraphQL).
due_at: hora de publicación en formato ISO 8601, UTC, por ejemplo 2026-10-12T14:00:00.000Z
Los archivos multimedia se mandan a la API de Buffer como un enlace público: revisa la documentación.
"""
query = f"""
mutation {{
createPost(input: {{
text: {json.dumps(text, ensure_ascii=False)},
channelId: "{BUFFER_CHANNEL_IDS[platform]}",
schedulingType: automatic,
mode: customScheduled,
dueAt: "{due_at}"
}}) {{
... on PostActionSuccess {{ post {{ id dueAt }} }}
... on MutationError {{ message }}
}}
}}
"""
response = requests.post(
"https://api.buffer.com",
headers={"Authorization": f"Bearer {BUFFER_API_KEY}"},
json={"query": query},
)
return response.json()Un flujo en n8n: automatizar todo el proceso
n8n es una plataforma de automatización que te deja conectar de forma visual cada parte del flujo. Su código fuente es abierto (licencia Sustainable Use, "fair-code"), y puedes correr la Community Edition en tu propio servidor y usarla gratis para trabajo interno. Es una alternativa a Make y Zapier. Más en una lección opcional de la biblioteca: n8n + IA: flujos inteligentes.
Un flujo básico de n8n para la fábrica de contenido:
Ejecución programada (lunes 09:00)
→ HTTP: leer content-calendar.json desde GitHub
→ Code: quedarse solo con approved: true
→ Loop: para cada publicación:
→ API de Claude: generar el artículo (Sonnet)
→ API de Claude: adaptaciones por plataforma (Haiku) [en paralelo]
→ Generación de imagen: portada [en paralelo]
→ API de Buffer: programar LinkedIn y Twitter/X
→ Plataforma de boletines: guardar la edición como borrador
→ Google Docs: guardar todo para una revisión final
→ Aviso por Slack o correo: "X publicaciones listas, esperando revisión"Alternativas a n8n: Make (antes Integromat) y Zapier, ambos servicios en la nube que cobran por créditos y tareas (precios: Lo vigente). Zapier tiene su propia lección casi al final del curso: Zapier AI.
El orquestador: un solo script de bash para todo el flujo
#!/usr/bin/env bash
# content-factory-orchestrator.sh
# Córrelo desde la carpeta del proyecto: bash content-factory-orchestrator.sh (necesita la herramienta jq)
set -euo pipefail
WEEK_DATE="${1:-$(date +%Y-%m-%d)}"
CALENDAR_FILE="content-calendar.json"
OUTPUT_DIR="./content-output/${WEEK_DATE}"
mkdir -p "$OUTPUT_DIR"
log() { echo "[$(date +%H:%M:%S)] $1"; }
log "🏭 La fábrica de contenido arrancó. Semana: $WEEK_DATE"
POSTS=$(jq -r '.posts[] | select(.approved == true) | .id' "$CALENDAR_FILE")
if [ -z "$POSTS" ]; then
log "⚠️ No hay publicaciones aprobadas. Deteniendo."
exit 0
fi
for POST_ID in $POSTS; do
log "▶️ Procesando: $POST_ID"
POST_DIR="${OUTPUT_DIR}/${POST_ID}"
mkdir -p "$POST_DIR"
TOPIC=$(jq -r ".posts[] | select(.id == \"$POST_ID\") | .topic" "$CALENDAR_FILE")
KEYWORDS=$(jq -r ".posts[] | select(.id == \"$POST_ID\") | .keywords | join(\", \")" "$CALENDAR_FILE")
PUBLISH_AT=$(jq -r ".posts[] | select(.id == \"$POST_ID\") | .publish_at" "$CALENDAR_FILE")
log " Tema: $TOPIC"
# Artículo y guion de YouTube en paralelo
python3 scripts/generate_article.py --topic "$TOPIC" --keywords "$KEYWORDS" \
--output "${POST_DIR}/article.md" &
python3 scripts/generate_script.py --topic "$TOPIC" --duration 8 \
--output "${POST_DIR}/youtube-script.md" &
wait
# Adaptaciones e imagen de portada en paralelo
python3 scripts/adapt_platforms.py --article "${POST_DIR}/article.md" \
--output "${POST_DIR}/adaptations.json" &
python3 scripts/generate_image.py --topic "$TOPIC" \
--output "${POST_DIR}/cover.jpg" &
wait
log " ✅ El contenido de $POST_ID está listo"
# Programar las publicaciones
python3 scripts/schedule_content.py --post-id "$POST_ID" \
--adaptations "${POST_DIR}/adaptations.json" \
--cover "${POST_DIR}/cover.jpg" \
--publish-at "$PUBLISH_AT"
done
log "🎉 ¡Listo! Publicaciones programadas: $(echo "$POSTS" | wc -w)"El ciclo de análisis: contenido que aprende de los resultados
def run_analytics_loop(days_back: int = 7) -> dict:
"""
Reúne las métricas de la semana pasada y genera temas para la próxima semana.
"""
# get_*_stats() y update_calendar_with_recommendations() aquí solo están nombradas:
# escríbelas para tus propias plataformas (o pídeselo a Claude)
newsletter_stats = get_newsletter_stats(days_back)
youtube_stats = get_youtube_stats(days_back)
instagram_stats = get_instagram_stats(days_back)
combined_stats = {
"newsletter": newsletter_stats,
"youtube": youtube_stats,
"instagram": instagram_stats,
"period_days": days_back,
}
response = claude.messages.create(
model="claude-sonnet-5-5",
max_tokens=6000,
messages=[{
"role": "user",
"content": f"""Eres analista de estrategia de contenido.
Analiza los resultados de los últimos {days_back} días:
{json.dumps(combined_stats, ensure_ascii=False, indent=2)}
Da un análisis estructurado. Devuelve solo JSON, sin explicaciones y sin triples comillas invertidas alrededor:
{{
"winners": ["publicación + por qué funcionó"],
"flops": ["publicación + por qué no pegó"],
"patterns": ["qué tipo de contenido funciona de forma constante"],
"best_time": {{"newsletter": "HH:MM", "instagram": "HH:MM"}},
"next_week_topics": ["tema 1", "tema 2", "tema 3", "tema 4", "tema 5"],
"strategy_changes": ["qué cambiar en el proceso de producción"]
}}
Usa solo los datos de estas estadísticas; no inventes nada."""
}]
)
recommendations = json.loads(text_of(response))
update_calendar_with_recommendations(recommendations)
return recommendationsCuánto cuesta el flujo: cómo calcularlo
Un plan típico: 5 temas a la semana × 4 semanas = 20 paquetes de contenido al mes.
| Componente | Cómo calcularlo |
|---|---|
| Claude Sonnet (artículo + guion) | tokens × precio de la API. Sonnet 5.5 a octubre de 2026: $2 de entrada y $10 de salida por 1 millón de tokens; un artículo de 1,200 palabras cuesta unos centavos |
| Claude Haiku (adaptaciones) | Haiku 4.5: $1 de entrada y $5 de salida por 1 millón de tokens; un juego de adaptaciones cuesta uno o dos centavos |
| Imagen (portada) | los precios del servicio que elijas |
| ElevenLabs (locución, opcional) | créditos de tu plan |
| Video de Kling o Runway (opcional) | créditos por segundo de video, normalmente el renglón más caro |
| Programador | Buffer y Typefully tienen planes gratis para empezar; los planes de pago de Buffer se cobran por canal, y las condiciones de Typefully están en su sitio |
El total es la suma de esos precios. Calcula tu propia versión con la fórmula de la lección Cuánto cuestan de verdad las herramientas de IA antes de prometerle a nadie un flujo regular de contenido.
Práctica
Sin programar. Recorre el flujo a mano; toma más o menos una hora. Llena una entrada del calendario: tema, audiencia, palabras clave. Copia el texto del prompt de la función generate_main_article(), pon tu propio tema y mándalo en un chat de Claude. Luego manda el prompt de adapt_to_all_platforms() junto con el artículo terminado. Revisa los datos y las cifras, corrige los textos y agrega las publicaciones a mano a la fila de tu programador. Así entiendes todo el camino, y la automatización la agregas después.
Con código. Los pasos de abajo son para quien ya corre scripts de Python: necesitas una terminal, Python y una clave de API de Anthropic. Una hora alcanza para los Pasos 1 a 5; armar el flujo completo de cinco scripts toma más.
Paso 1: Crea la estructura del proyecto
mkdir -p content-factory/{scripts,templates,logs}
cd content-factory
touch content-calendar.json content-factory-orchestrator.sh .env \
scripts/generate_article.py scripts/generate_script.py \
scripts/adapt_platforms.py scripts/generate_image.py \
scripts/schedule_content.pyPaso 2: Llena la primera publicación en content-calendar.json
Copia la plantilla JSON de la sección de teoría. Cambia el tema por uno que encaje con tu negocio o con el nicho de tu cliente. Pon "approved": true para una corrida de prueba.
Paso 3: Arma generate_article.py
Instala la biblioteca: pip install anthropic. La clave de API se crea en la Claude Console (platform.claude.com) y se cobra por tokens, aparte de la suscripción. Ponla en la variable de entorno ANTHROPIC_API_KEY, no en el código. Luego toma la función generate_main_article() de la sección de teoría, agrega la lectura de los parámetros --topic, --keywords y --output (el módulo argparse) y córrelo. Revisa que el artículo se genere y se guarde en un archivo.
Paso 4: Arma adapt_platforms.py
Usa adapt_to_all_platforms(). La entrada es el archivo del artículo; la salida es adaptations.json. Abre el JSON y lee las secciones del boletín: deben sonar como si las hubiera escrito una persona, no como una traducción rígida de máquina.
Paso 5: Configura la publicación
Para Instagram, LinkedIn y X, conecta las cuentas en Buffer y prueba schedule_to_buffer() con una publicación programada para mañana. Para ver una publicación exactamente como la vería un suscriptor, la opción gratis más rápida es un canal privado de prueba en Telegram (Vía 1):
pip install python-telegram-botCrea un bot con @BotFather y agrégalo a tu canal como administrador. Pon el token del bot en la variable de entorno TELEGRAM_BOT_TOKEN y la dirección del canal (como @tu_canal) en TELEGRAM_CHANNEL_ID. Copia publish_to_telegram() y manda un mensaje de prueba: asyncio.run(publish_to_telegram("Prueba")). Confirma que el formato Markdown funciona.
Paso 6: Corre el orquestador
Guarda el script del orquestador de la sección de teoría como content-factory-orchestrator.sh y córrelo desde la carpeta del proyecto: bash content-factory-orchestrator.sh. Necesitas la herramienta jq (el enlace está en los recursos). El orquestador llama a cinco scripts. Dos ya los armaste en los Pasos 3 y 4. Arma los otros tres de la misma forma, o pídele a Claude que los escriba a partir de las funciones de la teoría: generate_script.py a partir de generate_youtube_script(), schedule_content.py a partir de las funciones de publicación, y generate_image.py para el servicio de imágenes que elegiste. Mientras un script no exista, comenta su llamada completa en el orquestador (todas las líneas de la llamada). Mira cómo el flujo avanza por las estaciones. Los archivos finales van a quedar en content-output/{date}/{post-id}/. Revisa cada archivo.
Paso 7: Producción por tandas: 30 publicaciones en un día
Agrega 30 entradas a content-calendar.json (todas con approved: true). Para esta prueba, comenta en el orquestador la llamada a schedule_content.py: que el flujo solo prepare el contenido, y revísalo tú antes de que se publique nada. Ese es tu punto de control. Corre el orquestador y mide el tiempo. Esta es tu primera experiencia produciendo contenido a escala: el momento en que sientes la diferencia entre un artesano y una fábrica.
Herramientas y recursos
- Anthropic API: Claude Sonnet y Haiku (la columna vertebral del flujo)
- python-telegram-bot: un envoltorio de la API de bots de Telegram (para el ejemplo de la Vía 1)
- Buffer API: programar publicaciones (GraphQL)
- Postiz: una alternativa de código abierto a Buffer que instalas tú mismo (en desarrollo activo a octubre de 2026)
- n8n: un orquestador de flujos que puedes correr en tu propio servidor
- ElevenLabs API: TTS con clonación de voz
- OpenAI Images: generar portadas (el modelo gpt-image-2; DALL-E 2 y 3 se apagaron en la API el 12 de mayo de 2026)
- jq: una herramienta de línea de comandos para trabajar con JSON en bash
- Schedule: programación tipo cron en Python para corridas locales
- Precios y versiones: Lo vigente
Ideas clave
La fábrica no se toma días libres. Configura el flujo una vez y produce borradores cada semana. Tu trabajo es aprobar los temas los lunes y revisar lo que sale antes de que se publique; los pasos de rutina de en medio corren solos.
Una idea, muchos formatos. No escribas seis textos distintos para seis plataformas. Escribe una pieza principal, y Claude Haiku la recorta a la medida de cada una. Unos centavos contra unas horas de trabajo manual.
El ciclo de análisis cierra el círculo. Contenido sin retroalimentación es disparar a ciegas. Métricas a Claude → recomendaciones → temas nuevos → mejor contenido. Cada semana puede construir sobre lo que aprendiste la semana anterior.
Siguiente lección
→ Imanes de prospectos: un embudo sencillo de lo gratis a lo pagado
La marca se guarda solo en este navegador y no se envía a ningún sitio. Mi progreso