Skip to content

Sharpen copy for discoverability (Persona B) + fix crate-level docs#48

Merged
clifton merged 1 commit into
mainfrom
seo-persona-b-language
Jun 1, 2026
Merged

Sharpen copy for discoverability (Persona B) + fix crate-level docs#48
clifton merged 1 commit into
mainfrom
seo-persona-b-language

Conversation

@clifton

@clifton clifton commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Why

Optimizes the crates.io / docs.rs / README copy for the developer who wants to get structured data out of an LLM but has never used Instructor or Pydantic. That person searches the problem in plain words — structured output, json schema llm, typed data from llm, extract structured data — not the solution-by-analogy.

Today the crate ranks well only for queries that already assume the Instructor/Pydantic mental model, and is invisible on the high-volume generic phrasings. The biggest controllable levers on crates.io are the description and keywords (its search indexes name > keywords > description > readme; downloads don't affect ranking), so this PR points those at the plain-language vocabulary.

Changes

Cargo.toml (the crates.io surface)

  • Description now leads with the capability"Get structured, validated data out of LLMs as native Rust structs and enums" — and demotes the Pydantic/Instructor analogy to the final sentence (still there for those who know it).
  • Keywords: dropped instructor (the crate name already matches it; ~zero search traffic) and added json-schema — a high-intent query where the crate was previously not in the top 20.
  • Category web-programmingscience (crates.io's home for ML/AI crates; there's no AI-specific slug).

README.md

  • Rewrote the lede in plain Persona-B vocabulary.
  • Replaced every "unstructured prose" with plain "text".
  • Cut the dated "reasoning-model support (GPT-5.5, Claude 4.6, Gemini 3.1)" line — every model reasons now, and version name-drops age fast.

src/lib.rs (docs.rs front page) — also a real bug fix

  • The crate overview used /// (outer doc), which attached it to the private mod backend that follows it, so it never rendered as the docs.rs front page (the live page only shows the Cargo.toml description). Converted the block to //! (inner doc) so it actually becomes the front page.
  • Refreshed the prose to match and fixed the stale "Built-in OpenAI and Anthropic API clients" → all four providers (OpenAI, Anthropic, Gemini, Grok).

cargo check passes. No code or behavior changes — copy, metadata, and doc-comment style only.

Not in this PR (suggested follow-ups)

  • GitHub repo About + topics still lead with the Instructor/Pydantic brand; reordering to capability-first would mirror these changes.
  • A README comparison table (vs the llm crate, instructor-rs, aisdk, BAML) and a short "structured outputs from LLMs in Rust" walkthrough post are the highest-ceiling discoverability moves — happy to draft.

🤖 Generated with Claude Code

Optimize the crates.io / docs.rs / README copy for developers who want to
get structured data out of an LLM but don't already know Instructor/Pydantic.
They search the problem in plain words ("structured output", "json schema",
"typed data from llm"), not the solution-by-analogy.

- Cargo.toml: lead the description with the capability in plain search terms
  ("Get structured, validated data out of LLMs as native Rust structs and
  enums") and demote the Pydantic/Instructor analogy to the last sentence.
  Swap the low-value `instructor` keyword (the crate name already matches it,
  ~zero search traffic) for `json-schema`, a high-intent query where the crate
  was invisible. Recategorize web-programming -> science (crates.io's home for
  ML/AI crates; no AI-specific slug exists).
- README: rewrite the lede in plain Persona-B vocabulary; replace "unstructured
  prose" with plain text; cut the dated "reasoning-model support (GPT-5.5,
  Claude 4.6, Gemini 3.1)" framing (every model reasons now).
- src/lib.rs: convert the crate overview from `///` (which attached it to the
  private `mod backend` and so never rendered on docs.rs) to `//!`, so it
  becomes the docs.rs front page; refresh the prose and fix the stale
  "OpenAI and Anthropic clients" line to list all four providers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@clifton clifton merged commit 1f9e3a2 into main Jun 1, 2026
8 checks passed
@clifton clifton deleted the seo-persona-b-language branch June 1, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant