The WING-202 desktop and cloud release¶
Engineer version: ../technical/wing-202-release.md
WING-202 is one release with two editions:
- Desktop is the private, local-first app Andrew uses on Windows.
- Cloud (Server edition) is the invitation-only version at
https://workwingman.ai, built for separate team and YC reviewer workspaces.
The goal of both editions is the same: help someone move their real career information into WorkWingman and keep moving when a website or document does not cooperate.
What changed on Desktop¶
Résumés come in more accurately¶
Résumé files do not all follow one layout. WorkWingman now understands two common “grammars”:
- Table-based résumés. A job may be introduced by a cell containing
Company | Title, even when that table sits inside another table. - Heading-based résumés. A company or role may be written as a heading, followed by its dates and description.
The importer reads both formats in a fixed, repeatable order. It also recognizes an EndDate
field and month-name dates such as “January 2022.” Before anything changes, each proposed job is
shown as its own comparison card in the form Title — Company — Dates.
LinkedIn details pages carry their evidence with them¶
The LinkedIn importer now understands the separate details pages for profile information such as jobs, education, and skills. Its rules were checked against the live surfaces rather than guessed from old exports. Imported facts retain signals about where they came from and how confident the importer is, so a person can review uncertain details instead of treating every line as equally reliable.
There is always another way through¶
When the first path cannot finish, WorkWingman moves through three clearly named choices:
flowchart LR
A["Instant<br/>WorkWingman handles the normal path"] -->|site or import succeeds| D["Review the result"]
A -->|the page or document does not cooperate| B["Wingman Retry<br/>guided second attempt"]
B -->|retry succeeds| D
B -->|help is still needed| C["Manual Mode<br/>you stay in control"]
C --> D
- Instant tries the normal automated route.
- Wingman Retry makes a guided second attempt with more context.
- Manual Mode lets the person paste or enter the information directly.
The same promise applies on both sides of the product: while working on a live application and while importing profile information. Manual Mode is a supported route, not an error or a dead end.
The page helper starts with a map¶
Different application systems have different habits. WorkWingman now gives its page helper a short, tested primer for the system it is visiting—such as Workday, Greenhouse, iCIMS, Lever, LinkedIn, Indeed, UKG, or USAJOBS—before it advises on a confusing field. The normal automation still drives the page; the helper supplies context, not unchecked control.
Résumé Labs tells us what is real¶
Résumé Labs exercises families of made-up résumé layouts so parser improvements can be scored consistently. A separate smoke check uses a small real-world corpus to catch the messiness that synthetic samples miss.
The honest result today: PDF text extraction finds zero work-history entries in the current real-world PDF samples. WorkWingman must not pretend those imports succeeded. An LLM-assisted fallback is the planned bridge, and WING-203 tracks closing that gap.
What changed in the Cloud edition¶
The Cloud edition is invitation-only. Redeeming a team or YC invitation creates a private tenant, which is a workspace belonging to that one redemption. Team and YC audiences remain separate, and Firestore stores the invitation, session, and tenant records needed to keep them separate.
workwingman.ai is served over HTTPS through a Google Cloud load balancer and Google-managed
certificate. Behind it are two Cloud Run services:
ww-teamis the rolling service for the team and may receive later approved releases.ww-ycis the YC review service. It is deployed from a recorded image digest and then frozen so the reviewed build cannot quietly change during the review period.
flowchart TD
U["Invited visitor<br/>workwingman.ai"] --> LB["Google Cloud HTTPS load balancer<br/>managed certificate"]
LB --> TEAM["Cloud Run: ww-team<br/>rolling team edition"]
LB --> YC["Cloud Run: ww-yc<br/>frozen YC digest"]
TEAM --> FS["Firestore<br/>tenant and session store"]
YC --> FS
TEAM --> SM["Secret Manager<br/>invitation hashes and service secrets"]
YC --> SM
For AI features, WorkWingman first looks in the user or tenant's protected bring-your-own-key vault. If no suitable vault key exists, the server may use the approved house configuration key. Keys are never placed in the page or release notes.
Freezing the YC service means recording the exact image digest, deploying ww-yc from that
digest, saving the verification receipts, and refusing rolling updates to that service. Continued
team work goes to ww-team; a YC change requires a deliberate new freeze.
Tickets and next steps¶
- WING-202: this desktop and cloud release.
- WING-203: the PDF résumé extraction gap and LLM fallback work.
- WING-204: tutorials for Wingman Retry and Manual Mode.
- Documentation index: ../README.md