Genere un borrador de carta de presentación profesional
Convierta los datos esenciales de una candidatura en un borrador claro de carta de presentación sin enfrentarse a una página en blanco.
Ejecutar — gratis
Indique el nombre de la persona candidata, el puesto, la empresa y dos o tres méritos destacados. El generador los organiza con encabezado, asunto, saludo, introducción, argumentos, cierre y firma. El resultado es determinista y queda listo para que usted lo personalice, por lo que cada solicitud parte de una base coherente sin perder el control del tono ni de los detalles finales.
Elija méritos que demuestren su idoneidad
Una buena carta no se limita a repetir el currículum. Antes de generar el borrador, elija dos o tres méritos que respondan directamente a las necesidades del empleador. Una aportación sólida combina una habilidad con pruebas: en lugar de «buena gestión de proyectos», escriba «dirigí un lanzamiento con doce personas de ingeniería, ventas y soporte». Un resultado cuantificable ayuda si es exacto, pero también sirven un ámbito concreto, una responsabilidad, una acreditación o una herramienta especializada. Mantenga cada mérito en una sola frase y coloque primero el argumento más convincente, pues el generador conserva el orden. Incluya únicamente afirmaciones que pueda defender en una entrevista y evite datos privados, confidenciales o irrelevantes. Se exigen dos o tres elementos no vacíos porque una sola afirmación suele aportar pocas pruebas y una lista larga dispersa la atención. Unos datos de partida bien escogidos producen una carta específica, creíble y sin repeticiones innecesarias.
Comprenda la estructura de la carta comercial
El resultado sigue una secuencia comercial conocida para facilitar una lectura rápida. Comienza con un marcador de fecha, identifica al responsable de contratación y a la empresa, presenta un asunto claro y utiliza un saludo neutro cuando no se conoce el nombre del destinatario. La apertura menciona enseguida el puesto y la organización. Después, un párrafo independiente reúne los méritos facilitados, y el cierre propone una conversación y agradece la atención. La despedida y la firma completan el documento. Esta estructura convencional mantiene el foco en las pruebas de la candidatura. Sustituya la fecha, añada el nombre y la dirección del destinatario cuando los conozca y compruebe si la empresa exige otro formato. La salida también ofrece cada sección por separado, lo que permite usarla en plantillas, formularios o flujos documentales. El campo de carta completa se puede copiar, mientras que los campos individuales permiten colocar o diseñar cada parte sin analizar el texto final.
Personalice y revise antes de enviar
Considere el resultado un primer borrador ordenado, no una declaración terminada sobre la persona candidata. Lea cada frase en voz alta y ajuste el vocabulario para que refleje su manera de expresarse. Añada un motivo verdadero para interesarse por la empresa, relacione el mérito principal con una función de la oferta y elimine cualquier expresión genérica. Confirme el nombre oficial de la organización y el título exacto del puesto; después verifique cifras, credenciales y resultados. Si conoce al responsable, sustituya el saludo neutro. Complete la fecha y los datos de contacto en el documento definitivo. Salvo indicación contraria, procure que la versión final quepa cómodamente en una página. Revise de nuevo tras pegar el contenido, ya que el editor puede alterar saltos y formato. La capacidad no usa red, azar ni fecha actual, por lo que una entrada idéntica siempre produce la misma salida. Esa coherencia facilita la automatización, pero no investiga a la empresa ni inventa personalización: usted conserva la responsabilidad sobre exactitud, relevancia, tono y envío.
Qué puede hacer con ella
Iniciar una candidatura dirigida
Transforme el puesto, la empresa y sus mejores pruebas en un borrador organizado y fácil de personalizar.
Normalizar servicios de orientación
Ofrezca a estudiantes o clientes una estructura comercial coherente con méritos específicos para cada vacante.
Rellenar una plantilla documental
Use la carta completa o sus secciones en un formulario, generador de documentos o herramienta interna.
Preguntas frecuentes
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión del navegador puede ejecutarse localmente sin solicitar la API.
¿Cuántos méritos debo indicar?
Indique exactamente dos o tres méritos no vacíos, ordenados desde el más convincente.
¿El generador investiga la empresa?
No. Solo utiliza la información suministrada, no accede a la red ni inventa datos corporativos.
¿Por qué aparece un marcador de fecha?
El generador es determinista y no consulta la fecha actual. Sustituya el marcador por la fecha de envío.
¿Puedo enviar el resultado sin cambios?
Es un borrador estructurado. Compruebe la exactitud, personalice la motivación y el destinatario, y revise el documento final.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/doc/cover-letter-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"applicant_name":"Jordan Lee","job_title":"Product Operations Manager","company_name":"Northstar Labs","qualifications":["Seven years leading cross-functional operations programs","Reduced onboarding time by 35% through process redesign","Experienced with analytics, documentation, and stakeholder communication"]}'const res = await fetch("https://api.kit.forhosting.com/doc/cover-letter-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"applicant_name": "Jordan Lee",
"job_title": "Product Operations Manager",
"company_name": "Northstar Labs",
"qualifications": [
"Seven years leading cross-functional operations programs",
"Reduced onboarding time by 35% through process redesign",
"Experienced with analytics, documentation, and stakeholder communication"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/cover-letter-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"applicant_name": "Jordan Lee",
"job_title": "Product Operations Manager",
"company_name": "Northstar Labs",
"qualifications": [
"Seven years leading cross-functional operations programs",
"Reduced onboarding time by 35% through process redesign",
"Experienced with analytics, documentation, and stakeholder communication"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/cover-letter-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"applicant_name":"Jordan Lee","job_title":"Product Operations Manager","company_name":"Northstar Labs","qualifications":["Seven years leading cross-functional operations programs","Reduced onboarding time by 35% through process redesign","Experienced with analytics, documentation, and stakeholder communication"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"applicant_name":"Jordan Lee","job_title":"Product Operations Manager","company_name":"Northstar Labs","qualifications":["Seven years leading cross-functional operations programs","Reduced onboarding time by 35% through process redesign","Experienced with analytics, documentation, and stakeholder communication"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/cover-letter-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"applicant_name": "Jordan Lee",
"job_title": "Product Operations Manager",
"company_name": "Northstar Labs",
"qualifications": [
"Seven years leading cross-functional operations programs",
"Reduced onboarding time by 35% through process redesign",
"Experienced with analytics, documentation, and stakeholder communication"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.cover_letter_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |