Skip to content
FindsYou-WorkPublic

About

findsyou.work — a job search that runs without you. Static HTML, no build step, Cloudflare Pages. Product not built yet.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FindsYou. Stop looking. It finds you work.

Product: not released Pages: 1 Stack: vanilla JS Build step: none Dependencies: zero Deploy: Cloudflare Pages Agent readable: yes

findsyou.work · a Factory Zero venture


The site

This repository is the marketing site for FindsYou: one page, one stylesheet and one script, served by Cloudflare Pages. There is no framework, no bundler, no build step and no runtime dependency except Cloudflare Turnstile, the human check on the waitlist form. It was designed in Claude Design (FindsYou Landing.dc.html) and ported to static HTML.

Stop looking. It finds you work.

The rule this site is built around

Nothing is released. The scan, the eligibility filter and the profile exist as code in the private product repository, but no module is mounted on the public Worker, so nothing here is usable. The only working thing on the site is the waitlist. Every capability carries one of two labels, and the label sets the tense of the sentence around it.

  • Shipping: built, deployed, usable now. Present tense allowed only here. Today that is: this page, and the waitlist.
  • Planned: named, unbuilt. Conditional tense, and a planned chip wherever it appears on the page.

A banner at the top of the page says so in the first sentence a visitor reads, and llms.txt repeats it for machine readers, so an answer engine cannot describe a planned feature as available.

The numbers on the page (483 scanned, 34 eligible, 18 worth it, 5 applied) are an illustration of the intended shape, labelled as such in the section itself. They are not measured output, because there is nothing to measure yet.

The page

Anchor Section Job
/ Hero The claim, and a rain of listings where most fall through
#number 01 / the number 483 counts down to 18 as you scroll
#wall 02 / the wall of no The signature screen. Rejected listings, each stamped with the reason
#remote 03 / why "remote" is a lie The six eligibility questions, and a world map that dims as each is answered
#how 04 / how it works Three steps and the funnel
#trust 05 / it won't make things up The provenance refusal: "2 years" rejected against a CV that says "two years"
#docs 06 / what you get The CV and cover letter as objects
#compare 07 / the comparison Everyone else optimises for more. This optimises for fewer
#price 08 / price Free to scan. Paid documents are planned, not chargeable
#waitlist Waitlist The only form, and the only thing here that works

Plus 404.html, llms.txt, sitemap.xml, robots.txt, site.webmanifest and .well-known/security.txt.

Layout

.
├── index.html              the page, GENERATED, see below
├── 404.html
├── assets/
│   ├── findsyou.css        the whole design system, tokens at the top
│   ├── findsyou.js         reveal, the three scroll scenes, the waitlist
│   ├── world.svg           GENERATED, projected at build time, inlined into the page
│   ├── favicon.svg         the mark: things fall, one is caught
│   ├── org-avatar.png      GitHub org avatar, uploaded by hand
│   └── readme-banner.png   the banner above, GitHub only, not served
├── llms.txt                the structured summary for machine readers
├── robots.txt              AI crawlers welcomed by name
├── _headers  _redirects    Cloudflare Pages
└── tools/
    ├── build-page.py       emits index.html
    ├── build-map.py        emits assets/world.svg
    └── build-dist.sh       assembles dist/ for deploy

Two files are generated, and both are committed

index.html and assets/world.svg are written by the scripts in tools/. The output is committed, so a deploy ships exactly what the repository holds and the site itself still has no build step. Re-run them only when the copy, the card decks or the projection change:

python3 tools/build-map.py     # world.svg  (only when the projection changes)
python3 tools/build-page.py    # index.html (after any copy change)

build-map.py projects Natural Earth to plain SVG paths in about sixty lines of Python, so the page ships no d3, no topojson and no CDN call. The design canvas loaded ~300 KB of mapping libraries at runtime; this does the same work once, at build time, for 27 KB gzipped.

The "Built with" strip

The footer line naming what findsyou.work is built with (Cratefield, live: the waitlist Worker; Owlpost, Stripe, SupportGenius and Keep Shipping, planned; Cloudflare, live) comes from the Factory Zero registry: this venture's uses in Factory-Zero/website assets/fz-data.js, published as https://factory0.ventures/stack.json and vendored in tools/built-with.json. tools/built-with.py writes it between the built-with markers, and build-page.py runs it after every rebuild. When the registry changes, run python3 tools/built-with.py --pull; never edit the strip or the JSON by hand. Planned entries carry "(planned)", the same rule as the rest of the page.

Development

There is no build step and no server requirement beyond static files:

python3 -m http.server 8000     # then open http://localhost:8000

The waitlist

The form posts to https://api.findsyou.work/v1/waitlist with product: "findsyou": a separate Cloudflare Worker in FindsYou-Work/waitlist-backend, running the Cratefield harness waitlist module with a D1 database of its own.

The form is rendered hidden and revealed by JavaScript. A browser without JS is shown a mail fallback instead of a control that cannot work. A honeypot field catches bots, and tells them nothing.

Every join also carries a Cloudflare Turnstile token, sent as captchaToken. The widget (site key 0x4AAAAAAFM4KC2DoEjSoBx_, action waitlist, rendered explicitly by assets/findsyou.js) sits under the address field; the Worker verifies the token against findsyou.work and that action, and refuses a join without one (400, problem type captcha-failed). The page says so in words when the check is refused, and when the Turnstile script cannot load (a content blocker, usually), pointing at the mail address instead. The widget is reset after every attempt: a token is good once.

Content-Security-Policy. _headers sends a strict policy with no 'unsafe-inline': default-src 'self', frame-ancestors 'none', object-src 'none', base-uri 'self', and every other directive limited to what the pages actually load (see the comments in _headers). Turnstile is the only third party in script-src and frame-src, and connect-src is the waitlist Worker alone. Two things keep it that way, and tools/build-dist.sh refuses to build when either drifts:

  • an inline <script> is allowed only by its sha256 in _headers; and
  • no page may carry a style="" attribute. Write the style, then run python3 tools/build-page.py (it runs tools/csp-inline-styles.py last): it moves every attribute into assets/findsyou-inline.css as a class. Each rule weighs as much as the inline style did, so the look does not change.

www. The Worker binds one hostname, the apex. A check solved on www.findsyou.work is refused as hostname-mismatch until www redirects to the apex (a Cloudflare Redirect Rule on the zone).

Deploy

./tools/build-dist.sh
npx wrangler pages deploy dist --project-name=findsyou

Use an API token for the Cloudflare account that owns findsyou.work. The default wrangler login may be a different account, and the deploy then fails with Authentication error [code: 10000].

Accessibility and motion

Motion is decoration. Under prefers-reduced-motion every scroll scene collapses to an ordinary block, the stamps are already landed, and the page reads as a plain document. Nothing is hidden until JavaScript runs, so a blocked or failing script can never leave a section invisible.

Licence

The code in this repository is MIT. The FindsYou name and mark are not.

About

findsyou.work — a job search that runs without you. Static HTML, no build step, Cloudflare Pages. Product not built yet.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages