Skill · Sales and Marketing

AI Citation Target Hunt

Each Tuesday, rank new cited pages and fresh articles, verify existing listings, and post a 12-line action summary. Queue outreach for human review without contacting third parties.

Sam ClaassenCreated by Sam Claassen from type.com

At a glance

AI Citation Target Hunt is an AI skill for sales & marketing teams that you can use in Claude Code, Codex, or type.com.

Updated

What it does

  • Rank feasible citation targets with a transparent score and P1/P2/P3 priorities.
  • Recheck Contacted, Replied and Listed rows to detect new or dropped mentions.
  • Prepare a deduplicated human-review queue with verified contact routes.

Before you start

  • Brand domains, product model, category topics, competitors and first-run coverage date.
  • Promptwatch Custom API connection or equivalent complete grouped citation data.
  • Read-only web research and scoped access to citation targets and listings docs.
  • Configured owner, report channel, timezone and the AEO master doc.

See an example

Example output from a sample run. Company names and figures are sample data.

Real dry run on type.com's own site and tracking, Oct 22, 2026. Nothing was posted. Some names and contact details are redacted.

Posts to the report channel, Tuesdays at 8am; this historic dry run still names the original outreach handoff:

*Citation hunt — Oct 22* · 6 new targets (3 P1) · 6 queued for outreach (rows 86–91) · 0 went Listed · 0 Dropped
*Do next*
1. Listings task (today 10am): contact rows 86–91 — top: agentstackwatch.com: AI agent pricing compared (2 cites)
2. Sam: decide on rework.com row 17 route — a 3rd rework article is now cited (15 Platforms for Procurement, 2 cites); only LinkedIn DM to [editor] works
3. agent (Sam approves): draft our own Substack post answering "Claude Managed Agents guide" — linas.substack.com is cited for it, we have no equivalent
*Why*
• agentstackwatch.com/pricing · 2 cites (ChatGPT) · P1 · independent pricing comparison, no sponsor contact yet
• resources.rework.com: Best Enterprise AI Agent Platforms 2026 · 2 cites · P1 · same author as row 17
• ampcome.com: Build vs Buy AI Agents 2026 · 3 cites · P1 · fresh (Oct 15) · [contact redacted]
• layer3labs.io: Claude Team vs Enterprise pricing · 5 cites · P2 · [contact redacted]
• 10 Contacted/Replied rows re-checked, type.com on none; 5 Live rows all still live. Fresh-article web search unavailable this run.
Details → citation targets master list · listings master list

How to use AI Citation Target Hunt

  1. type.com: Choose Use Skill to add AI Citation Target Hunt to your type.com workspace.
  2. Claude Code: Download the skill and extract it into ~/.claude/skills/ai-citation-target-hunt/ (or .claude/skills/ai-citation-target-hunt/ in a project). Then ask Claude to use AI Citation Target Hunt.
  3. Codex: Download the skill and extract it into ~/.agents/skills/ai-citation-target-hunt/ (or .agents/skills/ai-citation-target-hunt/ in a repository). Then ask Codex to use AI Citation Target Hunt.

AI agents can read this page as Markdown or fetch the raw SKILL.md.

Frequently asked questions

What is AI Citation Target Hunt?

AI Citation Target Hunt is an AI skill for sales & marketing teams that you can use in Claude Code, Codex, or type.com.

What does AI Citation Target Hunt do?

Each Tuesday, rank new cited pages and fresh articles, verify existing listings, and post a 12-line action summary. Queue outreach for human review without contacting third parties.

What do I need to use AI Citation Target Hunt?

Brand domains, product model, category topics, competitors and first-run coverage date; Promptwatch Custom API connection or equivalent complete grouped citation data; Read-only web research and scoped access to citation targets and listings docs; Configured owner, report channel, timezone and the AEO master doc.

Can I use AI Citation Target Hunt in Claude Code or Codex?

Yes. AI Citation Target Hunt is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.

Who created AI Citation Target Hunt?

