Developers

Connect an assistant to Litos.

Litos is a job application agent for students. It recommends roles that match the student's own resume and preferences, with a match score on every posting, then builds a fully tailored application for each one: a resume rewritten for that posting and a cover letter, both built only from the student's main resume and the experience they have described, checked line by line so nothing is invented. The student reviews and can edit every resume, cover letter and answer before it is sent, and nothing is submitted unless the student confirms or has turned on auto-apply. An assistant connects to a student's Litos account over MCP (preferred) or a REST API, authorized by OAuth 2.1. Everything the Litos dashboard can do is available: profile and resume, job search, starting, reviewing and sending applications, cover letters, documents, and buying a pass.

MCP

Endpoint: https://api.trylitos.com/mcp. Streamable HTTP transport, stateless (no session id), JSON responses. Protocol version is negotiated on initialize; 2025-11-25 and every earlier version the official MCP SDK supports are accepted.

An unauthenticated request answers 401 with WWW-Authenticate: Bearer resource_metadata="https://api.trylitos.com/.well-known/oauth-protected-resource/mcp".

OAuth 2.1

Authorization code with PKCE, S256 only.

Discovery
https://api.trylitos.com/.well-known/oauth-authorization-server
https://api.trylitos.com/.well-known/oauth-protected-resource
Authorize
/oauth/authorize
Token
/oauth/token
Register
/oauth/register (RFC 7591 dynamic registration, public clients by default)
Revoke
/oauth/revoke
Resource indicator (RFC 8707)
https://api.trylitos.com/mcp

Client ID Metadata Documents are supported: an https URL may be used as the client_id.

Access tokens last 1 hour. Refresh tokens last 30 days and rotate on use.

The consent screen is served by the API. The student signs in with an emailed code (a new email creates the account) and presses Allow. Students can see and revoke connected apps from their account.

Scopes

An empty scope request grants all seven.

account:read
See your account, plan and remaining applications
account:write
Update your profile, resume, documents and job preferences
jobs:read
Search the job board with your match scores
applications:read
See your applications and their status
applications:write
Start, fill, answer and send applications for you
billing:read
See your plan and billing state
billing:write
Buy a Litos pass with a payment you approve

Tools

Every tool below is listed by the MCP server with a full description and an input schema. The scope in the right column is the one the token must hold.

Account

get_accountaccount:read
The signed-in account: email, plan, dates and how many applications remain. Call first.
get_setup_stateaccount:read
Where first-time setup stands: resume, main resume, job preferences, sponsorship, automation permissions.
set_automation_permissionsaccount:write
Record what Litos may do on employer sites without asking each time. Send only what the student agreed to.
complete_setupaccount:write
Mark first-time setup finished with the permissions the student chose.
list_connected_appsaccount:read
The apps connected to this account and the scopes each holds.

Profile

get_profileaccount:read
The parsed resume profile: contact details, education, skills, target roles, experience. 404 until a resume is uploaded.
upload_resumeaccount:write
Upload a resume (PDF, DOCX, PNG, JPEG or WebP, up to 10 MB). Re-uploading replaces the parse.
update_profileaccount:write
Edit fields of the parsed profile. Send only the fields to change.
get_recent_experience_reviewaccount:read
The most-recent-role check Litos asks for after an upload, with candidates and current answers.
save_recent_experience_reviewaccount:write
Confirm the most recent role and save any strengthened bullets.
get_application_profileaccount:read
The facts employer forms ask for: address, work authorization, sponsorship, availability, GPA, test scores.
update_application_profileaccount:write
Save application facts. Send only the fields to change; null clears one.
get_job_preferencesaccount:read
Saved job preferences: categories, title keywords, role types, locations, remote-only, start periods.
set_job_preferencesaccount:write
Save job preferences. Applications outside the saved locations are refused unless remote.
get_main_resumeaccount:read
The main resume Litos built from the upload, with when it was built.
build_main_resumeaccount:write
Build or rebuild the main resume. Takes 10 to 30 seconds.
edit_main_resumeaccount:write
Replace the main resume with an edited copy. Bullets are length-checked.

Jobs

search_jobsjobs:read
Search the board. With a resume on file each job carries match_score and preference_score. Page with offset.
get_jobjobs:read
One posting in full: description, apply URL, portal, salary, remote flag, sponsorship evidence.
get_job_facetsjobs:read
The companies and locations currently on the board.
read_job_urljobs:read
Read a posting from any https URL and identify its company, role and Litos job_id when possible.

