Un consultor empieza de nuevo su investigación de mercado con cada encargo. Categoría nueva, lista de proveedores nueva, y un cliente que preguntará en la diapositiva catorce de dónde salió ese número. La hoja de cálculo del trimestre pasado no sirve. El método sí.
Una API de investigación de mercado para consultores tiene que funcionar desde cero, porque el primer día no hay ninguna lista de proveedores a la que apuntarla, y tiene que devolver hechos con una fuente y una fecha, porque "lo comprobamos" no es una respuesta que un socio pueda dar. También tiene que costar algo que puedas cargar a un cliente en concreto, en vez de a gastos generales.
¿Por dónde empiezas cuando todavía no hay lista de proveedores?
Con dos llamadas que devuelven URLs en vez de respuestas. search_web cuesta 5 credits por consulta y acepta un array queries, así que seis formas de preguntar "quién le vende X a Y" se ejecutan en una sola llamada por 30 credits. Los fragmentos suelen bastar para distinguir un proveedor de un simple listado. Cuando además quieres los pasajes, deep_research cuesta 10 credits por ejecución: busca, obtiene hasta diez fuentes y devuelve los pasajes que mejor coinciden de forma literal, con una lista sources que lleva la URL de cada una, su título y si se llegó a obtener de verdad o solo se vio en un fragmento. En la API alojada no se sintetiza nada, y ese es justamente el punto. Lo que recibes es una lista larga de dominios y las frases que los pusieron en ella.
El siguiente paso es encontrar la página correcta en cada dominio, y la forma equivocada de hacerlo es adivinar que los precios están en /pricing. map_site cuesta 2 credits por dominio y lee el sitemap del sitio, recurriendo a un rastreo acotado cuando no hay uno, así que obtienes la lista de URLs y eliges de ahí precios, producto, clientes y empleo. Treinta proveedores son 60 credits y nunca obtienes un 404.
¿Cómo llega un hecho a la presentación con su fuente?
Un scrape por página. Pide markdown, metadata y links juntos: todos los formatos salen de la misma llamada y cuesta 2 credits sin importar cuántos pidas. La respuesta lleva un timestamp scraped_at, que es la columna de fecha que necesita tu entregable.
curl -X POST https://crawlforge.dev/api/v1/tools/scrape \
-H "X-API-Key: cf_live_NORTHWIND_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://vendor-a.com/pricing",
"formats": ["markdown", "metadata", "links"]
}'La fila que escribes es proveedor, URL de la página, la afirmación, la frase en la que se apoya, y scraped_at. Cita la frase en vez de parafrasearla. Una celda que dice "SSO en todos los planes" es una opinión hasta que la frase de al lado lo confirme, y el post sobre due diligence explica qué pasa cuando un modelo rellena esa celda en su lugar.
Si la misma pregunta hay que responderla para todos los proveedores, añade un formato question por 1 credit más y la llamada devuelve las cinco frases que mejor coinciden, cada una con un offset dentro del markdown. El post de RevOps trata de hacer eso a lo largo de una categoría; este trata de conseguir la categoría en primer lugar.
¿Cómo mantienes separado el gasto de un cliente del de otro?
Crea una clave de API por cliente y ponle el nombre del encargo. Una cuenta admite hasta diez, que son más encargos simultáneos de los que lleva la mayoría de las consultoras. Cada llamada hecha con esa clave escribe una fila en el registro de peticiones con la herramienta, la URL de destino, los credits cobrados y la clave de la que vino, y el registro se filtra por clave y se exporta como CSV.
Eso hace dos cosas que nadie pide hasta que las necesita. El gasto del encargo pasa a ser una consulta en vez de una reconstrucción, y la investigación de un cliente queda separable de la de los demás cuando preguntan qué tienes sobre ellos. Al cerrar el encargo, borra la clave. Borrarla la revoca y conserva las filas, así que el registro de qué se obtuvo y para quién sobrevive al encargo.
El ejemplo de arriba pone al cliente en el nombre de la clave por la misma razón: el nombre es justo lo que vas a usar para filtrar.
¿Cuánto cuesta un encargo?
Un panorama de 30 proveedores, hecho como se explicó arriba:
| Paso | Llamadas | Credits |
|---|---|---|
| Lista larga: seis formas de búsqueda, una ejecución de deep_research | 1 + 1 | 40 |
| Encontrar las páginas: map_site por proveedor | 30 | 60 |
| Leer cuatro páginas por proveedor | 120 | 240 |
| Una pregunta hecha a cada página de precios | 30 | 90 |
| Total del encargo | 430 |
Los 1.000 credits únicos del plan gratuito cubren dos de ellos. A partir de ahí, un pack de 1K cuesta $3 y uno de 5K cuesta $14, comprados cuando un encargo los necesita en vez de con un plan mensual, lo cual es un argumento aparte. Al precio del pack, todo el panorama de arriba cuesta alrededor de un dólar y medio, lo bastante poco para meterlo dentro de los honorarios y lo bastante auditable si un cliente pregunta qué cubre esa línea.
¿Qué no va a hacer?
- Ninguna cifra de tamaño de mercado. No dimensiona nada ni hace previsiones. Si la diapositiva necesita un TAM, eso viene de un informe o un dataset.
- Ningún dato de contacto ni firmográfico. Lee las páginas que le indiques. No es una base de datos de empresas y no se solapa con una.
- Ningún login de cliente. Una cuenta, claves por cliente, y el cliente ve lo que le envías.
robots.txtse respeta por defecto. Una página no permitida se rechaza antes de obtener nada y no cuesta nada, y desactivar esa comprobación queda registrado contra tu clave.
Cuando el encargo se convierte en un contrato continuo y la pregunta pasa a ser "avísame cuando esto cambie", la respuesta es un monitor por cliente, no volver a ejecutar esto de forma programada.
Empieza gratis con 1.