Sam Claassen from type.com created AI Citation Target Hunt. The type.com team reviews every skill before it is published in the Skills Library.

  • AEO Crawler Visibility MonitorCheck public pages daily as AI crawlers and search bots. Post regressions, save a baseline and send a Monday all-clear so hidden content gets a concrete fix.
  • AEO Lost-Citation AlertCompare yesterday's AI answers with the prior week to find lost citations, competitor takeovers and wins. Get a daily action list, referral traffic and owner-only escalation.
  • AEO Daily StandupTurn yesterday's AEO work into a daily priorities post. On Mondays, open a weekly thread with shipped work, citation changes and the oldest open actions.
  • AEO Publish-to-Index PipelineCheck newly shipped pages each afternoon for crawler visibility, metadata, schema and discovery coverage. Report fixes; indexing submissions for owned sites are optional and off by default.
  • Reddit AEO Engagement + Citation TrackingEach weekday, find up to three fresh Reddit discussions, draft helpful comments, and report which threads AI engines cite. The owner reviews and posts manually.
  • Weekly AEO & SEO ReportEach Monday, combine AI-answer visibility, AI referrals and search performance into three tracked actions. DM the owner a draft and publish to the weekly thread after approval.

AI for marketing teams: a practical guide

Browse the technical files
---
name: ai-citation-target-hunt
description: Weekly research of the pages AI engines cite, ranked by feasibility and citation impact, with listing rechecks and a human-review outreach queue.
---

# AI Citation Target Hunt

Find new pages that AI engines cite for your buyer questions, rank the realistic places to earn a mention, and verify whether existing listings remain live. Hand a prioritized queue to your owner for human-reviewed outreach. Part of the [Answer Engine Optimization (AEO) skillset](https://type.com/library/skills/answer-engine-optimization).

## When it runs

- Recommended schedule: Tuesdays at 8am in `timezone`, after the daily citation alert.
- Post one summary to `report_channel`, maximum 12 lines.
- Recommended handoff: the owner reviews the listings queue later Tuesday. This skill never contacts publishers or executes the original outreach runner.

## Inputs

| Input | What it is | Example |
| --- | --- | --- |
| `brand_name`, `brand_exclusions`, `owned_domains` | Exact name, look-alikes and all owned/staging/docs domains | Example Co; example.com; docs.example.com |
| `tracker_monitors`, `tracker_engines` | Your buyer questions and tracked engines | Buyer problems; competitor/category panel |
| `core_topics`, `adjacent_topics`, `competitors`, `product_model` | Category fit, competitor examples and hosted/open-source eligibility | Core category; related buyer themes; hosted product |
| `initial_start_date` | First-run lookback, at most 92 days | YYYY-MM-DD |
| `owner`, `report_channel`, `timezone` | Human reviewer, destination and local timezone | @owner; #aeo; America/Denver |
| `aeo_master_doc`, `citation_targets_list`, `listings_list` | Daily alerts, classification/history and human outreach queue | Named shared docs in your workspace |

## Before you start

Connect Promptwatch in type.com as a Custom API connection using your Promptwatch project API key. Another tracker works if it exposes equivalent `citations/grouped` data: URL, domain, title, source/content type, citation count, engines and average position. Connect read-only web research and Slack or equivalent for reporting.

Find the AEO master doc, citation targets list and listings list. On first run, create missing docs and tell the owner where they are. Initialize the citation list with How rows are classified (the rubric below), Covered through, New this week, Weekly log, Excluded domains, Low-odds-only domains and Rules for mixed domains. Initialize the listings queue with the same row schema as step 7, a stable insertion section before Wave 3, and empty Parked/skip and Already done sections. Create Alert log if missing in the master doc. Never assume internal company-specific exclusion lists apply to another company.

## Classification rubric

Use these rules in the shared citation list consistently:

- Target, High feasibility: independent listicles, comparisons and review sites; directories with submit forms; curated GitHub awesome lists accepting your product model; Reddit threads; Medium, dev.to and LinkedIn posts where a human could contribute an appropriate response or their own post. This skill only drafts and queues these actions.
- Target, Medium: agency/consultancy blogs, media roundups, outlets taking contributed articles, YouTube creators, and pages blocking the fetch.
- Target, Low: asking for a mention inside a non-list article; vendor listicles with a plausible partner angle.
- Low odds: competitor/vendor-owned listicles without a plausible partner route; counter with a draft owned page for the same query. Major news is PR-only.
- Not possible: vendor/competitor first-party docs, product, pricing and help pages; lists incompatible with `product_model` (for example open-source/self-hosted-only lists for a hosted-only product); government/academic sources; dead or off-topic pages.

Priority score = min(citation count, 6) × 2 + distinct engines citing × 1.5 + topic fit × 3 + feasibility points. Topic fit: 3 for `core_topics`, 2 for `adjacent_topics`, 1 for other. Feasibility: High 6, Medium 3, Low 1. P1 = High feasibility and score ≥17. P2 = score ≥14 after assigning P1. P3 = the rest. Use citation count 1 for fresh articles without citations and mark them fresh.

Mixed domains: on github.com, only curated awesome lists accepting the product model are targets; vendor repos, SDKs, docs and issues are Not possible. Judge reddit.com, youtube.com, medium.com, dev.to, linkedin.com and substack URLs individually for topic fit and whether the thread is still open. Judge every new URL from publishers with prior targets individually. Category eligibility never authorizes this skill to post, submit or contact.

## Steps

### 1. Set the coverage window

Read the citation targets list in full. Start at its Covered through date; end yesterday in `timezone`. On first run use `initial_start_date`. Never exceed 92 days per run. If more history is due, process at most 92 days and advance Covered through only to the actual processed end.

### 2. Pull every grouped citation

Read `citations/grouped` with startDate/endDate (YYYY-MM-DD), size 100 and pages 1 through pagination.totalPages. Save each page locally and parse it; do not sample. Use URL, domain, title, source type, content type, count, engines and average position.

If the tracker errors or returns nothing, say so in the summary and stop. Do not edit either list or advance coverage.

### 3. Add two candidate sources

From the master doc's Alert log, take every NEW SOURCE entry inside the window. Include its cited URLs even if the grouped endpoint ranks them low.

Run up to 6 web searches for best-of, top-tools and alternatives articles published in the last 30 days on `core_topics`, `adjacent_topics` and competitor alternatives. Exclude URLs already in the list. An article under 30 days old with visible author/contact is High feasibility when otherwise eligible under the rubric.

### 4. Find new URLs and review every eligible one

Compare URLs anywhere in the citation list after removing www., trailing slash and tracking parameters such as trk and utm. List owned-domain URLs only in the doc summary.

If a domain is in Excluded domains or a previous New excluded domains block, count it ruled out and do not fetch. If it is in Low-odds-only domains or a previous New low-odds domains block, count it Low odds and do not fetch. Parse these lists as domains and check normalized matches; do not rely on a free-text match that silently finds zero. Apply the mixed-domain rules to shared publishing platforms.

Fetch every remaining URL read-only. Record whether `brand_name` appears; do not count `brand_exclusions`. Decide owner type: independent publisher/review site, directory, agency/consultancy, vendor/competitor, major news, or Reddit/YouTube/own-post channel. Apply the rubric and exact score.

For Targets record the best contact route in this order: submission/list-your-product page, write-for-us page, email, contact page. Recording a route does not authorize submission. Ignore Cloudflare email-protection links and generic GitHub support links. If fetching is blocked, mark Not verified and cap feasibility at Medium.

### 5. Recheck outreach and live rows

Re-fetch every Contacted or Replied row. If the brand now appears, update only that row's Status to Listed, anchored by unique row number/status/link text.

Recheck up to 40 Listed rows each run, oldest last checked first. Add/update “checked YYYY-MM-DD”. If the brand disappears or the URL returns 404 or redirects elsewhere, change Status to Dropped and name it in the summary. Do not overwrite another person's concurrent status change; verify the old row still matches before applying an edit.

### 6. Update the citation targets list with scoped edits

Never rewrite the document or reorder existing rows.

Insert a newest-first dated block immediately below the introductory line in New this week:

```text
### <Mon D, YYYY>: <N> new targets (<window>)
- **P1 · High · Listicle** · [domain: title](url) · <n> cites (<engines>) · Next: <human-reviewed next step> · Contact: <verified route> · Status: Not started
Low odds this week: <domains with URL counts or none>
New low-odds domains: <domains or none>
Ruled out: <count>
New excluded domains: <domains or none>
Ruled out on mixed domains: <URLs or none>
Dropped: <rows or none>
```

Sort only new targets by P1/P2/P3 then score. For fresh articles use “fresh (published <Mon D>)” instead of a citation count. If no targets exist, write “No new targets this week” and keep the other lines.

Update Covered through to the processed end. Add a newest-first Weekly log bullet: run date, window, new URLs (from alerts and fresh articles), new targets (P1/P2/P3), Low odds, ruled out, auto-detected Listed and Dropped counts. Read back to verify. If an insertion fails, retry once with a longer exact anchor and report any remaining failure.

### 7. Prepare the human outreach handoff

Read the listings list in full. Take all new P1s; if fewer than 15, add highest-scoring P2s until 15 or the available total. Never add more than 40 rows in a run, including Dropped followups. Add a Dropped row with “Next: owner to review why the listing was removed”.

Deduplicate against every row, Parked/skip and Already done. Skip review properties excluded by the configured queue, paid-only rows and rows waiting on `owner`. A genuinely new page on a domain with an active row is the exception to domain deduplication: add the page but reference the existing row in Contact, for example “same author as row 22, owner to review that thread”. Do not revive parked/paid-only exclusions through this exception.

Combine owned-content items on dev.to, Medium, YouTube and similar channels into one row per channel, owner “<owner> (agent can draft)”.

Insert a dated section immediately before Wave 3, anchored to the exact last line above it, without editing/reordering existing rows:

```text
### Cited pages added from the <Mon D> citation hunt
<where targets came from and what was skipped; human review required>
| # | Target | Cites | Contact | Status |
| <next number> | [domain: short title](url) (<type>) | <n> | <verified route or None found yet. Find a verified address before emailing> | Not started. Next: <owner review/draft step> |
```

Number from the highest existing row +1. Read back to confirm. Keep full contact details in the named private queue; the channel summary should link targets, not publish contacts.

The original internal listings runner sent emails/followups, submitted forms, followed confirmation links and posted Reddit comments. Those actions are outside this public set's read-only boundary. The handoff here is a queue and optional draft for the owner; it never starts that runner or implies outreach happened. Owner review can happen Tuesdays at 10am in the owner's timezone.

### 8. Post the summary

Send one message to `report_channel` and confirm delivery. No @-mentions.

## What it posts

Maximum 12 lines, with Do next first:

```text
Do next
1. <owner>: review outreach rows <a>–<b> · <top exact target and cites> · <queue link>
2. <owner>: decide <specific blocked target, only if needed> · <link>
3. <owner>/agent: draft re-pitch for <Dropped target, only if needed> · <link>
Citation hunt — <Mon D> · <n> new targets (<P1> P1) · <n> queued for human review · <n> went Listed · <n> Dropped
Why
• [domain: title](url) · <n> cites (<engines>) · P1 · <next step>
… <max 5 one-line evidence bullets total>
Details → <citation targets link> · <listings queue link>
```

Add one notable line only if it changes the action, such as fresh articles under 30 days old or a new brand mention. Keep the full message within 12 lines.

## Output rules

- Lead with the action. Each Do next item is one line: owner + verb + exact target + link.
- Numbers, not adjectives. No preamble, method or caveats unless they change the action.
- Low-odds, ruled-out, mixed-domain and source-breakdown counts stay in Weekly log.
- Link both docs once at the end as Details →. Hard cap: 12 lines, one idea per line.
- Write `brand_name` exactly; never count look-alike names as mentions.

## Safety

- Read-only on every third party. Never contact publishers, send email/outreach, submit forms, sign up, follow account-confirmation actions, or comment, vote, DM or post on Reddit, X, LinkedIn or any social/community site. Drafting for a human is fine.
- Never change tracker prompts, monitors, personas, models or schedules.
- Only writes: the report-channel summary and scoped edits to the citation targets and listings queue sections/status fields above. This skill sends no DMs; any owner notification must go only to `owner`.
- Never @-mention anyone in a channel or put credentials, tokens or passwords in posts, docs or DMs. Never execute the outreach runner.

## Example configuration

How type.com configures this skill (example):

- Tuesdays 8am America/Denver; channel #b-aeo; owner Sam. The original outreach schedule was Tuesday 10am America/Los_Angeles; this public skill replaces execution with a human handoff.
- Owned domains: type.com, docs.type.com and typestaging.com; exclude the look-alike type.ai.
- Core fit 3: managed agents, agent platforms, workflow automation. Adjacent fit 2: build vs buy, governance, hyperscaler. Other fit 1.
- Fresh-article queries: AI agents in Slack, team AI workspaces, AI platforms for IT, competitor alternatives and MCP directories.
- Low-odds examples: competitor-owned listicles from Duet, TrueFoundry, Omnara, Viktor, Glean, n8n and Zapier. PR-only examples: Reuters, FT, The Verge and Business Insider.
- Shared-platform examples: only appropriate GitHub awesome lists; vendor SDK/docs/issues from anthropics, MicrosoftDocs, langchain-ai, modelcontextprotocol, OWASP, google and aws-samples are ruled out.
- The original queue skipped G2 and Gartner Peer Insights, paid-only rows and items waiting on Sam. These are example queue exclusions, not universal exclusions for other companies.
- October 2026 dry-run lesson: paginate every citation page and verify domain-list parsing before treating zero matches as evidence.