Cantilever Holdings mark
Cantilever Holdings LLC · Portfolio Governance

Build Case Study

← Work
May–July 2026
Nine weeks, one spreadsheet
Job Search as a Governed Portfolio

From instinct to instrumented judgment
— building a fit-scoring system for an active search

After twelve years governing a portfolio of 35+ concurrent technology initiatives at Fidelity, I built the same kind of system for my own job search: a weighted scoring rubric, a system of record, a compliance tracker, and a sector rollup — applied to the messiest portfolio there is, one's own employability.

9 wks
data window
35
logged activities
5
linked views
6
weighted dimensions
i.

The problem

A Massachusetts unemployment claim requires three qualifying job-search activities a week, tracked and ready to produce on request. That's the compliance floor. But compliance alone was never going to get me hired — and treating every posting as equally worth a full read was a fast way to burn weeks on roles that were never going to work.

Volume without triage: thirty-plus postings a week from LinkedIn's recommendation engine, most requiring a full JD read to rule out — ten to fifteen minutes each just to say no.

The false positive problem: a role can score well on the skills you're good at and still be a bad fit — the pattern that eventually became the domain-fit gate.

No single source of truth: DUA compliance, application tracking, and "am I actually making progress" were three different mental exercises with no shared record between them.

The objective was the same instinct that shaped the Fidelity AMT work: don't rely on memory or vibes for something that has to hold up under scrutiny — build the operating rhythm and the data structure once, then let the structure do the triage.

ii.

Architecture: five linked views, one sheet

The system lives in a single workbook with five sheets that reference each other — intake feeds the log, the log feeds compliance and sector rollups, and a standalone rubric sheet scores any role before it gets a serious look.

