Official scripts
Explore our curated collection of scripts
Suggest Trainline stations and cities
Look up stations and cities on Trainline by name, as its From and To fields suggest them while you type, in Trainline's own order. Returns each place's name, type (station or city), country code and Trainline code, which thetrainline.com/search_journeys takes as origin and destination. Trainline's matching is loose: a name it does not know can still bring up an unrelated place, so check the names before you search. A text Trainline has no suggestion for returns an empty list.
Search Trainline train journeys (+ all stops)
Search train journeys on Trainline between two stations or cities, given as Trainline codes from thetrainline.com/suggest_locations, on a date or a number of days after today (for searches that run on a schedule), from a time of day. Returns the journeys Trainline lists from about that time (about 10), across carriers such as SNCF and Deutsche Bahn: departure and arrival times, ISO duration, changes and legs (stations, train, train number, carrier), and the prices as Trainline sells them. A journey is sold as one ticket or as several, and each ticket lists its offers: price, currency, flexibility, seller, and each fare's name, exchange and refund conditions and class on each train. For later trains, search again from a later time. With includeStops=true, each leg also gets every calling point of its train with scheduled times, platform and live status; Trainline has these only for near-term trains, so a leg far ahead gets null. A route Trainline sells no tickets on returns an empty list.
Get a Strava segment and its leaderboard
Returns a Strava segment's name, sport, location, distance, grade and elevation, its effort and athlete totals, the KOM, QOM and Local Legend holders, and one page (25 rows) of its leaderboard. The leaderboard can be everyone, your own efforts, people you follow, one age group or one weight class, filtered by gender and by today, this week, this month or this year; has_more says whether another page exists. Club leaderboards are not offered. Distances are in meters, times in seconds, speeds in meters per second. Fails when the segment does not exist or is private.
Get LinkedIn profile skills
Get the full list of skills a LinkedIn profile lists, in the order the profile shows them, from the profile's own skills page. Pass the public profile id or a full profile URL. Each skill comes with the supporting lines shown beneath it — the jobs, schools and certifications it is tied to, plus any endorsement or skill-assessment note — and, where the profile offers them, a link to the skill's endorsers list and a link to its detail page. Both links are per-skill rather than per-profile: most skills carry neither, a skill with endorsements usually carries the endorsers one, and only a skill with more detail than fits inline carries the detail one, so expect null on many entries. Profiles that list no skills come back as an empty list rather than an error. Requires being logged in to LinkedIn. Complements the profile experience and education scripts.
SNCF Connect unofficial API: search train journeys and fares
An unofficial SNCF Connect API for train search: SNCF Connect has no public API for journeys and fares, and this returns them as JSON, programmatically. Search trains between two places on a date or a number of days after today (for searches that run on a schedule), from a time of day, Paris time. Give each place as sncf-connect.com/suggest_places returns it, or by its name: a name is used only when SNCF has exactly one city (else one place) with that exact label, and otherwise fails with the candidates. Returns SNCF's status for the search and each journey it lists from about that time (a page of about 5 to 10): times, duration, operator, best price, and all of its fare offers (class, fare name, price, flexibility label, and the exchange and refund conditions as SNCF writes them). A train not yet on sale has no offers. For later trains, search again from a later time. No journeys, with a status other than RESULTS, means no tickets are on sale for that date. International routes are on sale for a shorter time ahead than domestic ones.
List ChatGPT models
List the models ChatGPT offers the signed-in account and the lanes its model picker is built from, plus the account's default model. Each model carries its slug, title and description; each lane carries its id, name, default model, the models it holds and the plan it requires. On a free account the picker itself is not shown and only the free lanes come back, which is what the site offers there. A signed-out browser fails with a signed-out error asking to sign in to chatgpt.com.
Search RemoteOK jobs
Search all live RemoteOK job postings with the same fuzzy full-text match as the site's search box, or omit the query for the most recent postings. Returns up to 50 jobs per page with title, company, tags, location, date and salary; page with offset. Salary is null when the employer gave none.
Sales Navigator: get lead
Fetch a full LinkedIn Sales Navigator lead profile by its lead id (from search_people). Requires a Sales Navigator seat; contactInfo is empty unless the lead is unlocked for the seat. Returns fullName, headline, summary, degree, location, classic LinkedIn profile URL, full position history (title, company, companyUrn, description, dates), saved-list status, and contact info when unlocked.
Download candidate resume
Download a candidate's CV (resume PDF) from the ATS to a local file on the agent machine. Returns path, filename, size, contentType, and hasResume, which is false (with path/filename null) when the candidate attached no CV. Run it for one candidate at a time: parallel runs can attach a file to the wrong candidate.
Suggest SNCF Connect places
Look up places on SNCF Connect by name, as its Departure and Arrival fields suggest them while you type, in SNCF's own order: cities and stations, then city stops, points of interest and addresses. Returns each place's id, label, type, description (often its region or country) and the group SNCF lists it in. Pass a place unchanged to sncf-connect.com/search_journeys as origin or destination. A text SNCF has no suggestion for returns an empty list.
Sales Navigator: get account
Fetch a LinkedIn Sales Navigator company account by its numeric Sales Navigator id (from search_accounts, or a companyUrn on search_people). Needs a Sales Navigator seat; headcount history and median tenure are null when no insights panel is present. Returns name, description, industry, type, specialties, website, year founded, headquarters and location, revenue range, employee count and growth, headcount history, median tenure, and spotlight employees (name plus leadId to pivot to get_lead).
Get YC company profile
Get one YC company's full public profile (ycombinator.com/companies/<slug>): pitch, batch/status, founders, socials, open jobs, news, launches, photos, founder Q&A.
Download Uber trip invoice PDF
Download one Uber trip's invoice PDF (trip page > Download Invoice) by tripId (uuid from riders.uber.com/list_trips). Returns the file's filename and the path where the browser saved it (or a url to it on a managed browser), so you can read or move the PDF directly. Trips without an invoice (e.g. canceled €0.00 rides) have no Download Invoice affordance and fail loudly.
Sales Navigator: search accounts
Search LinkedIn Sales Navigator company accounts by keywords, headquarters location (regionId, a LinkedIn geo id from linkedin.com/suggest_locations — place names are not accepted), and headcount, paginated 25 per page via a 0-based start offset. Returns total, count, start, and accounts (accountId, companyName, industry, employee count and range, description, list/saved status, spotlight badges, salesAccountUrl). Requires a Sales Navigator seat.
List LinkedIn job search filters
List the filters LinkedIn's jobs search offers for a search, with the options each one shows and LinkedIn's ids for them: places inside the area, companies, industries, job functions, titles, benefits, commitments, salary buckets, experience levels, job types, workplace types, distance, date posted and the yes/no filters. Each filter names the linkedin.com/search_jobs arg that takes its ids. The options are the short list LinkedIn shows in its filter panel for this search, not every possible value, and they change with the keywords and place.
Sales Navigator: search people
Search LinkedIn Sales Navigator leads with the advanced filters (title, geography, seniority, function, company headcount, tenure, relationship, keywords, and more), paginated 25 per page via a 0-based start offset. At least one filter or keyword is required — start on its own is pagination, not a search. Returns total, count, start, and leads (leadId, fullName, memberUrn, degree, geoRegion, current title/company/industry, tenure, summary, spotlights, salesLeadUrl). Requires a Sales Navigator seat.
Search remaining MAX JEUNE seats per train on SNCF Max Planner
Searches the SNCF MAX JEUNE / MAX ACTIF Max Planner between two stations and returns, for each of the next 30 days starting today (the site's full booking window), every train with MAX seats still available and how many seats remain. A day the site has no data for yet, or failed to answer, is returned with that reason and no trains. A station name that matches several stations fails and lists them.
Send LinkedIn message
Send a message on LinkedIn (classic messaging, not Sales Navigator) — reply in an existing conversation by thread URL, start a conversation with a connection by name, or message by profile URL. Optionally attach a file (image or document) alongside the text. Returns whether it sent, who it went to, and confirmation the message/attachment landed. Limited to 1st-degree or open-profile connections; InMail (paid) is a separate flow not handled here.
Create a Vinted listing
Create a for-sale listing on Vinted from a photo, title, description, category, condition, price and package size (plus an ISBN for books). Works on whichever Vinted country site the browser is signed in to. Defaults to a dry run that fills the whole form and publishes nothing; saveAsDraft keeps the listing private, otherwise it is published. Confirms the result by reopening the saved item. Categories that also ask for brand or size, such as clothing, are refused for now rather than listed incomplete.
Get LightStream loan rates for a purpose, amount and term
Run LightStream's rates and terms calculator for a loan purpose, amount, term in months and payment method (AutoPay or invoice), without an application or credit check. Returns the APR range and the estimated monthly payment range for that combination, the amount and term bounds LightStream accepts for the purpose, the rate date, and the full published grid of APR ranges by amount band and term band. Car financing is covered by the new_auto, used_auto_dealer, used_auto_private, lease_buyout and auto_refinance purposes. The exact rate inside the range depends on the applicant's credit profile, and invoicing runs half a point above AutoPay. Out-of-range requests fail with the allowed range.
Download Stripe invoice/receipt PDF
Download a Stripe-hosted invoice or payment receipt PDF from its hosted_invoice_url. Returns the file's real name and the path where the browser saved it (or a url to it on a managed browser), so you can read or move the PDF directly. Vendor-agnostic and login-free: the hosted_invoice_url is a public tokenized link, so it works for any Stripe-billed service (Claude, ChatGPT, X, Notion, Slack, Lovable, ...). An expired or dead URL fails cleanly.
Search Doctolib practitioners
Search Doctolib practitioners by specialty and location. Returns total, page, and providers with full_name, specialty, address, sector, payment_means, languages, telehealth, online_booking, matched_visit_motive, and profile_path. There are 20 providers per page and the order is server-ranked; profile_path (including ?pid=practice-N) is the join key for get_practitioner and list_slots.
