jevrecipes

Recipe catalog / review-response-fit

Check whether a review response addresses the review

Does response engage with the specific complaints and praise raised in review, rather than offering a generic thank-you or apology?

A hospitality or support team drafts public replies to guest reviews and wants to catch templated responses that ignore what the reviewer actually said before they are posted.

Explore this recipe interactively ยท Source and implementation guide

Use review-response-fit in TypeScript

Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.

import { reviewResponseFit } from 'jev-recipes/review-response-fit';

const result = await reviewResponseFit({
  "review": "Three stars. The rooftop pool and the breakfast were genuinely excellent, and the front desk upgraded us without asking. But the air conditioning in room 412 rattled all night and maintenance never showed up after we called twice. We also waited 40 minutes for the airport shuttle that was supposed to run every 15.",
  "response": "Thank you for staying with us and for the kind words about the rooftop pool and breakfast; I have passed your compliment to the front desk team. I am sorry about the noisy air conditioning unit in 412 and that maintenance did not respond after two calls; that unit has now been replaced and we are reviewing how after-hours requests are dispatched. The shuttle delay is not the service we promise, and we have added a second vehicle during peak hours. I hope you will give us another chance.",
  "minConfidence": 0.8
});
console.log(result);

Input contract

FieldTypeNeeded
reviewstringRequired
responsestringRequired
minConfidencenumberOptional
Full input and result schemas
{
  "input": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "review": {
        "type": "string"
      },
      "response": {
        "type": "string"
      },
      "minConfidence": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      }
    },
    "required": [
      "review",
      "response"
    ]
  },
  "result": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "model": {
        "type": "string"
      },
      "usage": {
        "type": "object",
        "properties": {
          "input_tokens": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "output_tokens": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "input_tokens",
          "output_tokens"
        ],
        "additionalProperties": false
      },
      "status": {
        "type": "string",
        "enum": [
          "ready",
          "review"
        ]
      },
      "probability": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      },
      "confidence": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      },
      "verdict": {
        "type": "string",
        "enum": [
          "addresses",
          "generic"
        ]
      }
    },
    "required": [
      "model",
      "usage",
      "status",
      "probability",
      "confidence",
      "verdict"
    ],
    "additionalProperties": false
  }
}

Saved example result

This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo review-response-fit.

{
  "model": "demo-fixture",
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0
  },
  "status": "ready",
  "probability": 0.94,
  "confidence": 0.94,
  "verdict": "addresses"
}

Evaluation evidence

Fixture only

No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.

Use the evaluation guide to measure this decision on your own labeled cases.

Limitations

Related recipes