Loading EMBO.
Opening this page.
Opening this page.
For founders, small-business operators, researchers and developers who wrote a small, concrete digital job down in public and said they would pay for it.

Written in public. The job sits on a page anyone can read, not in a private message.
Small and concrete. A digital job with a clear finish line, the kind that has an obvious done.
Willing to pay. The poster has already said so, in their own words, before anyone replied.
The order is the whole offer: the work comes first, the proof second, the payment last.

Post found
SampleNeeds a scraper for a public directory. Poster says they will pay.
Three samples of proof, each made up for this page.
The mixed spellings, doubled rows and stray spaces become one tidy file. The original is left as it came.
ACME LTD
acme ltd
BOLT & Co
Bolt and Co.
Source
Acme Ltd
Bolt & Co
2 rows, 0 duplicates
Clean
Per-job fixed prices under $500, paid once through EMBO's hosted checkout after the client has seen proof.
Fixed per job. Every job carries its own price, never above $500.
Paid once. Through EMBO's hosted checkout, a single payment.
After the proof. The client looks at the work before any payment is asked for.
Small, written down, and worth paying for. That is the work EMBO goes after.
Every listing on the public pages lands in one sheet, with the page each row was taken from.
Bakery, Main St
Plumber, Oak Rd
Florist, Mill Ln
Garage, Quay St
Public page
Bakery | Main St | page 1
Plumber | Oak Rd | page 1
Florist | Mill Ln | page 2
Garage | Quay St | page 2
Sheet
The error, what caused it, the change that fixes it, and a run that passes.
$ run parse_prices.py
TypeError: price of undefined
at line 14
Before
$ run parse_prices.py
ok: every row parsed
1 line changed
After
One link per job. Each offer is a one-time checkout link for that job's price.