Skip to content

Add Xquik Apify X post and audience actors to the OSINT skill #3

Description

@kriptoburak

Why

The synced OSINT skill already embeds the universal Apify runner, but its Phase 2 X route points to python3 scripts/twitter.py, which is not present in this repository. diagnose.sh also reports that missing file as no Twitter access.

Because skills/ is a synced path and the contribution guide asks for synced-path changes as issues, this proposes the change for the private upstream rather than opening an overwrite-prone PR.

Proposed Upstream Change

Keep every existing X route. Add these as parallel native Apify options:

  • Xquik X Tweet Scraper for search, profiles, posts, threads, replies, quotes, articles, retweeters, and favoriters
  • Xquik X Follower Scraper for followers, following, verified followers, list members, list followers, community members, and audience overlap

Suggested Phase 2 examples:

# Profile posts
bash scripts/run-actor.sh "xquik/x-tweet-scraper" \
  '{"mode":"profileTweets","twitterHandles":["handle"],"maxItems":100,"maxItemsPerTarget":100,"outputVariant":"rich"}'

# Search several terms with one global cap
bash scripts/run-actor.sh "xquik/x-tweet-scraper" \
  '{"mode":"search","searchTerms":["from:handle","handle topic"],"maxItems":100,"maxItemsPerTarget":50,"outputVariant":"rich"}'

# Compare public audiences
bash scripts/run-actor.sh "xquik/x-follower-scraper" \
  '{"twitterHandles":["handle1","handle2"],"relation":"followers","maxItems":200,"maxItemsPerTarget":100,"outputMode":"full","overlapMode":true}'

Please update the synced sources for:

  1. skills/osint/SKILL.md: route X post and audience tasks through these actors when appropriate, while retaining the current twitter.py and Jina paths.
  2. skills/osint/references/tools.md: add both actors, all current routes/relations, output modes, and Store listing links.
  3. skills/osint/scripts/diagnose.sh: report X post and audience capability when the Apify token and universal runner are available, even if twitter.py is absent.
  4. README.md and llms.txt: include X posts and audiences in the Apify capability summary.
  5. run_actor.js: expose an optional --max-total-charge-usd whole-run cap and use bearer authentication instead of putting the token in request URLs.

Result limits should remain explicit. maxItems applies across a run, while maxItemsPerTarget can cap each explicit target.

Verification

  • use mocked HTTP tests for Actor ID normalization, input forwarding, bearer authentication, the whole-run charge cap, terminal failures, and dataset limits
  • validate every example against the current Actor input schemas
  • do not run paid Actors as part of the documentation change
  • preserve the existing X integration and every existing fallback

Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions