Skip to content

feat: sync with the 2026-10-20 API release - #37

Merged
ibadus merged 1 commit into
mainfrom
fix/api-sync-2026-10-26
Oct 27, 2026
Merged

ibadus merged 1 commit into
mainfrom
fix/api-sync-2026-10-26

Conversation

@joisbach

@joisbach joisbach commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Syncs the SDK with the API deployed up to the 2026-10-20 release, from the 2026-10-26 docs/SDK audit (each changed claim checked against the blitz-api code).

  • CascadeTier.location takes the PeopleLocationFilter dict (city, country_code, continent, sales_region; at most 10 values per list, a 422 above). The list of country codes stays accepted as the legacy form.
  • Docstrings, README and docs/CONTEXT.md: the rate limit is per plan and shared by every key of the account; 401 also means "no access to this route"; 404/422/423/429 described; search endpoints return only the matched position in experiences; department distribution counts jobs, not people; filters that used to be accepted and ignored now return 422. Sync client regenerated from the async sources.

revenue_range and people.job_description are not included (merged in the API, not deployed). No conflict with #36.

Checks: ruff check, ruff format --check, mypy, pyright (strict), pytest (217 pass), gen_sync.py --check, gen_enums.py --check. No live API calls.

RetriggerView in GreptileConfidence Score: 4/5

The PR appears safe to merge, with non-blocking test coverage and documentation fixes.

Fix All in Claude CodeFindings

  1. P2 New location form lacks tests ▶
  2. P2 JS parity claim is incorrect ▶
Fix with agent prompt
### Issue 1
src/blitz_api/types/filters.py:308
Existing waterfall tests omit `location`, so reverting this annotation to `list[str]` would leave them green. Add typed examples for a declared `PeopleLocationFilter`, a nested dict literal, and the legacy list. Also check the nested request body in a mocked endpoint test. This would protect both the new feature and existing callers.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

### Issue 2
docs/CONTEXT.md:1038
The current JS [`CascadeTier.location`](https://github.com/api-blitz/blitz-api-js/blob/HEAD/src/types/filters.ts#L294) still accepts only `string[]`, not the object form added here. Saying the types match may lead maintainers to skip the JS follow-up. Describe that update as pending, or link the companion change once it exists.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Adds object-shaped CascadeTier.location filters while retaining legacy country-code lists. Updates API guidance across the README, models, and generated resource docs.

  • Waterfall tiers can use the people-search location filter.
  • Search results show the matched job, while enrichment shows the full career.
  • Department totals count current jobs, not unique people.
  • Rate limits vary by plan and are shared across an account's keys.
  • The SDK docs explain API access, request, and account-lock responses.
  • Repository guidance reflects the latest API schema and audit notes.

Reviews (1) · Last reviewed commit: "feat: sync with the 2026-10-20 API relea..." · Reviewed by Greptile

- `CascadeTier.location` accepts the `PeopleLocationFilter` dict the API
  takes since 2026-10-20 (at most 10 values per list, a 422 above); the
  list of country codes stays accepted as the legacy form.
- Docs: rate limit is per plan and shared by every key of the account;
  401 also means "no access to this route", 404/422/423/429 described;
  the search endpoints return only the matched position in `experiences`;
  department distribution counts jobs, not people; filters that used to
  be accepted and ignored now return 422.

include_title: list[str]
location: NotRequired[list[str]]
location: NotRequired[PeopleLocationFilter | list[str]]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 New location form lacks tests

Existing waterfall tests omit location, so reverting this annotation to list[str] would leave them green. Add typed examples for a declared PeopleLocationFilter, a nested dict literal, and the legacy list. Also check the nested request body in a mocked endpoint test. This would protect both the new feature and existing callers.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/blitz_api/types/filters.py
Line: 308

Comment:
**New location form lacks tests**

Existing waterfall tests omit `location`, so reverting this annotation to `list[str]` would leave them green. Add typed examples for a declared `PeopleLocationFilter`, a nested dict literal, and the legacy list. Also check the nested request body in a mocked endpoint test. This would protect both the new feature and existing callers.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code Fix in Conductor

Comment thread docs/CONTEXT.md
**(1) `CascadeTier.location` is `PeopleLocationFilter | list[str]`.** Since 2026-10-20 a
tier's `location` is the `people.location` object of `search.people`, each list capped at 10;
the bare list of country codes is the legacy form, still accepted, so it stays in the union
rather than breaking existing callers. Same type in `blitz-api-js`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 JS parity claim is incorrect

The current JS CascadeTier.location still accepts only string[], not the object form added here. Saying the types match may lead maintainers to skip the JS follow-up. Describe that update as pending, or link the companion change once it exists.

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/CONTEXT.md
Line: 1038

Comment:
**JS parity claim is incorrect**

The current JS [`CascadeTier.location`](https://github.com/api-blitz/blitz-api-js/blob/HEAD/src/types/filters.ts#L294) still accepts only `string[]`, not the object form added here. Saying the types match may lead maintainers to skip the JS follow-up. Describe that update as pending, or link the companion change once it exists.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Conductor

@ibadus
ibadus merged commit 00fb319 into main Oct 27, 2026
12 checks passed
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.

2 participants