Our work

Influencer performance report extension

Another vendor had started this as a Python desktop app and left it unfinished. We rebuilt it as a Chrome extension that runs in the user's own logged-in browser. All five platforms that had returned no data now collect correctly.

Platforms collecting correctly

Before

1 of 5

After

5 of 5

Report screen of the delivered Chrome extension. The left sidebar shows the Data Collection, Report Generation and Database Management menus with the login status of the five supported platforms. The main area on the right holds, in order, the campaign details form, buttons for choosing report platforms, and the HTML report and Excel export buttons.

To protect client information, these screens recreate the same features with mock data.

Client
Domestic marketing agency
Industry
Marketing agency
Delivered
2026
Duration
1 week after takeover
Area
Workflow automation
  • Browser extension
  • Collection that holds up when layouts change
  • In-browser storage
  • Time-stamped metric history
  • HTML report
  • Excel export

Background

The project came to us already built once. The previous vendor had delivered a Windows-only desktop program, and what the client sent us was not feedback but a defect list. Only one of the five platforms was marked “no issues”.

What we found

Read as per-platform bugs, the defect list had more than ten items. Side by side, though, nearly all of them failed at the same point.

  • One platform: “posts blocked by Cloudflare verification”
  • One platform: post body, comments and thumbnails not captured at all
  • One platform: comment authors shown as @user instead of their names

The previous program used Python to launch a separate browser and accessed each platform without logging in. Once a platform decided that browser was not a person, everything after it received empty values. This was not a bug. It was the access method.

The problem

Instead of fixing the collector, we moved where it runs. The client was already logged in to each platform with their own account. A Chrome extension running in that browser needs no new authentication. It reads the same screen the user is looking at.

This meant dropping the Python desktop app and starting over, so we explained why we would not build on it before we began.

Collection screen. On the left are the supported platforms and each one’s login status; in the center is a field for entering the addresses to collect, with a login-status window open. The window reads “If you are logged in to the browser, it is detected automatically.” The two example addresses in the input field are blurred.

The extension does not create its own authentication. It uses the login the user already has, flags any platform whose session has expired, and prompts the user to log in again.

What we built

  • Collectors for five platforms — three used in Korea and two in the Chinese-speaking market. Each has its own authentication and data format, so each was built separately. They read the data the page already holds rather than the page layout. One platform has no official access route and changes its layout often. Collection keeps working when the layout changes, because it reads the values behind the screen, not how they are displayed
  • In-browser database — collected data stays in the user’s browser. There is no server, so advertiser data never leaves the machine
  • Multiple posts by the same creator — in the previous program, later collections overwrote earlier ones. Records are now keyed by each post’s unique ID, so every post is kept
  • Advertiser-ready report — per-platform totals, top-performing content and trends over time on a single page. The client’s first complaint was that the old report “looked too shabby to send to advertisers”
  • Excel export — Excel files replace the CSV output that kept breaking
  • Time-stamped collection — metrics for the same post are recorded at each collection. Values a single check cannot show, such as how quickly a post gained traction after publishing, can be reviewed later

Results

One working platform became five. Comment collection on all five platforms was verified item by item and documented (2026-02-08).

See more work built the same way under Web data collection.

See more work on this topic under Data analysis.