Skip to content

docs(faq): answer why a Pro/Max subscriber gets billed for API tokens - #32

Open
santifer wants to merge 2 commits into
fix/rubric-canon-a-hfrom
docs/billing-source-pro-vs-api
Open

docs(faq): answer why a Pro/Max subscriber gets billed for API tokens#32
santifer wants to merge 2 commits into
fix/rubric-canon-a-hfrom
docs/billing-source-pro-vs-api

Conversation

@santifer

Copy link
Copy Markdown
Member

Stacked on #31 (both touch content/docs/index across three locales). Merge #31 first; this retargets to main automatically.

Why now

Triple signal, per search-ops:

  1. The https://career-ops-docs.vercel.app/docs Link Broken. Same for https://career-ops-docs.vercel.app/docs/introduction #1 community question on X this week, answered by hand by @careeropsHQ.
  2. A real user burning in Discord, who asked it twice with no reply, one of them in Russian.
  3. Long-standing recurring confusion.

The fact that changed the register of the doc

Every claim was verified against code by career-ops-maintainer before writing. One answer reframed the whole page:

The precedence is not ours. Claude Code decides, ANTHROPIC_API_KEY wins, and career-ops only detects it and warns.

So this is written as "your CLI does X, and here is how you check", not "career-ops does X". Source: doctor.mjs:71-110 checkBillingSource(), frozen by tests/doctor-billing-source.test.mjs.

The command goes first

The maintainer's observation, which is the real insight:

node doctor.mjs already answers this today and nobody knows. That is not missing documentation, it is correct documentation nobody links.

So node doctor.mjs is the first line of both surfaces, above the explanation. And the doctor's warning is quoted verbatim rather than paraphrased.

Two things deliberately NOT written

That exporting an empty ANTHROPIC_API_KEY sidesteps it. True of our doctor (an empty string is falsy at doctor.mjs:72, the maintainer verified it) but unverified on the CLI side. A cost doc is the worst place to guess: if someone believes us and gets charged, that is on the doc.

Any rule for the other CLIs. career-ops does not check Codex, OpenCode, Copilot, Gemini or Qwen. The page says each CLI sets its own rule and points at their docs. A declared gap beats a guessed one.

Changes

Surface What
content/docs/faq.{mdx,es,fr} new entry, full answer
src/lib/faq-data.ts mirror backing the FAQPage schema
content/docs/index.{mdx,es,fr} warning callout right before Step 3, the moment the money starts

translationHash re-stamped on all four translations.

Verified on a production build

  • New content present in all three locales, on both surfaces.
  • Why is career-ops billing my API credits present in the rendered FAQPage JSON-LD.

🤖 Generated with Claude Code

santifer and others added 2 commits August 11, 2026 22:54
…ertas

search-ops fixed the canon on 2026-08-11 after 18 days without objection: the
report is eight blocks, A through H, with H conditional. This is the group-2
sweep measured on 2026-07-30, executed in one pass.

Verified against the core before writing (modes/oferta.md, commit 350ab739):
eight `## X)` headings, and `## H) Draft Application Answers` gated on
"only if score >= 4.5". The site was carrying three different answers at once
— A-F, A-G and "seven-block" — depending on which file you opened.

17 files. Descriptions and prose in modes/{index,oferta,auto-pipeline} across
EN/ES/FR; the Block bullet list in docs/index across EN/ES/FR, which was
missing H entirely; schema.ts (`Block A-G evaluation` and "seven-section");
llms.txt, llms-full.txt and comparisons.json. translationHash re-stamped on
all eight touched translations.

Also lands the disambiguation search-ops asked for, in the passages engines
quote (methodology and llms-full):

  oferta  (singular) — ONE listing, five-dimension holistic rubric, no formula
  ofertas (plural)   — MULTIPLE offers, ten-dimension WEIGHTED matrix

Both are true and both are public, and their mode names differ by one letter.
That collision is the actual root of the "ten weighted parameters" that
reached press coverage, not a bad translation. Naming the mode every time a
dimension count appears is now doctrine; the fix is to state both, not to ban
the word "weighted", which would delete a true fact about a real mode.

Verified on a production build: zero A-F/A-G left on any served surface,
eight Block bullets on /docs.md, Block H present in all three locales.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Triple signal per search-ops: the #1 community question on X this week
(answered by hand by @careeropsHQ), a real user burning in Discord who asked
it twice with no reply, one of them in Russian, and long-standing recurring
confusion.

Every fact verified against code by career-ops-maintainer before writing, and
one answer changed the register of the doc: the precedence is NOT ours. Claude
Code decides, ANTHROPIC_API_KEY wins, and career-ops only detects it and
warns. So this is written as "your CLI does X, and here is how you check",
not "career-ops does X". Source: doctor.mjs:71-110 checkBillingSource(),
frozen by tests/doctor-billing-source.test.mjs.

The command goes first, above the explanation. The maintainer's point is that
`node doctor.mjs` already answers this today and nobody knows: that is not
missing documentation, it is correct documentation nobody links.

The doctor's warning is quoted verbatim rather than paraphrased.

Deliberately NOT written: that exporting an empty ANTHROPIC_API_KEY sidesteps
the problem. It is true of our doctor (an empty string is falsy at
doctor.mjs:72) but unverified on the CLI side, and a cost doc is the worst
place to guess: if someone believes us and gets charged, that is on the doc.

Also deliberately declared rather than filled: career-ops does not check
Codex, OpenCode, Copilot, Gemini or Qwen, so the page says each CLI sets its
own rule and points at their documentation. A declared gap beats a guessed
one.

FAQ entry in EN/ES/FR plus the faq-data.ts mirror that backs the FAQPage
schema, and a warning callout in getting-started right before the first
evaluation, which is the moment the money starts. translationHash re-stamped
on all four translations.

Stacks on #31 (both touch content/docs/index across the three locales).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
career-ops-docs Ready Ready Preview Aug 11, 2026 9:01pm

Request Review

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