Applications

list_applicationsapplications:read
Every application on the tracker with its states. Each id is the application_id other tools take.
get_application_boardapplications:read
The board view: every application as a card with its stage and send status.
start_applicationapplications:write
Start an application to a board job and tailor the resume to it. Spends one application; never charged twice for the same job.
prepare_applicationapplications:write
Prepare a board job using the main resume as-is: opens the employer form and returns the questions it needs answered.
create_applicationapplications:write
Add a posting that is not on the board by company, role and application URL.
tailor_resumeapplications:write
Tailor the resume to a job description and attach it to an application. Spends one application.
get_applicationapplications:read
Everything about one application: questions and answers, attached documents, cover letter, and whether it is ready to send.
answer_application_questionsapplications:write
Save answers to the employer's questions. Ask the student anything the profile cannot answer.
send_applicationapplications:write
Fill the employer's form and, with confirm_send true, submit it. Set confirm_send after the student says to send, or when auto-apply is on. Returns 202 while running; poll get_application.
approve_filled_applicationapplications:write
Approve a form Litos has filled and is holding for review, so it is submitted.
audit_application_packetapplications:read
Run the pre-send check: verify the resume, render the PDF, list the questions.
set_application_stageapplications:write
Move an application to saved, applied, interview, offer or closed.
remove_applicationapplications:write
Remove an application from the tracker. Refused once a send is in flight or complete.
get_cover_letterapplications:read
The cover letter attached to an application, with its download URL.
generate_cover_letterapplications:write
Write a cover letter from the tailored resume and the job description.
update_cover_letterapplications:write
Replace the cover letter text with the student's edits.

Documents

list_documentsaccount:read
The supporting documents on file that Litos attaches when an employer asks.
attach_documentaccount:write
Upload a PDF (up to 4 MB) for an application and keep it on file.
delete_documentaccount:write
Delete a supporting document. Ask before deleting.

Billing

list_passesbilling:read
The Litos+ passes that can be bought, in USD, with their application limits.
get_billing_statebilling:read
Access class, the active pass or subscription with its end date, and applications used this cycle.
purchase_passbilling:write
Buy a pass with a payment the student approved in the conversation. Charges the pass price once.
create_checkout_linkbilling:write
Fallback: a Stripe-hosted checkout link for the renewing subscription, opened in a browser.
cancel_subscriptionbilling:write
Cancel a renewing subscription at the end of its period. Passes do not renew.

REST mirror

Every tool is also POST https://api.trylitos.com/v1/<tool_name>with a JSON body matching the tool's input and the same bearer token.

The full surface is described by https://api.trylitos.com/v1/openapi.json (OpenAPI 3.1).

Billing inside an assistant

Litos+ passes are paid once and never renewed.

1 week
$29.99, 50 applications
1 month
$59.99, 200 applications
3 months
$119.99, 600 applications

purchase_pass takes the payment method or card token of a one-time Stripe Link card (pm_ or tok_), or a Stripe shared payment token (spt_) where the seller account supports it, and charges exactly the pass price once. A pass bought while one is active starts when the current one ends.

Sending is confirmed per application only when the student's auto-apply permission is off. When auto-apply is on, Litos sends approved applications without a further prompt. The assistant sets confirm_send on send_application after the student says to send, or when auto-apply is on; get_setup_state reports automatic_submission_enabled.

Recommended flow

  1. Call get_account and get_setup_state to learn what the account can do and what is still missing.
  2. If needed, upload_resume and set_job_preferences.
  3. search_jobs to find postings with the student's match scores.
  4. start_application on the chosen job.
  5. get_application to read the employer's questions.
  6. answer_application_questions with what the student tells you.
  7. send_application with confirm_send true, after the student says to send this application, or without a further prompt when auto-apply is on (get_setup_state reports automatic_submission_enabled).
  8. On a 402 entitlement_required, offer list_passes and purchase_pass.

Limits and support

Rate limit: 600 requests per minute per address on the agent surface. Each account is metered separately underneath.

Support: admin@trylitos.com. A reviewer test account can be requested from support.

Privacy (https://trylitos.com/privacy) and Terms (https://trylitos.com/terms).