From Creator Recommendations to an Outreach-Ready Database
Inspiration
In my daily work in overseas influencer marketing, I often discover creators through TikTok and Instagram recommendations, including “People You May Know,” similar creators, and suggested accounts.
These recommendations are useful for finding estheticians, skincare creators, and UGC creators with similar audiences. However, the research process is repetitive:
- Review recommended accounts.
- Open each creator’s profile.
- Copy the social media link.
- Check follower count and country.
- Search the bio or external website for an email.
- Confirm whether the creator has posted recently.
- Organize the information in a spreadsheet.
When a recommendation list contains dozens of creators, too much time is spent on repetitive work. This inspired me to build a tool that could automatically discover suggested creators, collect their publicly available information, and organize qualified profiles into an outreach-ready list.
The goal was not simply to collect more accounts. It was to identify active and relevant creators more efficiently.
What I Wanted to Solve
At first, I measured efficiency by the number of creators the tool could collect. In practice, however, the amount of usable data matters more than the total number of accounts.
The percentage of qualified creators can be represented as:
[
R_{\text{qualified}}
\frac{N_{\text{active and complete}}} {N_{\text{collected}}} \times 100% ]
Where:
- (N_{\text{collected}}) is the total number of discovered creators.
- (N_{\text{active and complete}}) is the number of active creators with enough public information for outreach.
If the tool collects 100 creators but only 10 are active and have public contact information, only those 10 provide immediate business value.
The project therefore evolved from a simple data collection tool into a creator discovery and qualification system.
How I Built the Project
1. Discovering Recommended Creators
The tool first scans the recommendation section on a TikTok profile and collects:
- Display name
- Username
- Social media profile URL
- Source creator
- Collection date
The system normalizes usernames and profile URLs to remove duplicates.
2. Creating an Enrichment Queue
Recommendation cards usually contain only a display name and profile link. They do not provide complete information such as follower count, bio, or email.
I divided the workflow into two stages:
Discover recommended creators
→ Save profile links
→ Add creators to an enrichment queue
→ Visit each profile
→ Collect public information
→ Classify and export the results
Each creator receives a processing status:
- Pending
- Loading
- Extracting
- Completed
- No public email
- Inactive
- Failed
3. Reusing One Collection Tab
Opening many profiles at the same time can slow down the browser, mix up creator data, and trigger platform restrictions.
The tool therefore uses one reusable browser tab:
- Open Creator A’s profile.
- Wait for the core profile data.
- Extract and save the information.
- Navigate the same tab to Creator B.
- Close the tab when the queue is complete.
If there are (N) creators, the average extraction time is (t), and the delay between profiles is (d), the estimated processing time is:
[ T \approx N(t+d) ]
For example, processing 30 creators with an average extraction time of 8 seconds and a 5-second interval would take:
[ T \approx 30 \times (8+5)=390\text{ seconds} ]
That is approximately 6.5 minutes, with very little manual work.
4. Collecting Public Profile Information
For each creator, the tool attempts to collect:
- Username and display name
- Follower count
- Bio
- Public email
- External links
- Country
- Most recent post date
Emails are collected only from publicly available sources, such as profile bios, mailto links, Linktree pages, Beacons pages, and public websites.
If no email is available, the creator is marked as “No public email.” This is treated as a valid result rather than a technical failure.
5. Checking Creator Activity
To avoid spending time on inactive accounts, the tool checks the creator’s latest public post.
The activity rule is:
[ A = \begin{cases} 1, & \text{if the latest post was published within 30 days} \ 0, & \text{if the latest post was published more than 30 days ago} \end{cases} ]
Inactive creators are excluded from the default outreach list but are not permanently deleted. They remain available in a separate category in case the activity data needs to be reviewed.
6. Collecting Creator Country
I already use a browser extension called “达人精灵,” which displays the creator’s country beside their TikTok username.
Instead of guessing a creator’s country from language or bio text, the new tool waits for this extension to display the country and then reads the visible information from the page.
The system records:
- Standardized country name
- Original displayed value
- Information source
- Detection status
If the country cannot be detected, the result is marked as “Unknown.” The tool does not make unsupported assumptions.
7. Organizing Outreach Results
The final interface groups creators into practical categories:
- Public email available
- External link requires checking
- No public email
- Inactive
- Activity requires confirmation
- Extraction failed
For qualified creators, I can directly copy:
Social profile URL Email address Country
The fields are separated by tabs, so they can be pasted directly into separate Excel columns.
What I Learned
Visible Data Is Not Always Immediately Accessible
TikTok is dynamically rendered. Information visible on the screen may not exist in the initial HTML and may only appear after JavaScript finishes loading.
The tool therefore needs to wait for actual profile data instead of reading the page immediately.
A Loading Page May Still Be Ready
TikTok may remain in a loading state because of video resources, continuous requests, or other browser extensions. However, the username, bio, and follower count may already be visible.
The tool should determine readiness based on profile content, not only on the browser tab status.
A simplified readiness rule is:
[
\text{profileReady}
\text{usernameFound} \lor \text{followersFound} \lor \text{profileDataFound} ]
Once any reliable profile signal is available, extraction can begin.
Missing Email Does Not Mean Failure
Some creators do not publish an email address. Others prefer direct messages or provide only an external website.
The system must distinguish between:
- Extraction failure
- No public email
- External link requires checking
- Public email successfully found
This produces more accurate results and prevents misleading failure statistics.
Faster Automation Is Not Always Better
Opening many profiles simultaneously appears faster, but it can cause:
- Browser performance problems
- Incomplete page loading
- Incorrect data assignment
- Verification challenges
- Platform access restrictions
- Difficult recovery after interruption
A controlled sequential queue is slower in theory but more reliable in daily use.
The Tool Must Support the Real Workflow
At first, I focused mainly on whether the tool could collect data. Later, I realized that the collected information must also be easy to use.
Features such as email classification, activity filtering, country detection, duplicate removal, task recovery, and one-click copying are more valuable than a visually complex interface.
Challenges I Encountered
Dynamic Page Structures
TikTok uses dynamic rendering and frequently changing page structures. Fixed CSS classes can stop working after a platform update.
To improve reliability, the tool uses multiple extraction methods:
- Stable semantic attributes
- Username and profile URL matching
- Visible page text
- Public initialization data
- Diagnostic logs and extraction sources
The Queue Became Stuck in Loading
An early version waited for the browser tab status to become complete. TikTok sometimes remained in loading even though the profile information was already visible.
The solution was to monitor the actual page content and begin extraction as soon as the username, follower count, or public profile data appeared.
Country Information Came From Another Extension
The country field was not provided directly by TikTok. It was inserted into the page by another browser extension.
The new tool therefore had to wait for the country extension to finish rendering and identify the country text near the username.
If the country extension only runs properly in a visible tab, background collection may fail. To address this, the project includes a visible assisted mode that keeps the collection tab active while processing the queue.
Pinned Videos Complicated Activity Detection
The first video shown on a TikTok profile is not always the newest because creators can pin older videos.
Instead of assuming that the first video is the latest, the tool compares the timestamps of multiple public videos:
[ t_{\text{latest}}=\max(t_1,t_2,\ldots,t_n) ]
The newest timestamp is then used to determine whether the creator has posted within the selected activity period.
Final Value
The project connects several previously separate tasks into one workflow:
Discover creators
→ Enrich public data
→ Check recent activity
→ Identify country
→ Classify contact availability
→ Exclude low-value accounts
→ Copy or export an outreach-ready list
The tool does more than reduce copying and pasting. It allows me to spend more time on work that requires judgment, such as evaluating content quality, planning collaborations, negotiating rates, and building long-term creator relationships.
For me, effective automation does not replace human decision-making. It handles repetitive work so that people can focus on the decisions that create real value.
Built With
- chrome
- chrome-apis
- chrome-storage-api
- chrome-tabs-api
- content-scripts
- css3
- dom
- html5
- javascript
- manifest-v3
- service-worker
Log in or sign up for Devpost to join the conversation.