Skip to main content
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
}

Documentation Index

Fetch the complete documentation index at: https://docs.jeanmemory.com/llms.txt

Use this file to discover all available pages before exploring further.

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.
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.
You can also register tenant-specific labels with us at onboarding (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:
SignalSuggested weight
Casual click / open0.25
Like / swipe1.0
Conversion2.0+
Long-term retention5.0+
Higher-weighted triplets pull harder on the gradient.

Example response

{
  "accepted": 3,
  "triplets_generated": 6,
  "triplets_pending_train": 4218
}
When 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

Authorization
string
header
required

API key issued by Jean Technologies. Contact the team for access.

Body

application/json
domain
string
required
Example:

"dating"

items
object[]
required

Response

200 - application/json

Feedback accepted

accepted
integer
Example:

2

triplets_generated
integer
Example:

4

triplets_pending_train
integer
Example:

318