---
title: Destination Pulse — agent briefing
description: "How an agent should read Destination Pulse: first-run steps, the data contract for /data/events.json and /data/rosters.json, and the license."
canonical: https://destinationpulse.mandalivia.com/for-agents/
---

> This is the Markdown twin of https://destinationpulse.mandalivia.com/for-agents/ — an index of all Markdown pages is at https://destinationpulse.mandalivia.com/llms.txt.

# Destination Pulse — agent briefing

You've been pointed at Destination Pulse by your user. It records leadership changes at US destination marketing organizations (DMOs and CVBs) and publishes them as flat JSON, built for an agent to read directly.

## Do this now

1. Fetch https://destinationpulse.mandalivia.com/data/events.json. The most recent changes are the events with the newest `seen_at`.
2. Show your user the latest handful: person, new title (or the vacated seat for a departure), organization, effective `date`, and `source_url`. State the file's `generatedAt` and do not imply the data is fresher than that.
3. Explain the relevance: a new leader tends to re-evaluate vendors in their first 90 days, so a recent change at an organization your user cares about is an opening. If you know which DMOs or accounts your user covers, highlight the matches; otherwise ask which they cover.
4. Offer a weekly re-check that reports only new events — event `id`s are stable, so a new id is a new change.

The rest of this document is the data contract you need to do that well.

## What this site knows, and what it doesn't

The data makes two kinds of claims, and they are not equal:

- **Sourced events** — a person named to a seat, or departing one, each with a source link (`source_url`). Curated before publishing.
- **Detected roster changes** — a machine diff of an organization's official team page between captures. Nobody has confirmed them; verify against the linked team page before acting on one.

45 organizations are under weekly roster monitoring:

