Landing page refresh
Verified payment, a matching budget, and strong profile evidence.
Score opportunities and draft tailored proposals on Upwork. Start controlled LinkedIn runs for Easy Apply and external employer websites—all with the AI access you already use.
Verified payment, a matching budget, and strong profile evidence.
Upwork stays review-first and manually submitted. LinkedIn runs work through the jobs you choose, with auto-submit you can turn off.
Compare job scores, saved filters, and AI qualification against your profile.
Generate a tailored proposal or reply and place it into the right fields.
Check every claim, edit the words, and press Upwork’s Send or Submit button.
Set your search, filters, application type, and target number of roles.
It handles Easy Apply and supported external employer forms with your saved answers.
Pause, skip, or quit anytime. Turn auto-submit off when you want final review.
Explore Upwork drafting and job selection, LinkedIn application runs, and the AI tools shared across both workflows. Submission controls depend on the platform.
See what’s new in this releaseon job posts and on the "Submit a Proposal" form, including invitation forms. One click reads the full post (expanding truncated descriptions), your imported profile and your standing instructions, then drafts the cover letter, the screening answers and the dropdown choices and fills them into the form for review. It never submits.
answers in the client's own order and vocabulary, states a concrete plan, includes one proof sentence when the post asks for expertise, and keeps letters at proposal length. Length, tone and sign-off follow your settings.
when a post asks for a code word or phrase, it is placed on the first line, verified after drafting, and kept out of the screening answers. Only words the client actually wrote in the post count.
type a few words into the cover-letter box before clicking and they steer the draft (a price to quote, a point to make, a tool the client uses).
a second model call checks every draft against a checklist (instructions followed, deliverables mapped, no invented facts, no filler) and rewrites it when it fails.
picks up to four of your portfolio items, past Upwork jobs and certificates that match the post and attaches them to the proposal.
when a post asks for something outside your facts, the letter says the closest true thing and leads with the plan; it never invents experience and never apologises for a gap.
(Claude providers): identifies the client's company from the post, confirms it, and folds one or two sourced facts into the letter when they change the plan.
any domain named in the post is checked (SPF lookup count, DMARC policy, DKIM selectors, mail host) and the finding can be quoted in the letter.
the writer sees the sentences used in your last proposals and a past proposal that got a reply, and avoids repeating itself.
if page insertion is unavailable, the draft is shown for copying instead of being inserted.
in any conversation: reads the whole thread and the proposal behind it, then either suggests the best next message or writes what you tell it to say.
the draft is placed in the message box; a panel takes change requests ("shorter", "propose Tuesday instead") and regenerates. Sending is always done by you with Upwork's own send button.
(search results, Best Matches, Most Recent): a 1–5 badge computed from client quality (payment verified, money spent, rating), budget fit against your profile rate, keyword hits, competition (proposals already sent) and freshness, with a short "why" beside it.
include and exclude keywords (title, description, skills; any or all), hourly and fixed-price ranges, hide jobs without a budget, experience level, payment verified, minimum client spend and rating, client countries to include or exclude, a cap on proposals already sent, posted-within hours, and a minimum score. Cards that fail can be shown as usual, dimmed or hidden; the failing rule is shown on the card.
a filter runs as an Upwork search with its keywords and rules applied, so the results page arrives already scored and ranked.
docked to the page: pick the filter, set the minimum score, see the page's jobs newest first (or best first), switch between All, Qualified and Worth-it views, and see which rules are failing most.
one job or the top five at once are judged against your facts and profile. Each gets Qualified, Maybe or Skip, a fit score, two concrete reasons and a "worth a proposal" mark; results are remembered per job.
in Settings → Jobs.
when Upwork or LinkedIn change their pages, the extension keeps reading them. It first finds the job cards by the page's structure; if a page still shows jobs it cannot read, it asks your own AI once for a new way to read that page, tests the answer on the live page and keeps it only if it works. Covers Upwork's job lists (search, Best Matches, Most Recent), the Upwork job panel, LinkedIn's job search, LinkedIn conversations, LinkedIn people search results, LinkedIn profiles, and from 0.13.0 also LinkedIn posts and their comment boxes (Comment with AI, Post with AI), the home feed's post cards and their Like, Comment, Repost and Attend buttons (engagement campaign) and the people list in an event's invite window. Settings → Page reading shows what each page uses, with a switch for the AI repair and "Forget learned rules".
in the toolbar popup: two side-by-side buttons. Upwork opens first unless you make LinkedIn the default (one click in the popup, or Settings → LinkedIn).
type a job title or describe the role in your own words (LinkedIn's AI job search understands descriptions), add a location, pick On-site / Remote / Hybrid, date posted, experience level, job type and sort order, set a target number of jobs, and press Start. LinkedIn opens on that search with the Easy Apply filter already on.
the classic job search and the new AI-powered job search, plus Recommended / Collections pages and single job pages.
docked to the LinkedIn page: scans every job on the results page, marks which are Easy Apply and which you already applied to, and lets you tick the ones to apply to. "Apply to N selected" starts; the panel shows Job i of N, the current job and step, applied / skipped / failed counts, a speed control (1x to 3x) and Pause, Skip and Quit buttons, like a human assistant working through the list.
opens each job, presses Easy Apply, picks your resume by name, fills every step of the form, presses Submit, closes the confirmation and continues to the next job; when the page is done it turns to the next results page until the target is reached. Jobs applied to earlier are never repeated.
phone, email, city, years of experience (overall and per skill), salary, notice period, work authorization, visa sponsorship, relocation, on-site and remote preferences, education, languages and a standard message are saved once under Settings → LinkedIn and used on every form. Your own rules ("when the question contains X, answer Y") come next. Only questions none of that covers go to your chosen AI provider, which answers from your Facts Bank and profile; every AI or hand-typed answer is remembered and reused, and you can edit or delete remembered answers at any time.
an AI answer it is not confident about is filled in and shown for a quick check; a question nobody can answer pauses the run on that job so you answer in LinkedIn's own form and press Continue (or choose "skip the job" behaviour instead). If nobody answers within a few minutes, the run moves on by itself.
auto-submit is on by default and can be turned off per run or in settings; the agent then stops on the review step for you to press Submit, and continues once you have.
when a run finishes or is stopped, a results tab opens with the status, jobs applied out of the target, the success rate and the per-job outcomes, and a form to start the next search.
with the answers given on each form, exportable as JSON.
jobs that send you to the employer's own careers site are applied to as well, in the same run. The agent follows LinkedIn's Apply link into a tab of its own, reads the page, fills the form from your saved answers and the Facts Bank (phone widgets with a country picker get your country chosen first, then the national number), uploads the resume you keep in Settings → LinkedIn → External websites, writes a short cover letter when a box asks for one, ticks the required consents (also the ones drawn as a styled box over a hidden checkbox, and required declarations), and submits. It works its way through multi-step forms, forms embedded in a frame from another site (Jobvite, Talemetry, Greenhouse) and job pages that need an "Apply" press first, signs in or creates an account with the email and password kept in settings when a careers portal insists on one, and stops for you (with a Continue button on the site and in the panel) when a CAPTCHA, an email verification or an unknown login is in the way. One approval covers every site; each site gets a time budget (6 minutes by default, counted from the last time the page moved on, three budgets at most) and is marked failed with the reason if it cannot be finished. When a page stops moving, the agent asks the AI for a different way with the page facts (what is scrolled, covered, disabled, empty, and the messages shown) and a wider set of moves (a press by mouse, keyboard or script, a scroll, a key, closing what covers the page, a step back); on the round after that it shows the AI a picture of the tab (Claude and ChatGPT; taken only then, never kept) so icons, steppers, widgets and overlays the outline cannot carry are seen; a job is given up only after five unchanged rounds, and the way that worked is kept in the site's notes. A three-way choice in the popup, the panel and settings — **Easy Apply only** (the default), **External websites only** or **All jobs** — decides which jobs a run applies to; choosing external websites on a filtered results page reloads it without LinkedIn's Easy Apply filter so those jobs are listed, and choosing it while the run waits for LinkedIn's daily limit continues at once with the external-website jobs. The panel explains, with a button to Settings, when the one-time website access has not been granted yet. With "All jobs", LinkedIn's daily Easy Apply limit does not stop the external-website jobs: they continue, and the Easy Apply ones wait for tomorrow. With auto-submit off, the agent fills everything and waits for you before the final Submit on the site too.
the panel shows "External website: <step>" while it works, the popup and settings show the step and any question the site has for you, the history marks these applications as external-website ones with a link to the application page, and the site's tabs close when the application ends.
every wait is random so no two applications take the same time, there is always a pause of several seconds before Submit and between jobs, and after a handful of applications the agent takes a longer break. 3x is the pace of 0.10.0; 1x, the default, waits about two and a half times longer.
when LinkedIn answers "Save this job and apply tomorrow", Easy Apply waits 24 hours and then continues by itself (the LinkedIn tab is reopened if it was closed), with a "Try now" button if you want to check earlier. Meanwhile jobs that apply on company websites keep the run going when website access is allowed. The limit is never guessed from a stuck page: when Easy Apply forms stop opening, the results are loaded afresh and those jobs get another go first.
the first time the LinkedIn answers form opens, blank fields are filled from what the extension already knows — the imported Upwork profile and the Facts Bank (name, email, phone, LinkedIn URL, website, city and country, years of experience, education, languages) — and marked as prefilled until you check and save them.
the agent panel docks to the right edge of LinkedIn's page, next to the job details, and its pop-ups ("Your application was sent", "Update profile") are closed with "Not now" so the next job proceeds.
a run does not stop halfway. When LinkedIn's daily Easy Apply limit is reached, an "All jobs" run carries on with jobs that apply on company websites until Easy Apply is available again; an "Easy Apply only" run asks you first (Yes, company websites / No, wait for Easy Apply) and goes on with company-website jobs by itself if you do not answer within a minute, so your choice of jobs is respected and an unattended run still keeps applying. A failed job is recorded and the run moves on to the next; a streak of failures leads to a quick recovery (pop-ups closed, page read again or reloaded), not a stop. If your AI can't be reached, nothing is sent and the job is tried again after a short wait. When every job in the results is done, it looks for new jobs every 20 minutes. Jobs that failed twice recently are not ticked again automatically.
when an Easy Apply step will not move on (a field the agent does not recognise, a message that keeps coming back, a button in another language), the form is shown to your AI, which fills what is missing and presses the button that moves on. It never presses Submit or anything that leaves the form, and its answers are remembered once LinkedIn accepts the application, so the same question is answered without the AI next time.
on employers' websites the agent keeps notes per site (and per hiring platform, such as Workday or Greenhouse): the route that worked and the last thing that failed, used on the next application there. It asks your AI again after a hiccup before giving up, and changes approach when a page does not react.
when an employer's Apply button opens the form in a new tab or window, or a chain of them, the agent carries on there; sign-in windows are left to the site and a tab that closes leads back to the one before. When the application ends, sent or not, every tab it opened is closed (a switch in Settings → LinkedIn → External websites), and the outcome with its reason stays in the results.
on employers' websites the cookie or consent banner is accepted first, in any frame, so the form behind it (or one that loads only after consent) can be filled.
when a careers site wants an account and no portal password is set, the agent makes a strong one, creates the account and keeps the password in Settings → LinkedIn → External websites so you can sign in later. Your AI only ever sees a placeholder; the extension types the real password, and passwords are never saved with an application's answers.
on careers sites that want an account first, the agent fills the whole form, including styled dropdowns such as a country list, ticks the terms, privacy and data-notice boxes (never newsletter, job-alert or talent-pool ones), answers "How did you hear about this job" with LinkedIn, and presses Register (or the form's Save or Continue) once nothing required is empty.
when a form asks something only you know and nothing saved answers it (a date of birth, a driving licence, a certificate), the agent never guesses and never stops the run: the question waits in Settings → LinkedIn → Questions for you (the toolbar icon shows how many), the job is set aside, and the run goes on. Answer once and every later form, Easy Apply and company sites alike, uses the answer; the jobs that waited are tried again. Whatever plainly follows from your facts is derived rather than asked: today's date, a start date from your notice period, a salary converted to the currency and period asked, salary expectations, conflict-of-interest and planned-leave declarations, a location you are outside of, a language you do not list, years with a tool or industry.
say once whether you hold one and which categories (such as B); licence questions on every form are answered from it.
forms that take only PDF get a PDF, made by itself from your Word resume (real text, simple layout) or uploaded by you, with a download to check it; a site that turns a Word file down gets the PDF instead.
every "Needs you" moment on a company website (a CAPTCHA, an emailed code, a sign-in) ends by itself after a few minutes; the job is skipped and the run continues towards your target. Sign-in pages with a way to register ("Create a candidate profile") are registered on, and fields meant as bot traps are left alone.
company websites open in the same window as the LinkedIn tab, so a run keeps going there while you use another Chrome window.
a LinkedIn job run's waits are timed by the extension's background rather than by the tab, so Chrome slowing a hidden tab's timers does not slow the run; the run's tab is kept from being discarded by the memory saver; and a watchdog reloads a page whose run has gone quiet, which carries on from where it was. As long as the computer is on, the run continues. (0.14.3) Since 0.14.4 the same holds for every page the extension works on: company-site applications, all LinkedIn campaigns and Upwork forms.
the wait ends on its own even if Chrome was restarted, the extension updated or the computer slept through the time, and the LinkedIn tab is reopened if it was closed.
on the Messaging page and in LinkedIn's chat windows, a Reply with AI button just left of LinkedIn's Send button reads the whole conversation and suggests the next message, or writes the one you describe, in the conversation's language, from your facts, saved answers, resume and the jobs you applied to at their company. The draft goes into LinkedIn's message box; you read it, ask for changes or discard it, and press Send yourself.
a small AI button in the icon row of every comment box on LinkedIn (the feed, a post's own page, your profile's and your pages' posts, anyone else's posts, and the Reply box under a comment). Pick a tone from eight (💼 Professional, 🙂 Friendly, 😄 Funny, 😏 Witty, 🙌 Supportive, 💡 Insightful, ❓ Curious, 🎉 Congratulate), add a note if you like, and your AI reads the whole post, its author and the comments already there (and the comment you are answering) and drafts one comment in that tone into the box. Ask for changes or regenerate; nothing is posted until you press LinkedIn's Comment or Reply. Written from your own LinkedIn perspective: the extension reads your profile (headline, About, Experience) and writes as the person it shows, in your field, never as an Upwork pitch.
the same button in LinkedIn's share box, posting as yourself or as one of your pages. Give it a topic, notes, or paste an article or a link with its text, pick a tone, and your AI writes the post in your voice from your profile and Facts Bank into the box. You read it, change it, and press Post yourself. Written from your own LinkedIn perspective: the extension reads your profile (headline, About, Experience) and writes as the person it shows, in your field, never as an Upwork pitch.
a day's numbers of comments, reactions, reposts and event attendances from your home feed (recommended 30, 100 and 50; each with its own switch and number), in a tone you pick, with a blocklist of people, companies or "people from <company>" (a company on the list also keeps the campaign off posts about it, whoever wrote them) it never touches. It opens your feed in a small LinkedIn window of its own and works through it a few posts at a time with pauses like a person reading: ads, your own posts, posts already engaged with and anyone on the blocklist are passed by, your AI passes by anything it should not touch (politics, illness, sales, job posts, polls, engagement bait) and decides per post which reaction fits, writes one comment worth reading, and the line to repost with; only what LinkedIn shows as done is counted. When the day's numbers are done it stops and starts again about 24 hours after it began; it never runs at the same time as a connection, message or event campaign. Replies to your comments are answered too: the campaign looks back at each post it commented on over the following days (its page is known even on the new feed, where LinkedIn keeps the post's identity out of the page) and gives every reply a fitting reaction and an answer in the thread, never twice; "Check replies now" looks right away. An action LinkedIn refuses for now ("could not be created at this time", a limit) is held for a day while the other actions go on, and tried again by itself after.
part of the engagement campaign, on by default. Once a day the extension opens LinkedIn's Catch up page and sends every connection with a new role, a birthday, a work anniversary or a graduation a short note written for them in the campaign's tone, through LinkedIn's own Message button in place of its canned line, and reacts to the post behind the card. One note per person per occasion, up to 10 a day within the messages' daily number; a draft of your own in the box is never touched.
paste a LinkedIn people search, or just describe who you want to meet (such as "CEO USA"): your AI turns the words into a search and keeps only the people who fit. For each person the extension reads their profile and sends a connection invitation with a short personal note written for them.
It starts the moment you press Start, at any hour. 20 invitations a day by default, 4 to 14 minutes apart, with a clear caution before you choose more; each day's batch begins about 24 hours after the last one. The campaign carries on by itself, in a background tab, until the list is done; people already connected or already invited are skipped.
add one or more messages to a campaign, each a set number of hours or days after the one before, written with placeholders such as {{first_name}} and {{company}} (with fallbacks). Your AI rewrites each for the person, keeping your meaning and links, and anyone who replies gets nothing more. (0.11.8) The messages sit inside the campaign's own box on the Connect page, each with its delay and how many people are waiting, with an Edit messages button.
message your own connections, all of them, a described group or a pasted LinkedIn search, in one or several steps with delays, a set number a day, stopping for anyone who replies.
write the note once with placeholders; your AI fits it to each person within LinkedIn's limit.
paste the address of an event you organize or attend (wherever LinkedIn offers Invite, as a button or under the event's Share button) and invite all your connections, or only the ones who fit your description ("people in Sweden", "founders in Stockholm"): your AI turns the description into the invite window's own filters (Locations, Current company, School, Industry), LinkedIn narrows the list, and your AI checks on each headline whatever the filters cannot say; if LinkedIn does not take a filter, nobody is invited on that pass. Batches of up to 25 run in a tab of your own browser window and hand the window back when done, 100 a day by default (your number), people already invited are passed by, a 24-hour pause on LinkedIn's limit, and a clear notice when the event has ended or LinkedIn offers no Invite on it.
optional messages with delays and the placeholders {{event_name}}, {{event_date}} and {{event_link}}; your AI rewrites each, and anyone who replies gets nothing more.
on by default, an invitation a campaign sent that is still pending after 20 days (your choice, 7 to 180) is withdrawn by itself, on the person's profile or LinkedIn's Sent invitations page, one at a time and at most 40 a day. Invitations you sent yourself are never touched; switch it off in Settings → LinkedIn.
when your access can't be verified for a moment (the licensing service is slow or unreachable), a campaign sends nothing, checks again by itself a few minutes later and carries on once access is verified, instead of stopping until you press Resume. The safety policy the service confirmed within the last ten minutes keeps serving through a slow or dropped request, so one blip never turns a working Upwork page into "unavailable".
when LinkedIn says the invitation limit is reached, the campaign stops at once, waits 24 hours and resumes by itself, even if Chrome was restarted. When LinkedIn stops personal notes on a free account, invitations go without one until the next month.
from your Upwork profile page: title, overview, skills, rate and work history feed every draft.
of every application drafted, with the letter and answers, and a sync of outcomes (submitted, interviewing, hired, archived) from your proposals page. Syncing runs when you click, never automatically.
in the toolbar popup.
Claude (claude.ai subscription sign-in), ChatGPT (ChatGPT subscription sign-in), Claude API key, OpenRouter (including its free tier and the openrouter/free router), OpenCode Zen (with free models), any OpenAI-compatible endpoint (Groq, Together, Fireworks, your own gateway), or a local model (Ollama, LM Studio, llama.cpp, vLLM).
OpenRouter, OpenCode, custom and local endpoints list their models in Settings, with a free-only filter for OpenRouter; ChatGPT lists exactly the models your account can use through Codex, including GPT-6 Astra and the GPT-5.6 family.
Claude's model list (subscription and API key) is read live from Anthropic, the other providers' lists load by themselves when Settings opens, and the Model tab marks the newest model and offers to switch to it.
from Off to Ultra, mapped to each provider's reasoning setting.
for providers that support it.
in Settings: how to get a free OpenRouter key and its limits, local-server commands, and a connection test for every provider.
pair the extension with your Apply with AI account from Settings; two installations per subscription; plan, billing and device management links; approved-update notices.
once connected, a monthly or annual subscription stays connected; access is renewed quietly in the background and re-verified before each drafting action. If the service can't be reached for a moment, Settings → Account says so, keeps the connection and retries on its own; it asks you to connect again only for a new browser or a removed device.
on by default, with a switch in Settings → Account to turn it off. Apply with AI reports only the time and type of an action (a proposal or reply drafted, a job qualified, an application started or confirmed and its outcome, and each connection request, message, event invitation and withdrawn invitation the LinkedIn campaigns send), Upwork or LinkedIn, direct or agent-run use, the extension version, approximate country and a one-way job identifier that prevents duplicate application counts. It never includes job or company text, URLs, generated writing, application answers, profiles, resumes, prompts, provider credentials or passwords. Turning it off stops reporting, clears unsent events and requests deletion of the account's detailed usage history. License checks remain separate. Under the same switch, an automation that could not finish sends a short failure report (the reason as a code, the form's field labels and button texts, the last turns and short site messages, each cut to 80 characters, your own name, email and phone taken out; never typed values, page text, job text, screenshots or prompts) so the extension can be fixed for that site.
a box at the bottom of the popup and of Settings sends exactly what you write, when you press Send, to the makers. Under the usage-reporting switch, the extension also notes as fixed codes when one of its own sections is opened again and again, a page is closed with nothing changed, a switch is flipped back within a minute, a run is stopped by hand, a hold is skipped, or a campaign is set up (its kind only), naming its own controls and never any text from a page or from you, so hard-to-find controls get moved and unused features reconsidered.
the extension fills forms and message boxes; it never presses Submit or Send on Upwork, never polls Upwork in the background, and every generated text is yours to edit before it goes anywhere. On LinkedIn and external websites, applications are submitted only inside a run you start, and auto-submit can be turned off; LinkedIn replies are only drafted, and connection invitations go out only inside a campaign you start.
provider keys, drafts, filters, LinkedIn answers and history are stored locally in the extension; job content and form questions go only to the AI provider you chose.
the service can pause a provider connection or page insertion for everyone if a provider or Upwork changes; the extension explains what is paused.
stalled AI requests time out with the model and effort named; refused requests say why; an unactivated installation is told to activate first.
on custom, local, OpenRouter and OpenCode endpoints a model that spends its output budget thinking is retried with a larger budget and reduced reasoning, and told apart from a model that is simply unavailable. Settings and on-page messages name the real failure.
Automation should be explicit. Upwork remains manual at the final step. LinkedIn only applies inside a run you start, and you can require final review.
You review, edit, and press Send or Submit.
Use auto-submit, or stop at the final review step.
Every supported connection and model control below comes from the promoted inventory for release 0.14.6.
Claude (claude.ai subscription sign-in), ChatGPT (ChatGPT subscription sign-in), Claude API key, OpenRouter (including its free tier and the openrouter/free router), OpenCode Zen (with free models), any OpenAI-compatible endpoint (Groq, Together, Fireworks, your own gateway), or a local model (Ollama, LM Studio, llama.cpp, vLLM).
OpenRouter, OpenCode, custom and local endpoints list their models in Settings, with a free-only filter for OpenRouter; ChatGPT lists exactly the models your account can use through Codex, including GPT-6 Astra and the GPT-5.6 family.
Claude's model list (subscription and API key) is read live from Anthropic, the other providers' lists load by themselves when Settings opens, and the Model tab marks the newest model and offers to switch to it.
from Off to Ultra, mapped to each provider's reasoning setting.
for providers that support it.
in Settings: how to get a free OpenRouter key and its limits, local-server commands, and a connection test for every provider.
Use the Upwork and LinkedIn workflows with the same subscription. Start with 3 days free, then continue on monthly or annual billing. The annual plan saves $81 compared with twelve monthly payments.
Explore the complete feature list and available AI connections.
3 days free · Save $81 each year
Start 3-day free trial $0 today · then $99 per year · cancel any time3 days free · Flexible monthly billing
Start 3-day free trial $0 today · then $15 per month · cancel any timeNo. On Upwork, you choose the opportunity and start the draft. The extension scores, drafts, and fills; you review and press Send or Submit. It never submits an Upwork application or polls Upwork in the background.
No. It drafts, scores, and fills on Upwork. You review and edit every draft, then press Upwork’s Send or Submit button yourself.
Yes, but only inside a run you start. Auto-submit is on by default and can be turned off per run or in Settings. With it off, the agent fills the application and waits for you at the final review step.
Choose monthly or annual billing and add a payment method in Stripe. You pay $0 today. Unless you cancel before the trial ends, Stripe automatically charges the selected plan and the subscription renews at that interval.
Download the protected ZIP from your account, extract it to a permanent folder, enable Developer mode on Chrome’s extensions page, and choose Load unpacked. The account includes a step-by-step guide.
No. Because it is installed in Developer mode, Apply with AI alerts you when an approved release is available. You download it, replace the files in the same permanent folder, and reload the extension manually.
Yes. The subscription covers Apply with AI, not model usage. Bring your own AI access using one of the available AI connections. Subscription connections are unofficial and may change. Provider credentials stay in your browser.
No. Apply with AI is an independent product and is not endorsed by or affiliated with Upwork or LinkedIn. You remain responsible for your accounts, your content, and compliance with platform rules.