Skip to content

Instantly share code, notes, and snippets.

@morisono
Forked from RSpencerFink/zapier-schema.json
Created March 30, 2026 09:06
Show Gist options
  • Select an option

  • Save morisono/68d1bbba154c5c70d2b5b2c9e2b65dab to your computer and use it in GitHub Desktop.

Select an option

Save morisono/68d1bbba154c5c70d2b5b2c9e2b65dab to your computer and use it in GitHub Desktop.
{
"title": "LocalNewsletterArticleV2",
"type": "object",
"additionalProperties": false,
"required": [
"slug",
"title",
"headlines",
"dek",
"lede_paragraph",
"article_html",
"sections",
"key_facts",
"entities",
"source",
"meta",
"quotes",
"citations"
],
"properties": {
"slug": { "type": "string", "pattern": "^[a-z0-9-]+$" },
"title": { "type": "string", "minLength": 8, "maxLength": 90 },
"headlines": {
"type": "array",
"minItems": 2,
"maxItems": 5,
"items": { "type": "string", "minLength": 8, "maxLength": 90 }
},
"dek": { "type": "string", "minLength": 12, "maxLength": 180 },
"lede_paragraph": {
"type": "string",
"description": "First paragraph that hooks the reader; HTML allowed",
"minLength": 40
},
"lede_style": {
"type": "string",
"enum": ["scene", "stat", "impact"],
"description": "Style of the opening lede"
},
"article_html": {
"type": "string",
"description": "Full article body in HTML (200–400 words). Use <p>, <h2>, <ul>, <blockquote>."
},
"sections": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["heading", "body_html"],
"properties": {
"heading": { "type": "string" },
"body_html": { "type": "string", "description": "HTML allowed" }
}
}
},
"pull_quotes": {
"type": "array",
"items": { "type": "string" },
"description": "Short, compelling excerpts suitable for callouts"
},
"quotes": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["text", "speaker"],
"properties": {
"text": { "type": "string", "description": "Verbatim quote from transcript" },
"speaker": { "type": "string" },
"role": { "type": "string" },
"start_time": { "type": "number" },
"end_time": { "type": "number" }
}
}
},
"key_facts": {
"type": "array",
"minItems": 3,
"maxItems": 7,
"items": { "type": "string" }
},
"citations": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["label", "url"],
"properties": {
"label": { "type": "string" },
"url": { "type": "string" },
"start_time": { "type": "number" },
"end_time": { "type": "number" }
}
}
},
"entities": {
"type": "object",
"additionalProperties": false,
"required": ["people", "organizations", "locations"],
"properties": {
"people": { "type": "array", "items": { "type": "string" } },
"organizations": { "type": "array", "items": { "type": "string" } },
"locations": { "type": "array", "items": { "type": "string" } }
}
},
"tags": { "type": "array", "items": { "type": "string" } },
"source": {
"type": "object",
"additionalProperties": false,
"required": ["type", "url"],
"properties": {
"type": { "type": "string", "enum": ["vimeo", "youtube", "audio", "pdf", "other"] },
"url": { "type": "string" },
"recorded_at": { "type": "string", "format": "date-time" },
"title": { "type": "string" }
}
},
"meta": {
"type": "object",
"additionalProperties": false,
"required": ["tone", "reading_time_minutes", "word_count", "intrigue_score"],
"properties": {
"tone": { "type": "string", "enum": ["neutral", "positive", "negative"] },
"reading_time_minutes": { "type": "integer", "minimum": 1 },
"word_count": { "type": "integer", "minimum": 50 },
"intrigue_score": { "type": "integer", "minimum": 1, "maximum": 5 }
}
},
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment