developers
MCP server and REST API
Every open role at startups that raised venture money in the last six months, plus the member's application tracker, company lists and saved searches. For AI assistants (MCP) and scripts (REST). Members only. Setup guides for specific assistants are on /agents.
Authentication
Create a key at Account, AI agents & API. Keys start with jb_live_, are shown once, and are stored only as a SHA-256 fingerprint. Up to 5 keys per member; revoking one stops it immediately.
Send the key as Authorization: Bearer jb_live_... (or X-Api-Key). For MCP connector screens that only take a URL, put the key in the path: https://justbacked.com/api/mcp/jb_live_...
- 401 missing, malformed or revoked key, with
WWW-Authenticate: Bearer resource_metadata="https://justbacked.com/.well-known/oauth-protected-resource/api/mcp"(RFC 9728). - 403 the key's owner is not a member (membership lapsed). 429 over 1,000 requests today (UTC, summed across the member's keys).
- The key acts as the member: searches include roles posted in the last 48 hours, and writes only touch the member's own tracker, lists and searches.
MCP server
Stateless Streamable HTTP at https://justbacked.com/api/mcp: POST one JSON-RPC message (or a batch of up to 20) and get JSON back. No sessions or SSE. Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05. initialize and tools/list work without a key; tools/call needs one.
claude mcp add --transport http justbacked https://justbacked.com/api/mcp \
--header "Authorization: Bearer jb_live_YOUR_KEY"curl -s https://justbacked.com/api/mcp \
-H "Authorization: Bearer jb_live_YOUR_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_jobs","arguments":{"functions":["design"],"cities":["nyc"],"stages":["a"],"min_pay_usd":150000}}}'search_jobsread-only
Search open roles at startups that raised venture money in the last six months. Same filters as the justbacked.com board. Members see roles the day they are posted. Returns jobs with title, company, location, pay, latest round, investors and apply link, plus total matches and a board_url to share.
query, search_descriptions, cities, location, countries, work_modes, functions, seniority, stages, raised_within_days, min_raise_usd, min_pay_usd, has_pay, company_sizes, industries, investors, posted_within_hours, hiring_fast, employment, exclude_title_words, list_id, include_non_venture, sort, limit, offset
get_jobread-only
Full detail for one role: description, pay, the company's latest round and investors, hiring velocity, apply URL, which hiring system (ATS) it uses, and whether it is already in the user's tracker.
job
get_application_formread-only
The role's application questions (labels, types, required, options) read from the company's public Greenhouse, Lever or Ashby job board, so you can draft answers for the user to review. Read-only: it never submits anything. The user applies at apply_url.
job
get_companyread-only
A startup's profile: latest round, amount, date, lead investors, headcount, HQ, hiring velocity by function, and every open role.
company
track_applicationwrites to the member's account
Add a role to the user's JustBacked tracker (shown at justbacked.com/saved) or update its status. Statuses: saved, applied, interviewing, offer, rejected, withdrawn, archived. Use "saved" for roles the user is considering; use "applied" only after the user confirms they submitted. For a role found elsewhere, pass title + company + apply_url instead of job.
job, status, notes, applied_at, title, company, apply_url
list_applicationsread-only
The user's application tracker: every saved or applied role with status, applied date and notes, plus counts by status.
status, limit
update_applicationwrites to the member's account
Change a tracked role's status (e.g. interviewing, offer, rejected, withdrawn), replace its notes, or append a dated note.
job, status, notes, append_note, applied_at
list_listsread-only
The user's company lists (target companies) with each company's open roles and new roles this week. A list id also works as list_id in search_jobs.
add_to_listwrites to the member's account
Add a startup to one of the user's lists. Pass list_id, or list_name (an existing list's name, or a new list to create). Lists with alerts on email the user when a company posts a role or raises.
company, list_id, list_name
remove_from_listwrites to the member's account
Remove a startup from one of the user's lists.
company, list_id
list_saved_searchesread-only
The user's saved searches (email alerts) with their filters and board links.
save_searchwrites to the member's account
Save a search with the same filters as search_jobs. JustBacked emails new matching roles daily (or weekly).
name, alert, query, search_descriptions, cities, location, countries, work_modes, functions, seniority, stages, raised_within_days, min_raise_usd, min_pay_usd, has_pay, company_sizes, industries, investors, posted_within_hours, hiring_fast, employment, exclude_title_words, list_id, include_non_venture
delete_saved_searchwrites to the member's account
Delete one of the user's saved searches by id.
id
get_accountread-only
The user's membership, API usage today and tracker/list/search counts.
JustBacked never submits job applications. get_application_form reads a role's public questions so an assistant can help the member prepare; the member applies on the company's site.
REST API
Base URL https://justbacked.com/api/v1. JSON in and out. OpenAPI 3.1: /api/v1/openapi.json.
GET/me
Membership, API usage today, counts.
GET/jobs
Search roles. Same query string as justbacked.com/jobs (q, metro, fn, lvl, mode, stage, raised, min, minpay, pay, size, ind, inv, posted, fast, emp, not, list, all, desc, sort) plus limit (1-50) and offset.
GET/jobs/{slug}
One role: description, pay, round, investors, hiring velocity, apply URL, ATS, tracker status.
GET/jobs/{slug}/application-form
The role's public application questions (Greenhouse, Lever, Ashby). Read-only.
GET/companies/{slug}
Startup profile and every open role.
GET/applications
The tracker (?status=applied).
POST/applications
Track a role: {job, status, notes, applied_at}, or {title, company, apply_url} for a role found elsewhere.
PATCH/applications
Update: {job, status?, notes?, append_note?, applied_at?}.
GET/lists
Company lists with each company's open roles.
POST/lists
{company, list_id | list_name}: add a company (creates the list by name if needed).
GET/saved-searches
Saved searches (email alerts).
POST/saved-searches
{name, alert: daily|weekly|off, ...search_jobs filter fields}.
DELETE/saved-searches?id=
Delete one.
curl -s "https://justbacked.com/api/v1/jobs?fn=engineering&mode=remote&raised=30&limit=10" \
-H "Authorization: Bearer jb_live_YOUR_KEY"curl -s -X POST https://justbacked.com/api/v1/applications \
-H "Authorization: Bearer jb_live_YOUR_KEY" -H "Content-Type: application/json" \
-d '{"job":"<job slug>","status":"applied","notes":"Referred by Sam"}'Data notes
- Roles come from each company's own hiring system, read daily, for startups whose latest venture round is under six months old. Closed roles drop out.
posted_atis null for roles that were already open when we first read the company's board; those carryon_board_sinceinstead.- Pay appears only when the posting publishes it.
min_pay_usdcompares annualized USD pay. - Questions or a higher limit: [email protected].