Demand side · plain English · AI guide

Tell us the outcome. We match the human.

For AI leaders who can buy judgment — and for non-technical founders or rich consumers who live with AI all day but should not have to assemble a stack alone. Automated matching, prices, and a step-by-step next-actions guide.

Example: “Set up OpenClaw for me for a day, Mac Mini included, $10,000.” That is a real featured offer on the marketplace.

Start guided matching

(function prefill() { const params = new URLSearchParams(location.search); const offer = params.get('offer'); if (!offer) return; fetch('/api/marketplace/offers/' + encodeURIComponent(offer)) .then(r => r.json()) .then(o => { if (!o || !o.title) return; const ta = document.querySelector('textarea[name=need]'); if (ta && !ta.value) { ta.value = 'I want: ' + o.title + (o.includes_hardware ? ' (includes ' + o.includes_hardware + ')' : '') + '. Budget around $' + o.price_usd + '.'; } }).catch(() => {}); })(); document.getElementById('hire-form')?.addEventListener('submit', async (e) => { e.preventDefault(); const st = document.getElementById('hire-status'); const out = document.getElementById('hire-results'); st.className = 'status'; st.textContent = 'Matching…'; const fd = new FormData(e.target); const body = Object.fromEntries(fd.entries()); try { const res = await fetch('/api/onboard/client', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify(body), }); const data = await res.json(); if (!res.ok) throw new Error(data.error || 'Match failed'); st.textContent = 'Matches ready'; out.style.display = 'block'; out.innerHTML = `

Your results

${esc(data.results_summary)}

Step-by-step guide (for non-technical leaders too)
    ${(data.guide_steps||[]).map(s => '
  1. '+esc(s)+'
  2. ').join('')}
${(data.matches||[]).map(o => `

${esc(o.title)}

$${Number(o.price_usd).toLocaleString()}${esc(o.duration)} · ${esc(o.expert_name)}

${esc(o.description)}

${o.includes_hardware ? '

Hardware: '+esc(o.includes_hardware)+'

' : ''}

${esc(o.legal_note)}

Continue to request
`).join('')}
Browse full marketplace
`; } catch (err) { st.className = 'status err'; st.textContent = String(err.message || err); } }); function esc(s){return String(s||'').replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));}