Submit feedback
curl --request POST \
--url https://api.jeantechnologies.com/v1/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "dating",
"items": [
{
"seeker_id": "u_alice",
"candidate_id": "u_bob",
"outcome": "accepted",
"weight": 1
}
]
}
'{
"accepted": 2,
"triplets_generated": 4,
"triplets_pending_train": 318
}Feedback & Training
Submit feedback
Report match outcomes. Feeds the training loop for your domain ranker.
POST
/
feedback
Submit feedback
curl --request POST \
--url https://api.jeantechnologies.com/v1/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "dating",
"items": [
{
"seeker_id": "u_alice",
"candidate_id": "u_bob",
"outcome": "accepted",
"weight": 1
}
]
}
'{
"accepted": 2,
"triplets_generated": 4,
"triplets_pending_train": 318
}The moat. Every outcome you submit accumulates into training triplets used to fine-tune your domain’s ranker. Past a threshold, fine-tunes run automatically.
Send outcomes as soon as you have them. Noisy is fine; the loss function is tolerant. You can also batch.
Higher-weighted triplets pull harder on the gradient.
When
curl https://api.jeantechnologies.com/v1/feedback \
-H "Authorization: Bearer $JEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "dating",
"items": [
{ "seeker_id": "u_alice", "candidate_id": "u_bob", "outcome": "accepted" },
{ "seeker_id": "u_alice", "candidate_id": "u_carl", "outcome": "rejected" },
{ "seeker_id": "u_alice", "candidate_id": "u_dan", "outcome": "converted", "weight": 2.0 }
]
}'
Outcome labels
Built-in labels work everywhere:accepted: user signaled positive intent (like, swipe right, save).rejected: user signaled negative intent (skip, dismiss).converted: strongest positive (matched, hired, deal closed, second date).expired: no decision before timeout.
super_like, interview_passed, paid_subscription, etc.) and use them here directly.
Weights
weight defaults to 1.0. Use it to express how strong an outcome is:
| Signal | Suggested weight |
|---|---|
| Casual click / open | 0.25 |
| Like / swipe | 1.0 |
| Conversion | 2.0+ |
| Long-term retention | 5.0+ |
Example response
{
"accepted": 3,
"triplets_generated": 6,
"triplets_pending_train": 4218
}
triplets_pending_train crosses your domain’s threshold (negotiated at onboarding, typically 1K-10K), a fine-tune kicks off automatically. Force one manually with POST /train.Authorizations
API key issued by Jean Technologies. Contact the team for access.
Body
application/json
⌘I

