One job query for every surface¶
Technical version: WING-196 shared job-query integration matrix
The rule¶
Every surface that shows jobs — desktop, YC cloud, Flow — must ask the backend with the same job query request. Screens must not re-filter, re-sort, re-page, or re-dedupe a local copy and call that “the product.”
What the shared backend owns¶
| Capability | Who owns it |
|---|---|
| Saved jobs, recommended jobs, internships | Shared API on all surfaces |
| Deduplication | Backend |
| Filters, facets, sorting, paging | Backend |
| Safe result shape (no sensitive extras) | Backend redacted DTO |
| Demo flags and fit freshness labels | Explicit fields on each result |
Facet counts are self-excluding: when you select a filter value, the counts for other values in that same facet still show what would happen if you changed it — without counting the selection against itself in a confusing way.
Results can say whether a row is demo sample data and whether fit analysis is fresh.
What is deliberately left out of the wire shape¶
Job descriptions, referrals, enrichments, ATS vault data, account ids, and tenant ids are not smuggled into the list DTO. That keeps cloud-safe surfaces from accidentally displaying or caching secrets.
Completion bar¶
A surface is “done” only when an integration test proves it issues the canonical query, not when a mock list looks pretty in isolation.