Twitter 인플루언서 찾기
설정
자격 증명 설정 전에 사용 가능한 런타임을 선택하세요.
- 터미널 프리 클라이언트: 아래의 셸 명령어는 건너뜁니다. 연결된 MCP 도구를 사용하세요. ScrapeCreators 작업의 경우
scrapecreators-api를 읽고call_data_provider를 선호하세요. 연결된 도구 없이 다른 제공업체 단계를 수행해야 하는 경우, 워크플로우를 유지하는 동등한 내장 공개 웹 메서드를 사용하거나 해당 단계를 사용 불가능으로 명확히 보고하세요. - 로컬 터미널: 아래의 GooseWorks 자격 증명 및 프록시 명령어를 사용하세요.
~/.gooseworks/credentials.json 파일에서 자격 증명을 읽어옵니다:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
~/.gooseworks/credentials.json 파일이 존재하지 않으면, 사용자에게 다음 명령어를 실행하라고 알리세요: npx gooseworks login
로컬 프록시 엔드포인트는 Bearer 인증을 사용합니다: -H "Authorization: Bearer $GOOSEWORKS_API_KEY". 아래의 ScrapeCreators 작업 설명은 두 런타임 모두에서 환경 중립적으로 유지됩니다.
회사, 제품 또는 틈새 시장과 관련된 Twitter/X 인플루언서를 발견, 평가, 강화합니다. 참여 지표, 관련성 근거 및 연락처 정보가 포함된 순위 목록을 반환합니다.
워크플로우
1. 요청 분석
사용자의 질문에서 다음 항목을 추출합니다:
- 회사명 또는 도메인 (필수) — 인플루언서를 찾고 있는 브랜드
- 틈새/분야 (선택 사항) — 예: "핀테크 Twitter", "AI/ML 크리에이터", "DTC 뷰티"
- 규모 선호도 (선택 사항) — 중간 규모(10K-100K), 대규모(100K+), 혼합(기본값: 10K+ 최소)
- 최대 결과 수 (선택 사항, 기본값 20 — 사용자 요청에 따라 늘리거나 줄임)
2. 회사 정보 확인
Brand.dev를 사용하여 도메인, 업종, 설명, 타겟 고객 및 키워드를 가져옵니다. 이 컨텍스트는 모든 후속 검색의 기반이 됩니다.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"brand-dev","path":"/v1/brand/retrieve-by-name","query":{"name":"Acme","Corp":""}}'
도메인이 직접 제공된 경우:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"brand-dev","path":"/v1/brand/retrieve","query":{"domain":"acme.com"}}'
결과에서 회사 컨텍스트 문자열을 만듭니다: 회사명, 도메인, 업종, 설명 및 타겟 고객 키워드. 예: "Acme Corp acme.com developer tools API platform engineering teams". 이 문자열을 모든 검색 쿼리에 사용합니다.
3. 후보자 발견
최대 범위를 확보하기 위해 세 가지 전략을 병렬로 실행합니다:
전략 A — 선별된 인플루언서 목록 검색을 위한 Exa 검색 (기본, 가장 신호 강함):
중요: x.com 및 twitter.com 프로필은 Exa의 검색 인덱스에 없습니다. 따라서 includeDomains: ["x.com"]를 사용하면 Twitter 결과가 0개 반환됩니다. 대신, 해당 분야의 인플루언서에 대한 선별된 목록 페이지, 블로그 게시물 및 기사를 검색하세요. contents.text를 사용하여 페이지 콘텐츠를 가져와 Twitter 핸들을 추출합니다.
최대 범위를 위해 5개 이상의 쿼리 변형을 실행합니다. 핵심 틈새와 인접 틈새를 모두 포함하세요 — 많은 인플루언서가 관련 주제에 걸쳐 활동합니다. 각 쿼리는 텍스트 콘텐츠와 함께 10개의 결과를 반환합니다:
# 쿼리 1: 핵심 틈새 — 선별된 목록
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "best {niche} Twitter accounts to follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# 쿼리 2: 핵심 틈새 — 다른 표현
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "top {industry} influencers on X Twitter must follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# 쿼리 3: 핵심 틈새 — 생각의 리더
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "{niche} thought leaders creators Twitter handles",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# 쿼리 4: 인접 틈새 1 (예: 틈새가 "신원 확인"인 경우 "사기 방지" 시도)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "top {adjacent_niche_1} influencers Twitter accounts to follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# 쿼리 5: 인접 틈새 2 (예: "사이버 보안", "규제 기술", "생체 인식")
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "best {adjacent_niche_2} experts creators on X Twitter",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
인접 틈새 선택: 회사 컨텍스트(2단계)에서 2-3개의 관련 분야를 식별합니다. 예:
- 신원 확인 → 사기 방지, 사이버 보안, 규제 기술, 생체 인식
- 핀테크 → 은행, 결제, DeFi, 금융 규제
- AI/ML → 데이터 과학, MLOps, 개발자 도구
- DTC 뷰티 → 스킨케어, 웰니스, 라이프스타일, 클린 뷰티
이러한 쿼리는 Twitter 핸들, 약력 및 팔로워 수가 포함된 텍스트 콘텐츠가 있는 리스트컬 페이지(예: "Top 60 Fintech Influencers", "FinTwit Accounts to Follow")를 반환합니다. 4단계에서 이를 구문 분석합니다.
전략 B — Exa findSimilar (강력한 리스트컬 발견에서 확장):
전략 A가 결과를 반환한 후, 가장 좋은 선별된 목록 URL 1-2개를 선택하고 유사한 페이지를 찾습니다:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/findSimilar"}'
"url": "https://example.com/top-fintech-twitter-influencers",
"numResults": 5,
"contents": {"text": {"maxCharacters": 5000}}
}'
이렇게 하면 키워드 검색이 놓칠 수 있는 추가 선별된 목록을 찾을 수 있습니다. findSimilar에 Twitter/X 프로필 URL을 사용하지 마세요. Exa 인덱스에 없으며 빈 결과를 반환합니다.
전략 C — Fiber 자연어 검색 (LinkedIn 중심 전문가 포착):
일부 인플루언서는 LinkedIn에 더 잘 색인되어 있지만 활성 Twitter 계정을 가지고 있습니다. Fiber가 이를 찾을 수 있습니다. 핵심 틈새 및 인접 주제를 다루는 2-3개의 쿼리를 실행합니다:
# 핵심 틈새
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}'
"query": "{niche} thought leader content creator with Twitter presence at {industry} companies",
"pageSize": 20
}'
# 인접 틈새 — 더 넓은 범위
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}'
"query": "{adjacent_niche} influencer expert with large social media following",
"pageSize": 20
}'
Fiber 결과를 5단계의 Twitter와 교차 참조 — 활성 Twitter 계정이 있는 사람만 유지합니다. 또한 Fiber 결과에서 LinkedIn URL을 추출합니다. 이는 7단계의 연락처 강화에 중요합니다.
4. 사용자 이름 추출 및 중복 제거
Exa 리스트컬 페이지의 텍스트 콘텐츠에서 여러 패턴을 사용하여 Twitter 핸들을 구문 분석합니다:
- 기사 텍스트의
@username언급 x.com/username또는twitter.com/username과 일치하는 URL- 후행 URL 경로(예:
/status/123,/followers) 제거 — 기본 프로필 사용자 이름만 유지 - 비프로필 패턴(검색 페이지, 해시태그 페이지,
x.com/home,x.com/search) 폐기 - 사용자 이름별로 중복 제거(대소문자 구분 없음)
- 명백한 브랜드/회사 계정(예:
@stripe,@shopify) 식별 및 제거 — 개인 크리에이터에 집중
Fiber 결과에서 소셜 프로필의 Twitter/X URL을 추출합니다. 새 핸들을 후보 풀에 추가합니다.
또한 리스트컬 페이지에서 Twitter 핸들과 함께 언급된 LinkedIn URL을 추출합니다. 7단계의 연락처 강화를 위해 저장합니다.
목표: 중복 제거 후 약 100-150개의 고유 핸들. 선별된 목록 페이지는 일반적으로 각각 20-50개의 핸들을 언급하므로, 핵심 및 인접 틈새에서 5개 이상의 좋은 리스트컬 결과가 큰 후보 풀을 생성합니다.
5. Twitter 프로필 + 참여도 가져오기
Scrape Creators를 사용하여 구조화된 Twitter 데이터를 가져옵니다. 이것은 2단계 프로세스입니다: 모든 후보의 프로필 가져오기(저렴, 각 1크레딧), 그런 다음 프로필 필터링 후 상위 ~2배 결과 수(예: 20개 결과를 목표로 하는 경우 ~40개)의 트윗을 가져옵니다.
1단계 — 모든 후보의 프로필 가져오기:
provider: scrapecreators
method: GET
path: /v1/twitter/profile
query:
handle: examplehandle
중첩된 JSON을 반환합니다. core 및 legacy 객체 내부의 주요 필드:
core.screen_name,core.name— 핸들 및 표시 이름legacy.description— 약력 텍스트legacy.followers_count,legacy.friends_count,legacy.statuses_count— 개수legacy.location,legacy.created_at— 위치 및 계정 사용 기간is_blue_verified— 인증 상태
프로필 URL은 https://x.com/{screen_name}입니다.
중요 — 프로필 가져오기 병렬화: 순차 루프에서 하나씩 프로필을 가져오지 마세요. 대신, 모든 프로필 가져오기 호출을 병렬로 시작합니다(단일 메시지에서 여러 도구 호출). 이렇게 하면 총 대기 시간이 몇 분에서 몇 초로 획기적으로 줄어듭니다. 필요한 경우 10-15개의 병렬 호출 일괄 처리로 그룹화합니다.
하드 필터를 적용하여 풀을 좁힙니다:
- 팔로워가 10,000명 미만(기본 최소값 — 사용자가 다른 임계값을 지정하면 조정 가능)
- 약력이 비어 있거나 틈새와 완전히 관련 없음
- 정지되거나 찾을 수 없는 계정(API 오류 반환)
- 약력이 X를 떠났음을 나타냄(예: "Mastodon/Bluesky에서 찾아보세요", "이 사이트를 포기했습니다")
- 너무 광범위하거나 일반적인 계정 — 콘텐츠가 대상 틈새와 특별히 관련이 없는 계정은 제거합니다. 예를 들어, 500K+ 팔로워가 있는 일반 "기술 전도사" 계정이 틈새에 대해 거의 트윗하지 않는 경우 20K 팔로워 전문가보다 가치가 떨어집니다. 계정의 약력과 최근 트윗이 대상 틈새 또는 인접 틈새와 특정 연결을 보여주지 않으면 팔로워 수에 관계없이 제외합니다.
2단계 — 상위 후보의 트윗 가져오기 (프로필 필터링 후 — 필터링을 허용하기 위해 대상 결과 수의 약 2배, 예: 20개 결과를 목표로 하는 경우 ~40개):
provider: scrapecreators
method: GET
path: /v1/twitter/user-tweets
query:
handle: examplehandle
트윗 객체 배열을 반환합니다. 중요 — 데이터는 각 트윗 객체 내부에 중첩되어 있습니다:
legacy.full_text— 트윗 텍스트legacy.favorite_count— 좋아요(정수)legacy.retweet_count— 리트윗(정수)legacy.reply_count— 답글(정수)legacy.created_at— 타임스탬프views.count— 조회수(항상 존재하지 않을 수 있음)url— 트윗에 대한 직접 링크(최상위 필드)
참고: favorite_count, retweet_count, reply_count는 각 트윗의 최상위 수준이 아니라 legacy 객체 내부에 있습니다.
중요 — 트윗 가져오기 병렬화: 프로필 가져오기와 마찬가지로 모든 트윗 가져오기 호출을 병렬로 시작합니다(단일 메시지에서 여러 도구 호출). 순차적 for 루프를 사용하지 마세요. 이것이 가장 큰 속도 최적화입니다.
각 후보에 대해 참여도가 가장 높은 상위 3개 트윗 (좋아요 + 리트윗 + 답글)을 식별합니다. 최종 결과 테이블에 포함하기 위해 URL과 함께 가장 좋은 트윗 하나를 저장합니다.
트윗 데이터에서 다음을 계산합니다:
- 트윗당 평균 좋아요 수
- 트윗당 평균 리트윗 수
- 트윗당 평균 답글 수
- 참여율: (평균 좋아요 + 평균 리트윗 + 평균 답글) / 팔로워 * 100
- 게시 빈도:
created_at날짜에서 유추 - 콘텐츠 테마: 가장 많이 트윗하는 주제(
full_text에서)
추가 하드 필터 (트윗 가져오기 후 적용):
- 지난 30일 동안 트윗 없음(비활성)
- 보호된/비공개 계정
답글 전용 계정(트윗의 >80%가 다른 사람에 대한 답글이고 참여도가 미미함)은 건너뜁니다.
6. 점수 및 순위 매기기
복합 점수 매기기 모델을 적용합니다:
| 요소 | 가중치 | 신호 |
|---|---|---|
| 관련성 | 40% | 약력 키워드, 콘텐츠 테마, 대상 회사와의 청중 중복 |
| 참여율 | 25% | 높을수록 좋음; 마이크로 인플루언서가 매크로보다 여기서 더 나은 경우가 많음 |
| 팔로워 수 | 15% | 로그 스케일 — 100K 이상에서는 수익 체감 |
| 콘텐츠 품질 | 10% | 원본 콘텐츠 대 리트윗, 스레드 깊이, 미디어 사용 |
| 청중 적합성 | 10% | 그들의 팔로워가 회사의 타겟 청중과 일치합니까? 약력 + 콘텐츠 테마에서 유추 |
점수 매기기 지침:
- 관련성: 약력 및 최근 트윗 주제를 2단계의 회사 컨텍스트 문자열과 비교합니다. 정확한 틈새 일치 = 높은 점수. 인접 틈새 = 중간. 일반적/관련 없음 = 낮음.
- 참여율 벤치마크: >3% 우수, 1-3% 좋음, <1% 평균 이하(팔로워 계층에 따라 다름)
- 콘텐츠 품질: 리트윗이 >50%인 계정은 불이익. 원본 스레드, 통찰력, 미디어가 풍부한 게시물에 보너스.
복합 점수로 모든 후보의 순위를 매깁니다. 최종 목록을 위해 상위 N개(기본값 20)를 선택합니다. 20은 좋은 기본값입니다 — 사용자에게 실제 옵션을 제공하면서 압도하지 않습니다. 사용자가 더 요청하면 늘리되, 자격이 되는 경우 항상 최소 상위 20개를 포함합니다.
7. 연락처 강화
최종 목록에 대해 이메일 주소와 LinkedIn 프로필을 찾습니다. 핵심 통찰력: 먼저 LinkedIn URL을 찾으십시오 — 이를 통해 이메일을 발견할 수 있습니다. Scrape Creators person 엔드포인트에 LinkedIn URL을 제공하면 이메일 주소를 반환할 수 있습니다.
프로세스:
- LinkedIn URL 목록 수집: Fiber 결과, 리스트컬 페이지, 인플루언서 Twitter 약력에서 가져옵니다.
- 누락된 경우: Twitter 약력이 LinkedIn을 언급하면 추출합니다. 약력에
linkedin.com/in/...이 포함된 경우 즉시 사용 가능합니다. - Twitter 프로필에서 이메일을 확인합니다(일부는
legacy.description에 포함됨). - LinkedIn URL이 있는 후보의 경우 Scrape Creators
personAPI를 호출합니다:
provider: scrapecreators
method: GET
path: /v1/person
query:
linkedinUrl: https://www.linkedin.com/in/exampleprofile
- 이메일을 찾을 수 없고 금전적 가치가 정당화되는 고가치 후보의 경우 Hunter.io를 사용합니다:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"example.com","first_name":"John","last_name":"Doe"}}'
참고: Hunter.io는 전체 이름이 확인된 경우에만 작동합니다. LinkedIn 또는 bio에서 추출합니다.
8. 결과 표시
표 형식으로 결과를 제시합니다. 각 행에 대해:
- 순위
- 인플루언서 이름 및 Twitter 프로필 링크
- Twitter 핸들
- 팔로워 수
- 참여율 (%)
- 관련성 점수 및 1-2문장 근거
- 가장 좋은 트윗에 대한 링크가 있는 상위 콘텐츠 스니펫
- 이메일 (찾은 경우)
- LinkedIn 링크 (찾은 경우)
요약을 포함합니다:
- 발견된 총 후보 수 / 상위 작동 가능한 인플루언서
- 평균 팔로워 및 참여율
- 권장되는 최종 목록 크기 초과 시 최종 목록 축소 방법에 대한 메모
- 추가 발견을 위한 제안된 인접 틈새
연락처 데이터
Twitter 프로필 검색 (Scrape Creators)
provider: scrapecreators
method: GET
path: /v1/twitter/profile
query:
handle: examplehandle
사용자 트윗 검색 (Scrape Creators)
provider: scrapecreators
method: GET
path: /v1/twitter/user-tweets
query:
handle: examplehandle
사람 프로필 검색 (Scrape Creators)
provider: scrapecreators
method: GET
path: /v1/person
query:
linkedinUrl: https://www.linkedin.com/in/exampleprofile
Scrape Creators API 설명서
https://docs.scrapecreators.com 참조
아이디어
- 틈새 인플루언서 확보를 위한 Twitter 목록
- 특정 비즈니스 브랜드의 인플루언서 마케팅 캠페인