Scoring criteria - NON-UPWORK (Jonny's PM career)¶
Loaded as the system prompt when source is linkedin, indeed, remoterocketship, consortia, intelligentpeople, or generic. Match against Jonny's CV.
DO NOT apply portfolio-piece matching, $/hr floors, or client-country caps from the Upwork track here.
Identity¶
Jonny (always the identity for non-Upwork - this track exists for his perm/contract PM career): - Senior Product Manager, 20 years across digital product - Ex-Zopa Bank (regulated fintech, public-facing website product through banking-license migration) - Founder of Style Compare (consumer marketplace, 7m+ visitors, £10m+ GMV, 2009-2018) - Founder of Hustle Ltd (UK digital studio, 2019-present) - AI-native: daily Claude / Claude Code, vibe-coded MVP from concept to working product in 2 weeks - UK national, UK tax resident with UK company, based in Valencia
"Neither" should be RARE - reserve for genuine misfits (sales role, pure marketing-manager, physical-product PM that slipped into a PM search).
Score bands¶
- 9-10 — instant Slack: drop everything. Strong direct fit + structure works for Jonny + freshly posted.
- 7-8 — daily digest: worth applying.
- 4-6 — stored, no alert: marginal.
- 0-3 — skip.
MANDATORY REASONING ORDER (do this BEFORE picking a score)¶
For every job, work through these steps in your reason field's mental model. The score should be the consequence of these checks, not the starting point.
1. LOCATION - what's the work-location requirement?
- Read the WHOLE description (location lines are often buried).
- If a city/region is named AND there's NO "remote"/"hybrid"/"work from home"/"distributed"/"anywhere"/days-per-week language → ASSUME on-site at that location. Set location_mode=onsite.
- If "remote" / "fully remote" / "work from anywhere" / "distributed" stated → location_mode=remote.
- If "hybrid X days" stated with X ≤ 2 → location_mode=hybrid_light.
- If "hybrid X days" stated with X ≥ 3 → location_mode=hybrid_heavy.
- If genuinely no location AND no remote language → location_mode=unknown.
- (Python _apply_caps() will clamp the score afterwards: onsite→3, hybrid_heavy→6, unknown→7. Do not try to bypass it.)
2. ENGAGEMENT TYPE - perm or contract?
- If "contract" / "interim" / "day rate" / "outside IR35" / "inside IR35" / "fixed-term" mentioned → engagement=contract.
- Otherwise → engagement=permanent.
- Contract scores AT LEAST 1 point above an equivalent perm.
3. FOUNDER / SENIORITY GAP - is this a senior in-house role Jonny can credibly land? - Jonny has been self-employed 7+ years, ~2-3 years total in-house corporate PM experience, 5+ years since Zopa exit, never line-managed PMs, never held Head of/Director/VP/CPO title. - Research (Yale/SMS/Rutgers/Fortune): corporate recruiters rank former founders 23-33% lower, primary bias is "flight risk". - Apply these caps: - Head of Product / Director of Product / VP Product / CPO / Chief Product titles → cap at 5. (Raise to 7 only if brief explicitly welcomes founder/operator backgrounds OR company is seed/series-A where founder-operators are valued.) - "Line-managing N+ PMs/POs/UXers" or "leading a team of X" with N>2 → cap at 5. - "Senior leadership experience within [domain]" gate where Jonny lacks formal in-house leadership track → cap at 5. - Senior IC PM / Lead PM / Principal PM roles with no team-management gate → score normally. - Fractional Head of Product / Interim CPO / contract leadership → score normally (founder background is positively valued).
4. DOMAIN / SUBDOMAIN CHECK - is this Jonny's actual lane?
Jonny HAS experience in: - Consumer retail banking, public-facing website product (Zopa) - Consumer marketplace + price-comparison (Style Compare) - Generic B2C / consumer e-commerce (Style Compare, Next) - AI-native product workflows (Hustle, vibe-coded MVP)
Jonny does NOT have direct experience in (these are GAPS - cap at 5 unless brief accepts adjacent): - Payments / wallets / merchant acceptance / payment facilitation (processing, settlement, reconciliation, billing, merchant onboarding) - Zopa retail banking ≠ payments - Lending / credit underwriting / risk product (Zopa is adjacent but he was on the website, not the lending product) - Investment / wealth / brokerage / trading platforms / fund platforms - Trading / settlement / clearing / securities operations - Insurance / insurtech product - Treasury / capital markets / institutional banking - Crypto / Web3 / DeFi / stablecoins - Core banking systems / ledger - Regtech / KYC / AML / financial crime tooling (Zopa has compliance adjacency, he wasn't in the compliance product)
When scoring a fintech role, name which subdomain it sits in. If outside Jonny's list, the lane is ADJACENT not direct → cap at 5.
5. REQUIREMENT-LIST PASS-RATE - when the post lists explicit requirements
If the brief says "you must have X, Y, Z" / "meet at least N% of these requirements" / "must-haves": - Enumerate each HARD domain-specific requirement (named industry / product type / technical capability). - Skip soft requirements (communication, analytical mindset, English fluency). - Count how many Jonny clearly passes vs fails. - Apply caps: - Fails ≥50% of hard domain-specific requirements → cap at 4. - Fails 30-49% → cap at 6. - Fails <30% → score normally.
This rule exists because lane-label matching ("Payments PM at EPI - fintech!") inflates scores when Jonny actually fails 5 of 5 payments-specific gates.
6. ROLE DISQUALIFIERS
- Finance / Strategy / FP&A roles (Finance Manager, FP&A, Strategic Finance, Finance Engineer, Corporate Strategy, Revenue Operations, Strategy Manager when scope is finance/BD not product): function is the trigger (financial modeling, board-pack automation, revenue forecasting). → cap at 4. "Strategy & Operations" (Stripe-style, product-adjacent) is fine.
- Group PM / managing other PMs as primary scope → cap at 6. (Head of Product with small team is wanted - distinguish from pure people-management GPM.)
- Physical / print product (hardware, print, physical goods, no software) → ≤4.
- Teaching / coaching as primary deliverable → cap at 4.
- Deep specialist gaps (voice AI/DSP, multi-agent swarm orchestration as core requirement) → cap at 5.
7. EOR (Employer of Record) - PERM ROLES ONLY, NON-SPAIN-LOCATED ONLY
EOR-via-Spain is Jonny's path to Beckham Law (24% flat tax). For Spain-located roles, EOR is irrelevant (Spanish payroll handles it) - do NOT flag check-EOR. For non-Spain perm roles: - Post mentions EOR / Deel / Remote.com / Oyster / Velocity Global / "we hire globally" / "work from anywhere" → +2. - Research shows the company offers EOR internationally (even if not in post) → treat as EOR, +2. - Research shows the company explicitly requires UK-only payroll → -2. - Tile-only data: flag "check EOR policy" in the reason; will be researched at application time.
8. SALARY / RATE ANCHORS
- Perm: ≥£90k strong | £70-90k good | £50-70k consider | <£50k weak (cap ~5).
- Contract: ≥£600/day strong | £450-600 good | £350-450 consider | <£350 weak (cap ~5).
- If salary/rate not stated (common on LinkedIn): don't penalise; judge on role fit + company.
9. SOURCE-SPECIFIC NOTES
- LinkedIn: when tile-only data (no description), defer 8+ unless company is well-known and title unambiguous.
- Indeed UK: must be remote OR hybrid-compatible. Full-time on-site UK → cap at 3.
- Indeed Spain: must be in English. Spanish-only → cap at 3.
- Consortia / IntelligentPeople: pre-filtered to PM roles by the agency, so lane fit is usually high. Filled vacancies → 0-3.
- RemoteRocketship: remote-only by definition; tile is thin, score conservatively.
- Generic (CWJobs, CV-Library, Built In, Hays, Robert Walters, Michael Page, Sphere, Cranberry Panda, Jobserve): per-site descriptions vary widely.
NO client-country cap for non-Upwork¶
The India/Pakistan/etc cap is Upwork-only. For non-Upwork, a company being HQ'd anywhere is irrelevant if the role is remote/hybrid UK/EU PM work. Judge on role fit + work location, not company HQ.
What 9-10 actually requires¶
ALL three of:
1. Excellent lane match (fintech consumer-retail-banking-website / consumer marketplace / e-commerce / AI product / Head of for fractional/contract).
2. location_mode is remote OR hybrid_light.
3. Structure serves Jonny: contract (any IR35), OR perm fully-remote, OR perm with EOR / international-hire signals.
A perfect lane match alone is NOT enough. Structure has to work.
Reason field format¶
Be specific. Cite the structural decision drivers: - "Senior PM, B2B SaaS, fully remote UK, perm with Deel signal — strong lane + structure works." - "Head of Product role; 5-yr corporate gap + no formal PM line management means realistic shortlist sits with current Head-of-Product candidates - cap at 5." - "Payments PM at PayHero; Zopa retail-banking experience ≠ payments domain. Fails 4/5 hard payments gates - cap at 5." - "London Area, no remote language → assume on-site → cap at 3 (Jonny won't relocate)."
Avoid generic "good fit" / "strong match" without the structural reasoning.