Freelancers: A Proposal Workflow Without Per-Seat Tools
The proposal-software world is priced for sales teams: per seat, per month, for a pipeline you don't have. So freelancers send PDFs from their inbox and live with the silence — was it read? Forwarded? Is the quiet a “no,” or just a busy week?
You don't need the suite; you need the signal. This is a proposal workflow sized for one person, built entirely on the free plan — and honest about where its edges are.
Send the link, not the file
Upload the proposal privately, mint one link per person on the client side — the decision maker and whoever else was cc'd:
curl -X POST https://apdf.io/api/docs \
-H "Authorization: Bearer $API_TOKEN" -H "Accept: application/json" \
--data-urlencode "file=https://your-site.example/proposal-studio-karla.pdf" \
--data-urlencode "name=Website Redesign Proposal — Studio Karla" \
-d "is_public=0"
curl -X POST https://apdf.io/api/docs/3830a-3553a-b6eb8/links \
-H "Authorization: Bearer $API_TOKEN" -H "Accept: application/json" \
-d name="Karla Weiss" -d email="karla@studiokarla.example"
Prefer clicks to curl? The whole flow — upload, share, watch — also lives in the dashboard; the API is just the same thing scriptable.
Read the week's signals
Two days after sending, the sessions tell the story no inbox ever does:
curl -s "https://apdf.io/api/docs/3830a-3553a-b6eb8/analytics/sessions" \
-H "Authorization: Bearer $API_TOKEN" -H "Accept: application/json" |
jq -r '.data[] | "\(.recipient.name): \(.pages_viewed)/5 pages · \(.total_duration_ms)ms · \(.created_at)"'
Karla Weiss: 2/5 pages · 110000ms · 2026-07-22 21:21:10
Robert Menke: 2/5 pages · 34000ms · 2026-07-22 10:41:10
Karla Weiss: 5/5 pages · 185000ms · 2026-07-21 09:42:10
- The 12-minute open. You sent at 09:30; Karla read all five pages at 09:42 for three minutes. She was waiting for it — good sign, no action yet.
- The forward. Robert (her partner) skimmed the scope and the price the next morning. Your proposal is being discussed internally.
- The evening return. Karla came back at 21:21 — and the session detail shows exactly where:
"pages": [
{ "page": 3, "views": 1, "duration_ms": 25000, "viewed": true },
{ "page": 4, "views": 1, "duration_ms": 85000, "viewed": true }
]
Timeline check, then 85 seconds on the Investment page, at night, on a return visit. That's someone deciding — tomorrow morning's short, warm email (“happy to split the phases differently if that helps”) writes itself.
Run the three-slot pipeline
The free plan tracks 3 documents at a time — which maps neatly onto a freelance pipeline: your three live proposals. When one closes, archive it and the slot frees up:
curl -X POST https://apdf.io/api/docs/3830a-3553a-b6eb8/archive \
-H "Authorization: Bearer $API_TOKEN" -H "Accept: application/json"
Archiving also closes the viewer for that proposal — a tidy end state for a signed deal. For a lost one, consider revoking the links instead: the old price shouldn't keep circulating.
Know the edges — and when you've outgrown them
- Checking is manual on the free plan
— a sessions call with your coffee (or the link roster's
last_viewed_atfor a two-second glance). Push notifications on opens and reads are automations, which is where Pro starts. - History is 14 days — plenty for a live proposal's decision window; not an archive of your year.
- 25 links per document — a client-side stakeholder list, not a mailing list.
If you're sending enough proposals that these edges chafe, the 14-day Pro trial (no card) is the test drive — but the point of this workflow is that the signal itself was never behind the paywall.
Where to go from here
Same one-person workflow, sharper tools.
Related tutorials
See If Clients Actually Read Your Monthly Reports
The report nobody reads is the retainer nobody renews. Tracked links per client sort the portfolio in one sweep — both Meridian stakeholders read cover to cover, Brightpath flicked for 15 seconds, Okafor never opened — and per-page data tells you whether your decision request was ever seen.
Track Who Reads Your Press Kit
Twenty pitches, twenty attached kits, and a silence that could mean anything. Per-journalist links end the blindness: the full read plus asset download says she's writing, the fact-sheet return visit says offer the interview now, and the never-opened rows say re-pitch — not follow up.
Real Estate: Share Exposés Securely and Spot Serious Buyers
Ten people request the exposé; one is a buyer. Per-prospect links tell them apart: a 22-second price peek is a looker, a return visit with 95 seconds on the floor plan and two minutes on the price page is a phone call — and the day it sells, one loop turns every circulating copy off.