LaunchKit · 2026
Back to Skills

ds160-autofill

Automate filling of US nonimmigrant visa DS-160 forms using CDP for element location, CSV data source for user.

0
905 downloads
by @clulessboy

Setup & Installation

openclaw skills install @clulessboy/ds160-autofill

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install ds160-autofill

What This Skill Does

Fills US nonimmigrant visa DS-160 forms automatically using a CSV file as the data source. Uses Chrome DevTools Protocol for element interaction, LLM assistance for captcha and missing elements, and saves session state so an interrupted application can be resumed. Chinese input is supported and translated to English automatically.

Handles the DS-160's lack of native resume by persisting session state locally, so users can stop mid-application and continue without restarting from the beginning.

When to use it

  • Filling a DS-160 visa application with personal data from a CSV file
  • Resuming an interrupted DS-160 application from a saved session
  • Handling captcha challenges on the DS-160 site without manual input
  • Translating Chinese personal information to English for DS-160 fields
  • Tracking and reporting completion across all 13 DS-160 form pages

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: Help me fill my DS-160 form with my data in applicant.csv

AGENT
  1. 1Check ds160/ds160-session.json for an existing session; none found, so start new application mode
  2. 2Save applicant.csv to ds160/ds160-user-info.csv and initialize a blank session file
  3. 3Open browser to https://ceac.state.gov/genniv/ using the openclaw profile
  4. 4Load ds160-filler.js and element mappings from references/ds160-elements.yaml
  5. 5Fill each of the 13 pages sequentially, using LLM to solve captcha and translate any Chinese values, saving session after each page
OUTPUT

All 13 DS-160 pages filled with progress reported after each page, Application ID and security question stored in ds160/ds160-session.json