Scrape and document affiliations for: $ARGUMENTS
$ARGUMENTS should include:
- The person's full name (required): e.g.
"Alan Hirsch"
- Optionally: their primary domain or website: e.g.
--site alanhirsch.org
- Optionally: a category filter:
--category publisher,speaking,media
- Optionally: an output path:
--output content-library/affiliations/alan-hirsch.json
- Empty — ask the user for the person's name
Before Starting
- Confirm you have browser tools available (mcp__chrome-devtools)
- Check
content-library/affiliations/ for any existing affiliation file for this person
- If an existing file is found, load it and run in incremental mode — add new orgs, don't overwrite confirmed data
Research Pipeline
Stage 1 — Seed Searches
Run 6–8 targeted web searches to discover affiliations. Use these query templates (replace {name}):
"{name}" publisher site:amazon.com OR site:goodreads.com OR site:booksellers.com
"{name}" speaking bureau OR keynote speaker
"{name}" endorsed by OR "foreword by" OR "endorsed by"
"{name}" conference keynote OR "main stage" OR plenary
"{name}" podcast interview OR "appeared on" OR "featured in"
"{name}" denomination OR church OR network OR movement
"{name}" seminary OR theological school OR university OR faculty
"{name}" "ministry partner" OR "strategic partner" OR affiliate
"{name}" site:{their-domain} — read the About / Speaking / Partners page directly
"{name}" award OR recognition OR honorary
For each search result, record:
- URL
- Organization name
- Relationship signal (e.g., "keynote speaker," "published by," "board member")
- Confidence level (HIGH / MEDIUM / LOW)
Stage 2 — Direct Site Crawl
If a personal website is known (or discoverable), navigate to it and read:
/about or /about-us — bio, affiliations mentioned in prose
/speaking or /speaking-bureau — which bureaus are listed
/books or /resources — publishers, endorsers, co-authors
/partners or /ministry — partner organizations
/press or /media — outlets that have featured them
- Footer — often contains partner logos or links
Use WebFetch or mcp__chrome-devtools__navigate_page to read each page.
Extract any logo images found (note URL, alt text, surrounding anchor link — this is logo strip gold).
Stage 3 — Classify Each Organization
For every discovered organization, classify it using these categories:
| Category |
Examples |
publisher |
Baker Books, Zondervan, IVP, Wiley, Fortress Press |
speaking-bureau |
Premier Speakers Bureau, Chartwell, Ambassador Speakers |
conference |
Exponential, Q Ideas, The Gospel Coalition, Catalyst, Lausanne |
denomination |
Assemblies of God, CBAANZ, Fresh Expressions |
network |
5Q Collective, Forge International, Communitas |
media |
Christianity Today, Relevant Magazine, Leadership Journal |
academic |
Fuller Seminary, Wheaton College, Regent College |
endorser-org |
Organizations whose leaders have publicly endorsed the person |
ministry-partner |
Mission orgs, church planting networks they partner with |
award-recognition |
Evangelical Christian Publishers Association, etc. |
Stage 4 — Logo Research
For each confirmed organization, attempt to find a usable logo:
Priority order:
- SVG from their website (
/logo.svg, /images/logo.svg, footer SVG, <img> with logo in src)
- High-res PNG from their website (look for
@2x, 2x, hires, print variants)
- Wikipedia/Wikimedia Commons SVG
- Clearbit Logo API:
https://logo.clearbit.com/{domain} (returns PNG)
- Google Favicon as last resort (too small — flag as LOW quality)
For each logo found, record:
logo_url — direct URL to the image
logo_type — svg / png / favicon / not-found
logo_quality — HIGH (SVG or hi-res PNG ≥ 200px) / MEDIUM (PNG 100–200px) / LOW (favicon or < 100px) / MISSING
logo_background — transparent / white / dark / unknown (important for dark mode logo strips)
Stage 5 — Verify & Deduplicate
Before finalizing:
- Remove duplicates (same org found via multiple searches)
- Remove false positives (e.g., a conference where they attended but didn't speak)
- Flag LOW confidence entries for user review
- Check that every MEDIUM/HIGH confidence entry has a clear public record (URL as source)
Affiliation Data Schema
For each organization, produce a record matching this shape:
{
"id": "baker-books",
"name": "Baker Books",
"short_name": "Baker",
"category": "publisher",
"website": "https://bakerpublishinggroup.com",
"relationship_type": "author",
"relationship_description": "Primary publisher for Alan Hirsch's books including The mDNA and 5Q. Baker is one of the leading evangelical academic publishers.",
"relationship_start_year": 2006,
"books_published": ["The mDNA", "The Permanent Revolution", "5Q"],
"logo_url": "https://bakerpublishinggroup.com/images/baker-logo.svg",
"logo_type": "svg",
"logo_quality": "HIGH",
"logo_background": "white",
"source_urls": ["https://bakerpublishinggroup.com/authors/alan-hirsch"],
"confidence": "HIGH",
"include_in_strip": true,
"strip_group": "publishers",
"strip_label": "Published by",
"prominence_score": 10,
"notes": ""
}
Field definitions:
id — kebab-case slug, unique
name — full legal/official name
short_name — abbreviated name for logo strip labels
category — from the category table above
relationship_type — author, speaker, faculty, board, partner, alumni, endorsed-by, media-featured
relationship_description — 1–3 sentences: what is this relationship, why does it matter to the person's credibility
relationship_start_year — approximate year the relationship began (omit if unknown)
logo_url — direct URL to best available logo
logo_type — svg / png / favicon / not-found
logo_quality — HIGH / MEDIUM / LOW / MISSING
logo_background — transparent / white / dark / unknown
source_urls — array of URLs confirming the relationship
confidence — HIGH (direct evidence) / MEDIUM (strongly implied) / LOW (inferred)
include_in_strip — boolean, set to true for HIGH confidence orgs with usable logos
strip_group — one of: publishers, speaking, media, networks, endorsers, academic
strip_label — short label for the group header in the logo strip (e.g., "Published by", "As seen in")
prominence_score — 1–10, how much credibility this relationship adds (10 = major publisher/conference)
notes — any caveats, ambiguities, or things to verify
Output Format
Save results to content-library/affiliations/{person-slug}.json (create directory if needed).
Then print a report:
## Affiliation Scrape Report: [Person Name]
### Summary
- Organizations found: N
- HIGH confidence: X
- MEDIUM confidence: Y
- LOW confidence: Z (review needed)
- Strip-ready (include_in_strip = true): N
### By Category
| Category | Count | Strip-ready | Logo quality |
|----------|-------|-------------|-------------|
| publisher | 3 | 3 | HIGH |
| speaking-bureau | 2 | 2 | HIGH |
| conference | 8 | 5 | MEDIUM |
| media | 6 | 4 | MEDIUM |
| network | 4 | 3 | HIGH |
| academic | 2 | 1 | LOW |
| ministry-partner | 5 | 2 | MEDIUM |
### Strip Groups (ordered by prominence)
**publishers** — "Published by" — 3 orgs
**networks** — "Part of" — 3 orgs
**speaking** — "Available to speak" — 2 orgs
**media** — "As featured in" — 4 orgs
**conference** — "Keynote speaker" — 5 orgs
### Needs Review (LOW confidence or MISSING logo)
| Org | Issue | Action needed |
|-----|-------|--------------|
| Example Conference | LOW confidence — only indirect mention found | Verify via speaker page or personal site |
| Example Network | MISSING logo — no SVG or PNG found | Manual logo download needed |
### Next Steps
1. Run `/affiliation-audit {person-slug}` to evaluate strip readiness and grouping
2. Resolve flagged LOW confidence entries manually
3. Download any MISSING logos to `public/images/orgs/`
4. Run `/logo-strip-author {person-slug}` to generate the final section
Key Rules
- Public record required — Every HIGH/MEDIUM confidence entry must have a
source_urls entry proving the relationship
- No fabrication — If you cannot verify an affiliation from public sources, set confidence to LOW and flag it
- Logos from authoritative sources only — Don't grab logos from third-party aggregators; prefer official org websites
- Note permissions ambiguity — Logo use for social proof is generally considered nominative fair use, but flag any org that may object
- Idempotent — If re-run, merge new findings with existing file; never overwrite confirmed HIGH confidence entries
- Prominence scoring — A major publisher (Baker, Zondervan) scores 10; a regional conference scores 3–5
1---2name: affiliation-scrape-23description: Research and document all organizations a leader/author is affiliated with — publishers, speaking bureaus, conferences, denominations, media outlets, endorsing ministries, and academic institutions. Uses browser search to build a structured affiliation record for use in logo strips and social proof sections.4---56Scrape and document affiliations for: $ARGUMENTS78$ARGUMENTS should include:9- The person's full name (required): e.g. `"Alan Hirsch"`10- Optionally: their primary domain or website: e.g. `--site alanhirsch.org`11- Optionally: a category filter: `--category publisher,speaking,media`12- Optionally: an output path: `--output content-library/affiliations/alan-hirsch.json`13- Empty — ask the user for the person's name1415## Before Starting16171. Confirm you have browser tools available (mcp__chrome-devtools)182. Check `content-library/affiliations/` for any existing affiliation file for this person193. If an existing file is found, load it and run in **incremental mode** — add new orgs, don't overwrite confirmed data2021## Research Pipeline2223### Stage 1 — Seed Searches2425Run 6–8 targeted web searches to discover affiliations. Use these query templates (replace `{name}`):26271. `"{name}" publisher site:amazon.com OR site:goodreads.com OR site:booksellers.com`282. `"{name}" speaking bureau OR keynote speaker`293. `"{name}" endorsed by OR "foreword by" OR "endorsed by"`304. `"{name}" conference keynote OR "main stage" OR plenary`315. `"{name}" podcast interview OR "appeared on" OR "featured in"`326. `"{name}" denomination OR church OR network OR movement`337. `"{name}" seminary OR theological school OR university OR faculty`348. `"{name}" "ministry partner" OR "strategic partner" OR affiliate`359. `"{name}" site:{their-domain}` — read the About / Speaking / Partners page directly3610. `"{name}" award OR recognition OR honorary`3738For each search result, record:39- URL40- Organization name41- Relationship signal (e.g., "keynote speaker," "published by," "board member")42- Confidence level (HIGH / MEDIUM / LOW)4344### Stage 2 — Direct Site Crawl4546If a personal website is known (or discoverable), navigate to it and read:47481. `/about` or `/about-us` — bio, affiliations mentioned in prose492. `/speaking` or `/speaking-bureau` — which bureaus are listed503. `/books` or `/resources` — publishers, endorsers, co-authors514. `/partners` or `/ministry` — partner organizations525. `/press` or `/media` — outlets that have featured them536. Footer — often contains partner logos or links5455Use `WebFetch` or `mcp__chrome-devtools__navigate_page` to read each page.5657Extract any logo images found (note URL, alt text, surrounding anchor link — this is logo strip gold).5859### Stage 3 — Classify Each Organization6061For every discovered organization, classify it using these categories:6263| Category | Examples |64|----------|---------|65| `publisher` | Baker Books, Zondervan, IVP, Wiley, Fortress Press |66| `speaking-bureau` | Premier Speakers Bureau, Chartwell, Ambassador Speakers |67| `conference` | Exponential, Q Ideas, The Gospel Coalition, Catalyst, Lausanne |68| `denomination` | Assemblies of God, CBAANZ, Fresh Expressions |69| `network` | 5Q Collective, Forge International, Communitas |70| `media` | Christianity Today, Relevant Magazine, Leadership Journal |71| `academic` | Fuller Seminary, Wheaton College, Regent College |72| `endorser-org` | Organizations whose leaders have publicly endorsed the person |73| `ministry-partner` | Mission orgs, church planting networks they partner with |74| `award-recognition` | Evangelical Christian Publishers Association, etc. |7576### Stage 4 — Logo Research7778For each confirmed organization, attempt to find a usable logo:7980**Priority order:**811. SVG from their website (`/logo.svg`, `/images/logo.svg`, footer SVG, `<img>` with `logo` in src)822. High-res PNG from their website (look for `@2x`, `2x`, `hires`, `print` variants)833. Wikipedia/Wikimedia Commons SVG844. Clearbit Logo API: `https://logo.clearbit.com/{domain}` (returns PNG)855. Google Favicon as last resort (too small — flag as LOW quality)8687For each logo found, record:88- `logo_url` — direct URL to the image89- `logo_type` — `svg` / `png` / `favicon` / `not-found`90- `logo_quality` — `HIGH` (SVG or hi-res PNG ≥ 200px) / `MEDIUM` (PNG 100–200px) / `LOW` (favicon or < 100px) / `MISSING`91- `logo_background` — `transparent` / `white` / `dark` / `unknown` (important for dark mode logo strips)9293### Stage 5 — Verify & Deduplicate9495Before finalizing:961. Remove duplicates (same org found via multiple searches)972. Remove false positives (e.g., a conference where they attended but didn't speak)983. Flag LOW confidence entries for user review994. Check that every MEDIUM/HIGH confidence entry has a clear public record (URL as source)100101## Affiliation Data Schema102103For each organization, produce a record matching this shape:104105```json106{107 "id": "baker-books",108 "name": "Baker Books",109 "short_name": "Baker",110 "category": "publisher",111 "website": "https://bakerpublishinggroup.com",112 "relationship_type": "author",113 "relationship_description": "Primary publisher for Alan Hirsch's books including The mDNA and 5Q. Baker is one of the leading evangelical academic publishers.",114 "relationship_start_year": 2006,115 "books_published": ["The mDNA", "The Permanent Revolution", "5Q"],116 "logo_url": "https://bakerpublishinggroup.com/images/baker-logo.svg",117 "logo_type": "svg",118 "logo_quality": "HIGH",119 "logo_background": "white",120 "source_urls": ["https://bakerpublishinggroup.com/authors/alan-hirsch"],121 "confidence": "HIGH",122 "include_in_strip": true,123 "strip_group": "publishers",124 "strip_label": "Published by",125 "prominence_score": 10,126 "notes": ""127}128```129130**Field definitions:**131- `id` — kebab-case slug, unique132- `name` — full legal/official name133- `short_name` — abbreviated name for logo strip labels134- `category` — from the category table above135- `relationship_type` — `author`, `speaker`, `faculty`, `board`, `partner`, `alumni`, `endorsed-by`, `media-featured`136- `relationship_description` — 1–3 sentences: what is this relationship, why does it matter to the person's credibility137- `relationship_start_year` — approximate year the relationship began (omit if unknown)138- `logo_url` — direct URL to best available logo139- `logo_type` — `svg` / `png` / `favicon` / `not-found`140- `logo_quality` — `HIGH` / `MEDIUM` / `LOW` / `MISSING`141- `logo_background` — `transparent` / `white` / `dark` / `unknown`142- `source_urls` — array of URLs confirming the relationship143- `confidence` — `HIGH` (direct evidence) / `MEDIUM` (strongly implied) / `LOW` (inferred)144- `include_in_strip` — boolean, set to `true` for HIGH confidence orgs with usable logos145- `strip_group` — one of: `publishers`, `speaking`, `media`, `networks`, `endorsers`, `academic`146- `strip_label` — short label for the group header in the logo strip (e.g., "Published by", "As seen in")147- `prominence_score` — 1–10, how much credibility this relationship adds (10 = major publisher/conference)148- `notes` — any caveats, ambiguities, or things to verify149150## Output Format151152Save results to `content-library/affiliations/{person-slug}.json` (create directory if needed).153154Then print a report:155156```157## Affiliation Scrape Report: [Person Name]158159### Summary160- Organizations found: N161- HIGH confidence: X162- MEDIUM confidence: Y163- LOW confidence: Z (review needed)164- Strip-ready (include_in_strip = true): N165166### By Category167| Category | Count | Strip-ready | Logo quality |168|----------|-------|-------------|-------------|169| publisher | 3 | 3 | HIGH |170| speaking-bureau | 2 | 2 | HIGH |171| conference | 8 | 5 | MEDIUM |172| media | 6 | 4 | MEDIUM |173| network | 4 | 3 | HIGH |174| academic | 2 | 1 | LOW |175| ministry-partner | 5 | 2 | MEDIUM |176177### Strip Groups (ordered by prominence)178**publishers** — "Published by" — 3 orgs179**networks** — "Part of" — 3 orgs180**speaking** — "Available to speak" — 2 orgs181**media** — "As featured in" — 4 orgs182**conference** — "Keynote speaker" — 5 orgs183184### Needs Review (LOW confidence or MISSING logo)185| Org | Issue | Action needed |186|-----|-------|--------------|187| Example Conference | LOW confidence — only indirect mention found | Verify via speaker page or personal site |188| Example Network | MISSING logo — no SVG or PNG found | Manual logo download needed |189190### Next Steps1911. Run `/affiliation-audit {person-slug}` to evaluate strip readiness and grouping1922. Resolve flagged LOW confidence entries manually1933. Download any MISSING logos to `public/images/orgs/`1944. Run `/logo-strip-author {person-slug}` to generate the final section195```196197## Key Rules198199- **Public record required** — Every HIGH/MEDIUM confidence entry must have a `source_urls` entry proving the relationship200- **No fabrication** — If you cannot verify an affiliation from public sources, set confidence to LOW and flag it201- **Logos from authoritative sources only** — Don't grab logos from third-party aggregators; prefer official org websites202- **Note permissions ambiguity** — Logo use for social proof is generally considered nominative fair use, but flag any org that may object203- **Idempotent** — If re-run, merge new findings with existing file; never overwrite confirmed HIGH confidence entries204- **Prominence scoring** — A major publisher (Baker, Zondervan) scores 10; a regional conference scores 3–5