Use AI to quickly discover companies that likely use a product or stack from a natural-language prompt.
Ideal for hypothesis generation (prospecting) — then verify deterministically via standard endpoints.
Base URL: https://api.salescaddy.ai/api
Endpoint
POST /ai/find-customers-of-products
Headers
Authorization: Bearer <token>
— requiredX-On-Behalf-Of-User: [email protected]
— required (AI actions are attributed to a user)
Query parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
prompt | string | Yes | — | Natural-language question/instruction |
size | int | No | 10 | Max number of suggested companies to return |
Response (trimmed, illustrative)
[
{ "companyDomain": "acme.com", "companyName": "Acme Inc.", "confidence": 0.82 },
{ "companyDomain": "example.org", "companyName": "Example Org", "confidence": 0.77 }
]
AI results are probabilistic. Always validate with deterministic endpoints:
POST /companies/{domain}/products-in-use
— verify specificproductId
s.GET /companies/{domain}/products/paged
— fetch installed products.GET /companies/{domain}/cohort/{cohort}/metrics/usage
— benchmark adoption.
Example — Basic query
curl -sS -X POST "https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Who%20uses%20Snowflake%3F&size=10" -H "Authorization: Bearer $TOKEN" -H "X-On-Behalf-Of-User: [email protected]"
const url = "https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Who%20uses%20Snowflake%3F&size=10";
const res = await fetch(url, { method: "POST", headers: {
Authorization: `Bearer ${process.env.TOKEN}`,
"X-On-Behalf-Of-User": "[email protected]"
}});
console.log(await res.json());
import os, requests
r = requests.post("https://api.salescaddy.ai/api/ai/find-customers-of-products",
params={"prompt":"Who uses Snowflake?","size":10},
headers={"Authorization": f"Bearer {os.environ['TOKEN']}",
"X-On-Behalf-Of-User": "[email protected]"})
print(r.json())
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
http.DefaultRequestHeaders.Add("X-On-Behalf-Of-User","[email protected]");
var res = await http.PostAsync("https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Who%20uses%20Snowflake%3F&size=10", null);
Console.WriteLine(await res.Content.ReadAsStringAsync());
Example — Multi-product or stack query
curl -sS -X POST "https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Which%20companies%20use%20Datadog%2C%20Kubernetes%2C%20and%20AWS%20together%3F&size=15" -H "Authorization: Bearer $TOKEN" -H "X-On-Behalf-Of-User: [email protected]"
const url = "https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Which%20companies%20use%20Datadog%2C%20Kubernetes%2C%20and%20AWS%20together%3F&size=15";
const res = await fetch(url, { method: "POST", headers: {
Authorization: `Bearer ${process.env.TOKEN}`,
"X-On-Behalf-Of-User": "[email protected]"
}});
console.log(await res.json());
r = requests.post("https://api.salescaddy.ai/api/ai/find-customers-of-products",
params={"prompt":"Which companies use Datadog, Kubernetes, and AWS together?","size":15},
headers={"Authorization": f"Bearer {os.environ['TOKEN']}",
"X-On-Behalf-Of-User": "[email protected]"})
print(r.json())
var url = "https://api.salescaddy.ai/api/ai/find-customers-of-products?prompt=Which%20companies%20use%20Datadog%2C%20Kubernetes%2C%20and%20AWS%20together%3F&size=15";
var res2 = await http.PostAsync(url, null);
Console.WriteLine(await res2.Content.ReadAsStringAsync());
Prompting tips (high signal)
- Be specific: name products and context (e.g., segment, region, size).
- Add constraints: “public companies”, “in EMEA”, “>1k employees”.
- Prefer questions that expect company lists (e.g., “Who uses …?”).
- For vendor-oriented prospecting, include vendor domains (e.g., microsoft.com).
Examples
- “Who uses Snowflake in EMEA among hospitality companies?”
- “Which US public companies use Datadog and Kubernetes?”
- “Find Europe-based enterprises using Salesforce and Slack.”
Post-processing (verification & ranking)
-
Verify suggested domains deterministically:
POST /companies/{domain}/products-in-use
withproductIds
you care about.- Or fetch
GET /companies/{domain}/products/paged
and check presence.
-
Score/rank by AI
confidence
, then by deterministic signals (e.g.,intensity
from Usage Metrics). -
Track outcomes: persist accepted/rejected suggestions to continuously improve your pipeline.
Errors
Code | Meaning | How to fix |
---|---|---|
400 | Bad request | Provide a non-empty prompt ; validate size (positive int). |
401 | Unauthorized | Provide/refresh Bearer token. |
403 | Forbidden | Include X-On-Behalf-Of-User ; ensure your plan permits AI usage. |
404 | Not found | No candidates matched the prompt (try broadening). |
429 | Rate limit exceeded | Retry with exponential backoff; respect Retry-After . |
500 | Internal server error | Retry later; contact support if persistent. |