App page · split-view run surface

Revised /p/:slug. The chat-style single-column version hid the input once a run started — that broke trust. This brings input-left / output-right back, but with 2026 chrome: thin borders, quiet surfaces, typography-led output, one green accent. The input is always visible so you can see what you sent alongside what came back.

2026-04-22 v17 · supersedes chat-style draft source: /p/lead-scorer
State 1 · Idle — input focused, output shows the shape of what's coming back
floom.dev/p/lead-scorer
floom
/Store/lead-scorer
LS
lead-scorer
Score inbound leads for fit + intent. CSV in, ranked list with reasoning out.
v0.1.0 · by @fede
Inputs
action · score_batch
Used as the scoring rubric. Plain English — no schema.
leads-q2.csv
50 rows · 4 columns · 12 KB
Columns detected: company, domain, title, headcount.
50 – 2,000
Rows outside this range get a 0 fit score.
~1.2s · 5 free runs
Output
preview
Your result will look like this
Ranked table · one row per lead · fit score 0–10 + short reasoning.
5 columns · sortable
CompanyScore
Hit Run to populate · first 5 runs are on us.
About this app Install in Claude Source
IDLE · input 3/4 · output preview 1/4 · ratio flips once you Run
State 2 · Running — input dims but stays legible, output streams row-by-row
floom.dev/p/lead-scorer
floom
/Store/lead-scorer
LS
lead-scorer
Score inbound leads for fit + intent. CSV in, ranked list with reasoning out.
running · 00:03
Inputs
read-only while running
ICP description
B2B SaaS, 200-2000 FTE, RevOps / founder / VP-level buyer, English-speaking markets.
Leads file
leads-q2.csv · 50 rows · 12 KB
Company size
50 – 2,000
Rubric preset
b2b-saas
Inputs locked until run finishes
Output
live · score_batch
Scoring 50 leads against your rubric
row 12 / 50 · 5 high-fit so far
row 19.2RampRevOps ICP · 850 FTE · strong domain signal
row 28.8LinearFounder-led · PLG fit
row 38.1FigmaVP Sales title · enterprise motion
row 46.4NotionWrong ICP tier · PMM contact
row 54.1Acme PlumbingOff-ICP · SMB services
row 68.7VercelFrontier devtools · series C
row 75.2SquarespaceWrong ICP · legacy stack
row 87.9AirtableOps-adjacent · 1.2k headcount
row 96.8WebflowBorderline · marketing-led
row 108.4RetoolInternal tools · 700 FTE
row 115.8Shopify merchantSMB · under threshold
row 12Supabaseanalyzing domain + intent signals…
50 rows · est. 500ms remaining
About this app Install in Claude Source
input dimmed (opacity .72) · hover to focus · still legible · cancel lives in the header
State 3 · Complete — input stays put with "Edit & rerun", output fills with results
floom.dev/p/lead-scorer?run=r_a7f3
floom
/Store/lead-scorer
LS
lead-scorer
Score inbound leads for fit + intent. CSV in, ranked list with reasoning out.
run · r_a7f3 · 1.2s
Inputs used
ICP description
B2B SaaS, 200-2000 FTE, RevOps / founder / VP-level buyer, English-speaking markets.
Leads file
leads-q2.csv · 50 rows · 12 KB
Company size
50 – 2,000
Rubric preset
b2b-saas
Sent 2 min ago
Output
done · 1.2s · 50 rows
Scored 50 leads · 18 high-fit · 14 mid · 18 off-ICP
1.2s · just now
Ranked results · sorted by fit score (desc) top 8 of 50
CompanyTitleHeadcountScoreReasoning
RampHead of RevOps8509.2RevOps ICP · strong domain signal
LinearFounder1208.8Founder-led · PLG fit
VercelVP Eng5408.7Frontier devtools · series C
RetoolHead of GTM7008.4Internal tools · enterprise motion
FigmaVP Sales1,4008.1VP Sales title · enterprise motion
AirtableHead of Ops1,2007.9Ops-adjacent · mid-market
WebflowDemand Gen Lead4806.8Borderline · marketing-led
NotionPMM9006.4Wrong tier · skip
+ 42 more rows · view all · download CSV
About this app Install in Claude Source
input stays put · "Edit & rerun" in situ · share link inline · no context shift
What changed vs the chat-style draft
Chat-style draft (rejected)
  • Single 720px column, inputs owned the stage until Run, then collapsed to a one-line bar
  • Post-run you could no longer see the ICP, the file name, the company-size range — just a summary label
  • To re-check what you submitted you had to click "Edit & rerun" and lose the output
  • Felt like ChatGPT, which is fine for conversation but wrong for "run a tool, check the result"
Split-view (this wireframe)
  • Always a split — never a full-page input or full-page output. The ratio flips with state.
  • Idle: input 3/4 (editable) + output 1/4 (shape preview of the table that's coming). Input is the focus.
  • Running + complete: input 1/4 (read-only recap) + output 3/4 (live stream or full result table). Output is the focus.
  • Input always visible — during run (dimmed, read-only) and after (read-only with "Edit & rerun")
  • Output running state streams row-by-row with a live pulse; you can scroll it while the input stays put
  • Output complete state fills with the real table; Run again + share link in the header
  • About / Install / Source demoted to quiet chips in a footer row — not primary nav
Design calls (please approve)
Contracts kept from prior drafts