curl --request POST \
--url https://api.example.com/ai/analyze-brief-discovery \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"brief": "<string>",
"language": "en",
"apiKey": "<string>",
"aiProvider": "gemini",
"openaiApiKey": "<string>",
"anthropicApiKey": "<string>",
"projectName": "<string>",
"clientName": "<string>",
"proposalType": "<string>",
"clarifyingAnswers": [
{}
],
"projectStartDate": "<string>",
"projectDeadline": "<string>",
"teamMembers": [
{
"roleName": "<string>",
"seniority": "Junior",
"allocation": 100,
"availability": 123
}
],
"userProfile": {
"providerType": "<string>",
"role": "<string>",
"seniority": "<string>",
"skills": [
"<string>"
],
"workAreas": [
"<string>"
],
"weeklyHours": 123,
"yearsOfExperience": 123,
"aiReadinessLevel": 2
},
"clientBudget": 123,
"clientBudgetType": "<string>",
"availableProviders": [
{
"roleName": "<string>",
"category": "team",
"costType": "hourly",
"rate": 123,
"fixedCost": 123
}
]
}
'import requests
url = "https://api.example.com/ai/analyze-brief-discovery"
payload = {
"brief": "<string>",
"language": "en",
"apiKey": "<string>",
"aiProvider": "gemini",
"openaiApiKey": "<string>",
"anthropicApiKey": "<string>",
"projectName": "<string>",
"clientName": "<string>",
"proposalType": "<string>",
"clarifyingAnswers": [{}],
"projectStartDate": "<string>",
"projectDeadline": "<string>",
"teamMembers": [
{
"roleName": "<string>",
"seniority": "Junior",
"allocation": 100,
"availability": 123
}
],
"userProfile": {
"providerType": "<string>",
"role": "<string>",
"seniority": "<string>",
"skills": ["<string>"],
"workAreas": ["<string>"],
"weeklyHours": 123,
"yearsOfExperience": 123,
"aiReadinessLevel": 2
},
"clientBudget": 123,
"clientBudgetType": "<string>",
"availableProviders": [
{
"roleName": "<string>",
"category": "team",
"costType": "hourly",
"rate": 123,
"fixedCost": 123
}
]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
brief: '<string>',
language: 'en',
apiKey: '<string>',
aiProvider: 'gemini',
openaiApiKey: '<string>',
anthropicApiKey: '<string>',
projectName: '<string>',
clientName: '<string>',
proposalType: '<string>',
clarifyingAnswers: [{}],
projectStartDate: '<string>',
projectDeadline: '<string>',
teamMembers: [
{roleName: '<string>', seniority: 'Junior', allocation: 100, availability: 123}
],
userProfile: {
providerType: '<string>',
role: '<string>',
seniority: '<string>',
skills: ['<string>'],
workAreas: ['<string>'],
weeklyHours: 123,
yearsOfExperience: 123,
aiReadinessLevel: 2
},
clientBudget: 123,
clientBudgetType: '<string>',
availableProviders: [
{
roleName: '<string>',
category: 'team',
costType: 'hourly',
rate: 123,
fixedCost: 123
}
]
})
};
fetch('https://api.example.com/ai/analyze-brief-discovery', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/ai/analyze-brief-discovery",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'brief' => '<string>',
'language' => 'en',
'apiKey' => '<string>',
'aiProvider' => 'gemini',
'openaiApiKey' => '<string>',
'anthropicApiKey' => '<string>',
'projectName' => '<string>',
'clientName' => '<string>',
'proposalType' => '<string>',
'clarifyingAnswers' => [
[
]
],
'projectStartDate' => '<string>',
'projectDeadline' => '<string>',
'teamMembers' => [
[
'roleName' => '<string>',
'seniority' => 'Junior',
'allocation' => 100,
'availability' => 123
]
],
'userProfile' => [
'providerType' => '<string>',
'role' => '<string>',
'seniority' => '<string>',
'skills' => [
'<string>'
],
'workAreas' => [
'<string>'
],
'weeklyHours' => 123,
'yearsOfExperience' => 123,
'aiReadinessLevel' => 2
],
'clientBudget' => 123,
'clientBudgetType' => '<string>',
'availableProviders' => [
[
'roleName' => '<string>',
'category' => 'team',
'costType' => 'hourly',
'rate' => 123,
'fixedCost' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/ai/analyze-brief-discovery"
payload := strings.NewReader("{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/ai/analyze-brief-discovery")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/ai/analyze-brief-discovery")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"questions": [],
"ambiguities": [],
"briefQualityScore": 5,
"summary": "",
"error": "<string>",
"inputType": "<string>",
"entities": {
"projectType": "",
"platforms": [],
"features": [],
"techStack": [
"<string>"
],
"userTypes": [
"<string>"
],
"integrations": [],
"clientContext": ""
},
"estimationImpact": {
"missingHighImpact": [
"<string>"
],
"missingMediumImpact": [
"<string>"
],
"wellDefined": [
"<string>"
]
},
"teamAssessment": {
"fitLevel": "no_team",
"capacityWarnings": [
"<string>"
],
"roleGaps": [
{
"roleName": "<string>",
"seniority": "Mid",
"reason": ""
}
],
"strengths": [
"<string>"
],
"recommendation": ""
},
"resourceAssessment": {
"suggestedLineItems": [
{
"label": "<string>",
"amount": 0,
"frequency": "one_time",
"reason": "",
"fromRoster": false
}
],
"missingResources": [
{
"roleName": "<string>",
"reason": "",
"estimatedCostRange": "",
"priority": "medium"
}
],
"toolsAndInfra": [
{
"name": "<string>",
"reason": "",
"estimatedMonthlyCost": ""
}
]
},
"typeRecommendations": {
"proposalType": "<string>",
"suggestedTerms": {},
"reasoning": ""
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Analyze Brief Discovery
Analyze a project brief to detect ambiguities and generate clarifying questions.
Required scope: read
This is the “Brief Discovery” step: before generating requirements, call this endpoint to identify gaps in the brief and get targeted questions to ask the client.
Returns:
briefQualityScore(1-10): overall quality of the briefquestions: clarifying questions with priority and categoryambiguities: ambiguous parts of the brief with suggestionssummary: brief summary
curl --request POST \
--url https://api.example.com/ai/analyze-brief-discovery \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"brief": "<string>",
"language": "en",
"apiKey": "<string>",
"aiProvider": "gemini",
"openaiApiKey": "<string>",
"anthropicApiKey": "<string>",
"projectName": "<string>",
"clientName": "<string>",
"proposalType": "<string>",
"clarifyingAnswers": [
{}
],
"projectStartDate": "<string>",
"projectDeadline": "<string>",
"teamMembers": [
{
"roleName": "<string>",
"seniority": "Junior",
"allocation": 100,
"availability": 123
}
],
"userProfile": {
"providerType": "<string>",
"role": "<string>",
"seniority": "<string>",
"skills": [
"<string>"
],
"workAreas": [
"<string>"
],
"weeklyHours": 123,
"yearsOfExperience": 123,
"aiReadinessLevel": 2
},
"clientBudget": 123,
"clientBudgetType": "<string>",
"availableProviders": [
{
"roleName": "<string>",
"category": "team",
"costType": "hourly",
"rate": 123,
"fixedCost": 123
}
]
}
'import requests
url = "https://api.example.com/ai/analyze-brief-discovery"
payload = {
"brief": "<string>",
"language": "en",
"apiKey": "<string>",
"aiProvider": "gemini",
"openaiApiKey": "<string>",
"anthropicApiKey": "<string>",
"projectName": "<string>",
"clientName": "<string>",
"proposalType": "<string>",
"clarifyingAnswers": [{}],
"projectStartDate": "<string>",
"projectDeadline": "<string>",
"teamMembers": [
{
"roleName": "<string>",
"seniority": "Junior",
"allocation": 100,
"availability": 123
}
],
"userProfile": {
"providerType": "<string>",
"role": "<string>",
"seniority": "<string>",
"skills": ["<string>"],
"workAreas": ["<string>"],
"weeklyHours": 123,
"yearsOfExperience": 123,
"aiReadinessLevel": 2
},
"clientBudget": 123,
"clientBudgetType": "<string>",
"availableProviders": [
{
"roleName": "<string>",
"category": "team",
"costType": "hourly",
"rate": 123,
"fixedCost": 123
}
]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
brief: '<string>',
language: 'en',
apiKey: '<string>',
aiProvider: 'gemini',
openaiApiKey: '<string>',
anthropicApiKey: '<string>',
projectName: '<string>',
clientName: '<string>',
proposalType: '<string>',
clarifyingAnswers: [{}],
projectStartDate: '<string>',
projectDeadline: '<string>',
teamMembers: [
{roleName: '<string>', seniority: 'Junior', allocation: 100, availability: 123}
],
userProfile: {
providerType: '<string>',
role: '<string>',
seniority: '<string>',
skills: ['<string>'],
workAreas: ['<string>'],
weeklyHours: 123,
yearsOfExperience: 123,
aiReadinessLevel: 2
},
clientBudget: 123,
clientBudgetType: '<string>',
availableProviders: [
{
roleName: '<string>',
category: 'team',
costType: 'hourly',
rate: 123,
fixedCost: 123
}
]
})
};
fetch('https://api.example.com/ai/analyze-brief-discovery', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/ai/analyze-brief-discovery",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'brief' => '<string>',
'language' => 'en',
'apiKey' => '<string>',
'aiProvider' => 'gemini',
'openaiApiKey' => '<string>',
'anthropicApiKey' => '<string>',
'projectName' => '<string>',
'clientName' => '<string>',
'proposalType' => '<string>',
'clarifyingAnswers' => [
[
]
],
'projectStartDate' => '<string>',
'projectDeadline' => '<string>',
'teamMembers' => [
[
'roleName' => '<string>',
'seniority' => 'Junior',
'allocation' => 100,
'availability' => 123
]
],
'userProfile' => [
'providerType' => '<string>',
'role' => '<string>',
'seniority' => '<string>',
'skills' => [
'<string>'
],
'workAreas' => [
'<string>'
],
'weeklyHours' => 123,
'yearsOfExperience' => 123,
'aiReadinessLevel' => 2
],
'clientBudget' => 123,
'clientBudgetType' => '<string>',
'availableProviders' => [
[
'roleName' => '<string>',
'category' => 'team',
'costType' => 'hourly',
'rate' => 123,
'fixedCost' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/ai/analyze-brief-discovery"
payload := strings.NewReader("{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/ai/analyze-brief-discovery")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/ai/analyze-brief-discovery")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"brief\": \"<string>\",\n \"language\": \"en\",\n \"apiKey\": \"<string>\",\n \"aiProvider\": \"gemini\",\n \"openaiApiKey\": \"<string>\",\n \"anthropicApiKey\": \"<string>\",\n \"projectName\": \"<string>\",\n \"clientName\": \"<string>\",\n \"proposalType\": \"<string>\",\n \"clarifyingAnswers\": [\n {}\n ],\n \"projectStartDate\": \"<string>\",\n \"projectDeadline\": \"<string>\",\n \"teamMembers\": [\n {\n \"roleName\": \"<string>\",\n \"seniority\": \"Junior\",\n \"allocation\": 100,\n \"availability\": 123\n }\n ],\n \"userProfile\": {\n \"providerType\": \"<string>\",\n \"role\": \"<string>\",\n \"seniority\": \"<string>\",\n \"skills\": [\n \"<string>\"\n ],\n \"workAreas\": [\n \"<string>\"\n ],\n \"weeklyHours\": 123,\n \"yearsOfExperience\": 123,\n \"aiReadinessLevel\": 2\n },\n \"clientBudget\": 123,\n \"clientBudgetType\": \"<string>\",\n \"availableProviders\": [\n {\n \"roleName\": \"<string>\",\n \"category\": \"team\",\n \"costType\": \"hourly\",\n \"rate\": 123,\n \"fixedCost\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"questions": [],
"ambiguities": [],
"briefQualityScore": 5,
"summary": "",
"error": "<string>",
"inputType": "<string>",
"entities": {
"projectType": "",
"platforms": [],
"features": [],
"techStack": [
"<string>"
],
"userTypes": [
"<string>"
],
"integrations": [],
"clientContext": ""
},
"estimationImpact": {
"missingHighImpact": [
"<string>"
],
"missingMediumImpact": [
"<string>"
],
"wellDefined": [
"<string>"
]
},
"teamAssessment": {
"fitLevel": "no_team",
"capacityWarnings": [
"<string>"
],
"roleGaps": [
{
"roleName": "<string>",
"seniority": "Mid",
"reason": ""
}
],
"strengths": [
"<string>"
],
"recommendation": ""
},
"resourceAssessment": {
"suggestedLineItems": [
{
"label": "<string>",
"amount": 0,
"frequency": "one_time",
"reason": "",
"fromRoster": false
}
],
"missingResources": [
{
"roleName": "<string>",
"reason": "",
"estimatedCostRange": "",
"priority": "medium"
}
],
"toolsAndInfra": [
{
"name": "<string>",
"reason": "",
"estimatedMonthlyCost": ""
}
]
},
"typeRecommendations": {
"proposalType": "<string>",
"suggestedTerms": {},
"reasoning": ""
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
Schema for brief discovery analysis request (IN-25).
10 - 50000es, en gemini, openai, anthropic 200200502020Show child attributes
Show child attributes
Lightweight profile snapshot for freelancer/team competency assessment.
Show child attributes
Show child attributes
20Show child attributes
Show child attributes
Response
Successful Response
Schema for brief discovery response (multi-agent pipeline).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
1 <= x <= 10Structured entities extracted from the user's input by the Scope Analyst.
Show child attributes
Show child attributes
How gaps affect the accuracy of the estimate.
Show child attributes
Show child attributes
Quimy's assessment of team fitness for the project.
Show child attributes
Show child attributes
Quimy's resource/provider assessment for the project.
Show child attributes
Show child attributes
Type-specific commercial recommendations from gap_detective.
Show child attributes
Show child attributes