1
Quick Add
Intake
Single-row intake form — date entered, everything else auto-tags (Week Of, Entry #).
Frictionless capture — logging an activity must take under 30 seconds or it stops happening.
2
Fit Scoring
Triage
Six-dimension weighted rubric (0–10 each) plus a hard domain-fit gate that can override the weighted score.
A role can look good on paper and still be wrong. The gate encodes that judgment as a rule, not a re-read of the JD each time.
3
Job Search Log
System of record
Every application, recruiter contact, interview, and DUA-qualifying activity — one row each.
Nothing counts unless it's written down. This is the ledger the other views are computed from.
4
Weekly Summary
Compliance
Auto-rolled counts against the Massachusetts DUA 3-activities/week requirement.
Compliance shouldn't require a separate spreadsheet or a Friday-afternoon scramble.
5
Sector Analysis
Pattern visibility
Auto-rolled distribution of where effort is actually going, by sector and by type.
You can't see a pattern you haven't counted. This is the view that made the healthcare/bio tilt visible.
iii.

The fit-scoring rubric, in detail

Six dimensions, weighted, summing to a single score. Each role gets scored 0–10 on each dimension before any real time is spent on it.

Skills / craft fit — 30% Domain fit — 25% Seniority fit — 15% Comp fit — 10% Location / mode fit — 10% Warm-path availability — 10%

Recommendation bands: 7.5+ is apply, strong fit; 6–7.5 is apply via warm path; 4.5–6 is consider only if a warm path exists; below that is skip.

iv.

The keystone: domain fit as a gate, not a weight

A plain weighted average is dangerous precisely because a role can score well on everything you're good at — skills, seniority, comp — and still be the wrong role, if the underlying business is one you don't understand. The rubric handles this with a gate: if domain fit scores below roughly 4, the recommendation is overridden to SKIP or REFERRAL-ONLY regardless of how strong the weighted total looks. The internal shorthand for this is "cricket vs. baseball" — two games that use a bat and a ball and look superficially similar from a distance, and are not the same game at all.

Three roles from the actual log show the range this was built to handle:

×
Vertex Pharmaceuticals
SKIP
Sr Director, Portfolio & Program Mgmt — weighted ≈6.4: skills 9, seniority 9, comp 10, but domain fit scored 2 (pharma drug-development lifecycle, never played this game before).
Company A, PMO-focused role
APPLY, strong fit
Director, PMO — 7.65/10. PMO buildout, tooling migration, and an AI-in-PMO mandate map directly onto the Fidelity AMT work.
Company B, mission-driven role in public education
APPLY via warm path
Director, Strategy & Analysis — 6.75/10. Strong craft match, mission-driven work, but comp ceiling sits below the bridge-income target — a heart-vs-head call.
Why the gate matters
Skills, seniority, and comp all scored at or near the top of the scale — a naive weighted average would have flagged Vertex as a strong apply.
The gate caught what a full JD read eventually would have too, but in seconds instead of fifteen minutes, and consistently rather than depending on how alert I was on a given morning.
v.

Evolving under evidence: two mechanisms, not one

The gate's original threshold was a reasonable starting model, not a finished one — it hadn't yet needed to distinguish between two things that look similar until real evidence forces them apart. A rejection from a large healthcare-adjacent employer (Company C) was that evidence: a genuine warm referral, real engagement through an AI-assisted screen, and a domain-fit score that had been read generously going in (5–6, on a JD stating an explicit 8+ year requirement in that specific industry segment) — and it still wasn't enough once evaluated against candidates who actually had that segment experience.

This is the same pattern behind moving AMT's portfolio tooling from Jira Align to Strategic Portfolio Manager: the first system wasn't wrong, it just hadn't yet been tested against the constraint that mattered. One clean data point separated two things the rubric had been treating as a single, blurrier signal.

1
Stage 1 model
One signal, blurred
A JD stating a domain requirement as "required" or "minimum X years" — not "preferred," not "a plus" — was still scored in the 5–6 range if transferable-skills framing made a reasonable case.
Transferable-skills framing and fast-lexicon-acquisition stories earn real consideration in conversation, but they rarely defeat an explicitly stated required credential — warm path or not. The model hadn't yet needed to separate "earns a conversation" from "clears the bar."
2
Stage 2 model
Two mechanisms, separated
A hard-stated requirement now scores at or near the gate threshold by default (3–4), not a generous mid-range guess — the JD's own language is the signal, not an invitation to build a bridge to it.
Hard-required domain gates and transferable-skills door-openers are two distinct mechanisms with two distinct jobs. Collapsing them into one "warm paths don't work" conclusion would have thrown away a real and valuable signal along with a false one.
The door-opener, valued honestly
A warm path that doesn't clear a hard gate still reliably earns something real: genuine interviews, actual recruiter engagement, real human attention.
That's a distinct, valuable outcome on its own terms — relationship capital, market intelligence, interview reps — not merely a failed attempt at conversion. The corrected model counts it honestly rather than judging it only by hire/no-hire.
vi.

Silence as a signal

One more refinement came from comparing rejections against each other rather than reading each in isolation. Company D produced four rejections across four different warm-path advocates, with zero specific feedback given despite real effort on each one. Company C, by contrast, gave a standard but specific line — other candidates more closely matched requirements in that industry segment. And a separate technology-sector role (Company E) came back with detailed, genuinely actionable feedback on team size and company-stage fit.

The pattern: an organization running a genuine competitive evaluation usually has something concrete to point to, because there was a real evaluation to describe. An organization where the outcome was effectively pre-determined has nothing to explain, because there was never a live competition in the first place. The absence of specific feedback isn't just an absence of information — taken across multiple advocates and multiple attempts, it's itself diagnostic.

vii.

What the sector rollup surfaced

Thirty-five entries, rolled up automatically the moment they're logged — Healthcare/Bio (37%) and Financial Services (26%) together account for roughly 63% of all activity, with Technology trailing at 11% despite it being the more natural fit on paper.

The number that mattered wasn't any single row — it was that seeing that distribution laid out is what prompted the honest question underneath this whole system: was the healthcare tilt a deliberate strategy, or was it just where the loudest volume of LinkedIn-recommended postings happened to be? The rollup doesn't answer that question, but it's the thing that made the question askable in the first place — the same value a portfolio dashboard provides at Director level, just pointed at a portfolio of one.

Sector Analysis tab showing entries, applications, and recruiter contacts by sector
Sector Analysis, live
Auto-rolled from the log — no manual tallying. This is the view that surfaced the healthcare/bio tilt.
Job Search Log tab, company names and referral sources redacted
Job Search Log, redacted
The system of record everything else computes from. Company names and referral sources blacked out for this page — the structure is real, the specifics stay private.
viii.

Compliance as a byproduct, not a chore

Every logged activity — application, recruiter contact, interview, RESEA session — automatically rolls into a weekly summary against the Massachusetts 3-per-week requirement. Nine weeks in, the requirement was met in six weeks outright, missed narrowly in one week that was intentionally a vacation week with no claim filed, and on track for the remaining two.

The point isn't the specific numbers — it's that compliance stopped being a separate task. It became a read-only view of data that had to exist anyway for the rest of the system to work.

ix.

A secondary problem: LinkedIn as an unreliable intake source

A meaningful share of postings arrive via LinkedIn, which is one of the most aggressively anti-scraping platforms on the web. Job detail content largely renders only for authenticated, logged-in sessions — an automated agent fetching a LinkedIn URL cold gets a login wall or a stripped preview, not the actual JD. Company ATS portals (Workday especially) have their own version of the same problem: session-gated content that sometimes reports back as "filled" or "not available" to an automated checker even when a human can click through and apply normally.

This is a real constraint on how far the automation layer can go without crossing into territory that raises its own judgment calls — scraping behind an authentication wall is a different category of action than reading a public page, regardless of technical feasibility. For now, the practical answer is the same one used throughout: the human stays in the loop at the point where a platform's terms of service and a scraper's capability diverge. The Quick Add sheet is designed for exactly that handoff — fast enough to use after a five-second human glance at a posting, structured enough to feed everything downstream automatically.

x.

Outcomes

Volume with structure Legible decisions Faster, more consistent triage Pattern visibility A legible spec, not a black box

35 logged activities across 9 weeks, rolling into weekly DUA compliance status with zero duplicate data entry. Multiple roles scored and either advanced or explicitly skipped with a documented reason, rather than an unrecorded gut call. A domain-fit gate that caught a strong-looking false positive in seconds rather than after a full JD read. And a rubric whose weights, gate threshold, and recommendation bands sit in plain sight on the sheet — the specification an eventual scoring agent would run against, not a black box.

Why it matters beyond the spreadsheet
A plain weighted score is a convenient lie if it can be dominated by dimensions that don't actually gate the decision. The fix is the same in any portfolio: find the dimension that has to act as a hard constraint rather than a weighted input, and build the system so that constraint can't be averaged away.
— on translating AMT portfolio governance into a search of one

The rubric's weights, gate threshold, and recommendation bands are written down in full on the sheet — not implied, not left to memory. That's the same requirement an agent would have to meet before it could be trusted to run the first pass: the judgment has to be legible enough to hand off before it can be automated.