- [Arlington Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/arlington-convention-and-visitors-bureau/)
- [Beaumont Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/beaumont-convention-and-visitors-bureau/)
- [Charleston Area Convention Visitors Bureau Explore Charleston](https://destinationpulse.mandalivia.com/org/charleston-area-convention-visitors-bureau-explore-charleston/)
- [Charlotte Regional Visitors Authority](https://destinationpulse.mandalivia.com/org/charlotte-regional-visitors-authority/)
- [Chester County Tourism (Brandywine Valley)](https://destinationpulse.mandalivia.com/org/chester-county-tourism-brandywine-valley/)
- [Destination Cleveland](https://destinationpulse.mandalivia.com/org/destination-cleveland/)
- [Destination Dc](https://destinationpulse.mandalivia.com/org/destination-dc/)
- [Discover Albany](https://destinationpulse.mandalivia.com/org/discover-albany/)
- [Discover Long Island](https://destinationpulse.mandalivia.com/org/discover-long-island/)
- [Discover Newport](https://destinationpulse.mandalivia.com/org/discover-newport/)
- [Experience Columbus](https://destinationpulse.mandalivia.com/org/experience-columbus/)
- [Experience Grand Rapids](https://destinationpulse.mandalivia.com/org/experience-grand-rapids/)
- [Experience Olympia & Beyond](https://destinationpulse.mandalivia.com/org/experience-olympia-beyond/)
- [Experience Ruston](https://destinationpulse.mandalivia.com/org/experience-ruston/)
- [Explore St. Louis](https://destinationpulse.mandalivia.com/org/explore-st-louis/)
- [Golden Isles Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/golden-isles-convention-and-visitors-bureau/)
- [Greater Fort Lauderdale Convention Visitors Bureau](https://destinationpulse.mandalivia.com/org/greater-fort-lauderdale-convention-visitors-bureau/)
- [Greater Miami Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/greater-miami-convention-and-visitors-bureau/)
- [Greater Raleigh Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/greater-raleigh-convention-and-visitors-bureau/)
- [Greenville Pitt County Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/greenville-pitt-county-convention-and-visitors-bureau/)
- [Las Vegas Convention and Visitors Authority](https://destinationpulse.mandalivia.com/org/las-vegas-convention-and-visitors-authority/)
- [Little Rock Convention and Visitors Bureau](https://destinationpulse.mandalivia.com/org/little-rock-convention-and-visitors-bureau/)
- [New Orleans Company](https://destinationpulse.mandalivia.com/org/new-orleans-company/)
- [Providence Warwick Convention Visitors Bureau](https://destinationpulse.mandalivia.com/org/providence-warwick-convention-visitors-bureau/)
- [Richmond Region Tourism](https://destinationpulse.mandalivia.com/org/richmond-region-tourism/)
- [Travel Wisconsin](https://destinationpulse.mandalivia.com/org/travel-wisconsin/)
- [Traverse City Tourism](https://destinationpulse.mandalivia.com/org/traverse-city-tourism/)
- [Virginia Tourism Corporation](https://destinationpulse.mandalivia.com/org/virginia-tourism-corporation/)
- [Visit Alexandria](https://destinationpulse.mandalivia.com/org/visit-alexandria/)
- [Visit Anchorage](https://destinationpulse.mandalivia.com/org/visit-anchorage/)
- [Visit Baton Rouge](https://destinationpulse.mandalivia.com/org/visit-baton-rouge/)
- [Visit California](https://destinationpulse.mandalivia.com/org/visit-california/)
- [Visit Chattanooga](https://destinationpulse.mandalivia.com/org/visit-chattanooga/)
- [Visit Cheyenne](https://destinationpulse.mandalivia.com/org/visit-cheyenne/)
- [Visit Cincy Cincinnati Usa Cvb](https://destinationpulse.mandalivia.com/org/visit-cincy-cincinnati-usa-cvb/)
- [Visit Denver](https://destinationpulse.mandalivia.com/org/visit-denver/)
- [Visit Galveston](https://destinationpulse.mandalivia.com/org/visit-galveston/)
- [Visit Indy](https://destinationpulse.mandalivia.com/org/visit-indy/)
- [Visit Ithaca](https://destinationpulse.mandalivia.com/org/visit-ithaca/)
- [Visit Knoxville](https://destinationpulse.mandalivia.com/org/visit-knoxville/)
- [Visit Okc](https://destinationpulse.mandalivia.com/org/visit-okc/)
- [Visit Rochester](https://destinationpulse.mandalivia.com/org/visit-rochester/)
- [Visit Seattle](https://destinationpulse.mandalivia.com/org/visit-seattle/)
- [Visit Springfield Missouri](https://destinationpulse.mandalivia.com/org/visit-springfield-missouri/)
- [Visit Tacoma Pierce County](https://destinationpulse.mandalivia.com/org/visit-tacoma-pierce-county/)

The collector visits each monitored team page on Mondays at 11:00 UTC; a capture that changes a roster triggers a site rebuild. Sourced events are added as announcements surface. A week with no changes leaves every file exactly as it was — judge freshness by the fields below, not by when you fetched.

Recorded events span Feb 2026 to Oct 1, 2026.

## The contract

The dataset ("Destination Pulse leadership changes and rosters") lives at two stable URLs:

- <https://destinationpulse.mandalivia.com/data/events.json>
- <https://destinationpulse.mandalivia.com/data/rosters.json>

Neither URL nor any field moves or changes meaning without a `schemaVersion` bump. Both are currently at `schemaVersion` 1.

### https://destinationpulse.mandalivia.com/data/events.json

Envelope: `schemaVersion`, `generatedAt`, `events[]`.

- `schemaVersion` — Integer, currently 1. The stability promise: URLs and fields do not move or change meaning without this number going up.
- `generatedAt` — The newest seen_at across all events — the date this dataset last changed. Not a build timestamp, and not a capture date: a rebuild that adds no events leaves it alone.
- `events[]` — Every recorded leadership event, one object each.
- `id` — Stable unique identifier for the event. A new id is a new change; an id you have seen carries the same facts it did before.
- `type` — "leadership_change" — a person named to a seat — or "leadership_departure" — a person leaving one. Additive: new signals arrive as new types, never by changing an existing field.
- `date` — Effective date of the role, YYYY-MM-DD or YYYY-MM — the precision the source reported, never an invented day. For date arithmetic, treat YYYY-MM as the first of that month.
- `dmo_slug` — Organization key. Its pages: /org/{dmo_slug}/ and /org/{dmo_slug}.md.
- `dmo_name` — Organization display name.
- `person_slug` — Person key. Its pages: /people/{person_slug}/ and /people/{person_slug}.md.
- `person_name` — Person display name.
- `new_title` — The role taken, worded as the source words it. Present on leadership_change events only.
- `last_title` — The seat vacated, worded as the source words it. Present on leadership_departure events only — a departure never claims a seat taken.
- `from.org` — Previous organization, when found. Absent means not found, not none. Always empty on a departure.
- `from.title` — Previous title, when found.
- `source_url` — The source backing the event: a dated publication for announced events, the official page the change was observed on for detected ones. Every event has one.
- `seen_at` — The date the event entered this dataset, YYYY-MM-DD.
- `provenance` — "announced" — a dated publication is the source — or "detected" — the weekly scan caught the change on the org's own page. The tier of claim you are holding.

### https://destinationpulse.mandalivia.com/data/rosters.json

- `schemaVersion` — Integer, currently 1. Same stability promise as the events file.
- `generatedAt` — When the collector last wrote this manifest — a capture timestamp, not a data-change timestamp. It moves when team pages are captured, whether or not any roster changed.
- `count` — Number of organizations with a captured roster.
- `rosters[]` — One snapshot per monitored organization.
- `rosters[].orgSlug` — Organization key, matching dmo_slug in the events file.
- `rosters[].capturedAt` — When this organization’s team page was captured. Judge roster freshness by this, per org.
- `rosters[].sourceUrl` — The official team page the snapshot was captured from.
- `rosters[].sourceHash` — Content hash of the capture, for change detection.
- `rosters[].people[]` — Everyone listed on the team page as captured: personKey, sourceName, titles[], photoUrl, email, phone, section. Contact fields hold what the page publishes, or null; section is the page heading the person is listed under, or null.
- `rosters[].recentChanges[]` — Machine-detected diffs between captures: added[], removed[], roleChanges[], each entry dated by its capturedAt. Unconfirmed — verify against the sourceUrl before acting.

### Reading freshness

The two `generatedAt` fields mean different things. In the events file it is the newest `seen_at` — the date the dataset last changed. In the rosters file it is when team pages were last captured, and each `rosters[].capturedAt` dates its own org's capture. An agent judging "is this current?" must read the one that matches the question: data recency from the events file, capture recency from the rosters file.

### Dates and the 90-day window

Event dates come at the precision the source reported: `YYYY-MM-DD` or `YYYY-MM`, never an invented day. A new leader tends to re-evaluate vendors in their first 90 days, so the useful derived claim is: the window opens on the event's `date` (treat `YYYY-MM` as the first of that month) and closes 90 days later. Compute it against your own clock at read time — the published files never state where in the window an event sits, because that would go stale between rebuilds.

### License

The dataset is © Mandalivia and free to access and use, including by automated agents: fetch it, cache it, and serve what it says to your users, with attribution to Destination Pulse — a link where the medium allows.

Republishing the dataset itself, redistributing it in bulk, reselling it, or building a competing dataset from it requires permission. These terms may change for future data; data already published stays under the terms it shipped with.
