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

> ## Agent Instructions
> Fetch /llms.txt for the complete page index before exploring further. Every docs page is available as markdown by appending .md to its URL. Coding agents should start at /for-agents/coding-agents.md.

# Find creators in your niche

> Discovers the creators actually publishing in a niche and returns a qualified shortlist. Every name carries its evidence: qualification posts, recent record, and observed brand work. Use when finding influencers or creators in a niche, building a campaign shortlist, or vetting candidates by what they actually publish.

This cookbook finds the creators in your niche and comes back with a shortlist your client can interrogate. You don't run it; your agent does.

## Run it

Paste this to your agent, filled in:

```text theme={null}
Fetch https://tryklint.ai/cookbooks/find-creators.md and execute the
cookbook it contains with my context:

- niche or brief: [who you need, e.g. professional dog groomers who show
  their own grooming work on camera]
- audience band: [follower range, e.g. 5,000 to 100,000]
- location: [optional, e.g. US]
- candidates: [optional: handles you already have; the cookbook vets them
  instead of discovering new ones]
```

The URL carries everything your agent needs. Everything below this line addresses the agent executing it.

## Context for the agent

Klint is the social context API: it searches and extracts Instagram posts and accounts, returned with transcripts, on-screen text, and creative structure already analyzed. Base URL `https://api.tryklint.ai`. Every request needs `Authorization: Bearer $KLINT_API_KEY`; never print or echo the key. This page is the source of truth for this procedure; work from the fetched copy, not memory. The full documentation index is at `https://tryklint.ai/llms.txt`, and the whole API contract is at `https://tryklint.ai/for-agents/coding-agents.md`. Last updated July 18, 2026.

## Inputs

Verify you have all of these before calling the API. If any are missing, ask your operator; don't guess.

| Input            | What it is                                                        | Required                     | Source                 |
| ---------------- | ----------------------------------------------------------------- | ---------------------------- | ---------------------- |
| `niche or brief` | The niche to search, or who the campaign needs, as plain language | yes                          | operator               |
| `audience band`  | Follower range for candidates                                     | no; default 5,000 to 100,000 | operator               |
| `location`       | Declared-location constraint                                      | no                           | operator               |
| `candidates`     | Existing handles to vet instead of discovering                    | no                           | operator               |
| `KLINT_API_KEY`  | API key                                                           | yes                          | operator's environment |

## Objectives

Produce exactly one artifact: a shortlist of five to ten creators, each with a dossier in the Output format below, every claim backed by post IDs from your own calls. Nothing else counts as done.

## Procedure

<Steps>
  <Step title="Discover candidates">
    Skip this step if the operator supplied `candidates`. Otherwise discover them with `POST https://api.tryklint.ai/v1/instagram/accounts/search`. The account query qualifies on current identity: the profile presented and the content actually published. The posts block demands recent proof, so nobody qualifies on a bio keyword alone.

    ```json theme={null}
    {
      "account": {
        "query": "[the brief, as identity: e.g. professional dog groomers who demonstrate their own grooming work on camera]",
        "filters": {
          "followers_count": { "gte": 5000, "lte": 100000 },
          "declared_locations": { "contains_any": [{ "country_code": "US" }] }
        },
        "posts": {
          "minimum_matching_posts": 3,
          "filters": {
            "posted_at": { "gte": "[90 days ago, RFC 3339]" }
          }
        }
      },
      "limit": 20
    }
    ```

    Drop the `declared_locations` filter if the operator gave no location. Accounts that never declared one can't match it; don't treat that as disqualifying on its own.
  </Step>

  <Step title="Pull each candidate's recent record">
    Per candidate, a handle-scoped sweep. Filters-only searches may sort; `sort` and `query` never appear together.

    ```json theme={null}
    {
      "post": {
        "filters": {
          "posted_at": { "gte": "[90 days ago]" }
        },
        "author": {
          "filters": { "handle": { "in": ["[candidate handle]"] } }
        }
      },
      "sort": { "by": "posted_at", "order": "desc" },
      "limit": 20
    }
    ```

    Note cadence, format mix, and the share of posts matching the brief's territory.
  </Step>

  <Step title="Check observed brand work">
    The same handle scope with `"has_paid_partnership_label": true` added to the post filters. This returns posts Instagram labeled as paid partnerships. It misses deals without the label; say "observed brand work," never "all brand work." Extract the labeled posts to see partners, offers, and how the creator builds sponsored content.
  </Step>

  <Step title="Extract the qualification evidence">
    For each shortlisted creator, `GET https://api.tryklint.ai/v1/instagram/posts/{id}` on the two or three posts that best prove the brief's requirements. These are the receipts the dossier cites.
  </Step>

  <Step title="Verify before you report">
    Check against the Objectives: every creator has qualification evidence with post IDs, a recent-record summary, and a brand-work note. Flags stay flags; you never issue a fraud or authenticity verdict. If fewer than five creators qualify, report the thin result. Offer to widen the band or relax the brief; don't pad.
  </Step>
</Steps>

## Output format

Use exactly this structure, one block per creator:

```markdown theme={null}
# Shortlist: [brief], [date]

## @[handle], [follower count]
- Why they qualify: [one sentence tied to the brief] (posts: [IDs])
- Recent record: [cadence, formats, share of posts on-brief]
- Observed brand work: [partners and frequency, or "none observed in window"]
- Worth a human look: [anything odd, or "nothing flagged"]

## @[handle] ...

## Scope
Searched [brief] at [band], [location]. [Substitutions, thin results, or
tracking caveats worth knowing.]
```

## Boundaries

* Qualification rests on the public published record. Audience demographics, story metrics, and rates are not public observations; don't estimate them.
* No fraud verdicts. Surface things worth a human look; never stamp an account fake or authentic.
* Absence is bounded by what Klint tracks. A creator with no observed brand work may simply predate tracking; the Scope section says so.
