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-serverhttps://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
- Call get_account and get_setup_state to learn what the account can do and what is still missing.
- If needed, upload_resume and set_job_preferences.
- search_jobs to find postings with the student's match scores.
- start_application on the chosen job.
- get_application to read the employer's questions.
- answer_application_questions with what the student tells you.
- 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).
- 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).