I built Indy AI for Contra: a Chrome extension that found freelance work in people's own LinkedIn and X feeds. By the end it had found more than 5 million opportunities, surfaced from the feeds of the people using it.

The marketplace problem
Contra is a commission-free freelance marketplace, and it had the classic liquidity problem: it needed plenty of good opportunities to attract freelancers, but it needed active freelancers to attract clients. Contra needed far more opportunities, but building a central system to find them wasn't the answer.
A central approach would have been expensive, but cost was only part of it: it would also have missed the context of each person's network, which is where the relevant work turns up.
That work was already appearing in users' feeds, so the browser was the place to start.
Each browser did the discovery
I built the extension around each user's own signed-in session. It looked for opportunities in what that person could already see on LinkedIn and X, so there was no central infrastructure to run.
Each install acted as a node, reading content the user was already viewing or could access. Every new user brought their own network, so discovery scaled with user growth.
The pipeline was short:
- A content script read the page the user had open.
- A background worker passed the sanitised text on.
- An LLM analysis step turned relevant posts into structured opportunities for Contra's database and discarded the rest.
No keys or cookies to paste
The extension had to work with zero setup: nobody should have to paste an API key or a cookie. I used the chrome.webRequest API to watch requests to LinkedIn and X and detect active sessions passively. A successful request to the LinkedIn feed marked the session as active and triggered a scan of the feed:
// Simplified logic for session detection
chrome.webRequest.onCompleted.addListener(
(details) => {
if (details.url.includes("linkedin.com/feed") && details.statusCode === 200) {
// We have a valid session
updateSessionStatus('linkedin', true);
// Trigger passive scan of the feed content
injectContentScript(details.tabId);
}
},
{ urls: ["*://*.linkedin.com/*"] }
);
The results
Indy AI reached more than 35,000 users, each install a node, with a 4.6 out of 5 rating, and it doubled the work available on Contra's marketplace. It was #1 Product of the Week on Product Hunt.
Because posts came from real feeds, they carried the context of those networks, including high-intent opportunities that a public search rarely finds. Freelancers got automated job matching, which kept them using it, and the same activity supplied opportunities to the marketplace.
"Doug operated quickly & efficiently, and even proposed ways to improve the feature to exceed our expectations. 10/10!"
Allison Nulty, Head of Product, Contra



Why it matters
The useful distinction is edge discovery versus central collection. The work started in the user's browser, where the access and the social context already existed, so discovery grew with the user base instead of with a bill for central infrastructure.
Research and sources
Checked 2026-10-18. Next review: 2027-04-18. Listings and availability can change.
Contra - The network for creative intelligence
Contra · Checked 2026-10-18 · Primary source
Contra is a commission-free network where independents find work, the marketplace Indy AI supplied.
Indy AI by Contra
Product Hunt · Checked 2026-10-18 · Primary source
The Product Hunt launch page for Indy AI by Contra, which was #1 Product of the Week.
chrome.webRequest
Google · Checked 2026-10-18 · Primary source
The chrome.webRequest API lets an extension observe network requests, which is how Indy AI detected an active LinkedIn or X session.


