> ## Documentation Index
> Fetch the complete documentation index at: https://docs.theswarm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Daily Job Changes

> How to query daily job-change signals (new roles, promotions, departures) from The Swarm API.

The Swarm's Daily Job Change data is a continuous, time-stamped feed of professional movements — new employment, promotions, and departures — embedded directly in the Profile dataset.

## What's in the dataset

* **Coverage** — over 100M profiles monitored weekly; \~2–3M job and role changes detected each month.
* **Freshness** — target accuracy within 14 days of an event; 90% of the database updated within 7 days of a detected change.
* **On-demand refresh** — for high-priority targets, schedule refreshes via the [Refresh Profile](/docs/on-demand/refresh-profile) endpoint.

## Access methods

| Method              | Use it when                                                                                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **API (queryable)** | You want to pull fresh job changes daily, filtered to your ICP. Query via [Search Profiles](/docs/endpoints/v3/search-profiles) + [Fetch Profile](/docs/endpoints/v3/fetch-profile). |
| **Flat file**       | You want the full daily stream as a file drop. See [Flat File](/docs/flat-files/overview).                                                                                           |

## Key timestamp fields

All timestamps are queryable through the Search endpoint.

| Field                        | Purpose                                                                                                      |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **`current_job_updated_at`** | **The main job-change filter.** Updated whenever the primary experience changes (company, title, end date).  |
| `latest_role_change_at`      | Start date of the most recent **job title change**, including same-company promotions.                       |
| `latest_company_change_at`   | Start date of the most recent **company change**.                                                            |
| `job_start_date`             | Start date of the latest employment — the greater of `latest_company_change_at` and `latest_role_change_at`. |
| `updated_at`                 | Any field on the profile changed. Too noisy for job-change filtering on its own.                             |
| `last_refresh_at`            | Last time the profile was re-checked.                                                                        |

<Tip>
  Use **`current_job_updated_at`** as your primary filter. Use `latest_role_change_at` vs `latest_company_change_at` to distinguish promotions from company moves.
</Tip>

## Quick example — job changes in the last 24 hours

```json theme={null}
{
  "query": {
    "range": {
      "profile_info.current_job_updated_at": {
        "gte": "now-1d/d",
        "lt": "now/d"
      }
    }
  },
  "limit": 1000
}
```

For more query patterns (promotions only, into a target company, in-network only, etc.), see [Job changes examples](/docs/examples/job-changes-endpoint).

## Related

* [Search Profiles](/docs/endpoints/v3/search-profiles)
* [Fetch Profile](/docs/endpoints/v3/fetch-profile)
* [OpenSearch mapping for profiles](/docs/enrichment-data/profile/mappings-v2)
* [Flat File](/docs/flat-files/overview)
