agentleFS
RhythrosaLabsRhythrosaLabs/otto-mate/skills/web_automation/SKILL.md

web_automation

Skill1 starsChanged 10 months agoMITView on GitHub

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 9 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Add delays between requests (1-3 seconds)

    line 345
  2. Distinctive:

    Use polite scraping (don't overload servers)

    line 346
  3. Distinctive:

    Use headless mode for production

    line 352
  4. Distinctive:

    Never store passwords in plain text

    line 413
  5. Distinctive:

    Use environment variables for credentials

    line 414
  6. Distinctive:

    Use HTTPS when possible

    line 417
  7. Distinctive:

    Don't expose sensitive data in logs

    line 419
  8. Distinctive:

    Use secure credential storage

    line 421
  9. Distinctive:

    Use headless mode when possible

    line 425

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Web Automation Skill

Description

Advanced browser automation for web scraping, testing, data extraction, form filling, and automated workflows across any website.

Capabilities

  • Web Scraping: Extract data from any website
  • Form Automation: Fill and submit forms
  • Testing: Automated UI testing
  • Social Media: Automated posting and interaction
  • Data Collection: Bulk data extraction
  • Workflow Automation: Complex multi-step web tasks

Tools Required

  • browser_navigate
  • browser_click
  • browser_type
  • browser_fill_form
  • browser_get_page_content
  • browser_get_text
  • browser_screenshot
  • browser_scroll
  • browser_wait
  • browser_execute_script
  • browser_social_post

Workflows

Data Scraping

name: Scrape Website Data
steps:
  - Navigate to target URL
  - Wait for page load
  - "Extract desired elements: CSS selectors, XPath queries, Text content"
  - Handle pagination if needed
  - Store extracted data
  - Process and format results

success_criteria:
  - All target data extracted
  - Proper data formatting
  - No missing pages
  - Data validated

Form Submission Automation

name: Automate Form Submission
steps:
  - Navigate to form page
  - "Fill form fields: Text inputs, Dropdowns, Checkboxes, Radio buttons"
  - Upload files if needed
  - Solve CAPTCHA if present (manual intervention)
  - Submit form
  - Wait for confirmation
  - Capture confirmation data

success_criteria:
  - Form submitted successfully
  - Confirmation received
  - Data recorded

Social Media Posting

name: Post to Social Media
steps:
  - Navigate to platform
  - Login if needed (use stored credentials)
  - Navigate to post creation
  - Fill post content
  - Upload media if needed
  - Set posting options
  - Publish post
  - Capture post URL
  - Verify post is live

success_criteria:
  - Post published successfully
  - Media displayed correctly
  - Post URL captured

Competitor Price Monitoring

name: Monitor Competitor Prices
steps:
  - Navigate to competitor product pages
  - Extract product prices
  - Extract availability status
  - Capture product details
  - Store in database
  - Compare to our prices
  - Alert if price changes
  - Schedule next check

success_criteria:
  - All prices extracted
  - Price history tracked
  - Alerts configured

Web Scraping Techniques

Element Selection

# CSS Selectors
".classname"  # By class
"#id"  # By ID
"tag"  # By tag name
"[attribute='value']"  # By attribute
".parent .child"  # Descendant
".parent > .child"  # Direct child

# XPath
"//div[@class='content']"
"//a[contains(text(), 'Click here')]"
"//input[@type='submit']"

Common Patterns

Extract List:
  - Find container element
  - Get all child items
  - Loop through and extract data
  - Store in structured format

Pagination:
  - Find "Next" button
  - Extract data from current page
  - Click next
  - Repeat until last page

Infinite Scroll:
  - Scroll to bottom
  - Wait for new content
  - Extract new items
  - Repeat until no new content

Anti-Detection Strategies

  • Random delays between actions (1-3 seconds)
  • Vary mouse movements
  • Rotate user agents
  • Use residential proxies
  • Respect robots.txt
  • Limit request rate
  • Handle CAPTCHAs gracefully

Form Automation Patterns

Login Forms

steps:
  - Navigate to login page
  - Fill username/email
  - Fill password
  - Click "Remember me" if desired
  - Submit form
  - Wait for redirect
  - Verify logged in
  - Save session if needed

Multi-Step Forms

steps:
  - Complete step 1 fields
  - Click "Next"
  - Wait for step 2 to load
  - Complete step 2 fields
  - Click "Next"
  - Continue for all steps
  - Review and submit
  - Capture confirmation

File Uploads

steps:
  - Locate file input element
  - Set file path
  - Wait for upload progress
  - Verify upload complete
  - Continue with form

Social Media Automation

Platform-Specific Actions

Instagram

Post Photo:
  - Login
  - Click "+ Create"
  - Select photo
  - Add caption
  - Add location
  - Add hashtags
  - Publish

Post Story:
  - Click "+ Your story"
  - Select media
  - Add stickers/text
  - Publish

Facebook

Create Post:
  - Navigate to page
  - Click "Create post"
  - Type content
  - Add media
  - Tag people
  - Set audience
  - Publish

Create Event:
  - Go to Events
  - Click "+ Create Event"
  - Fill event details
  - Set date/time
  - Publish

Twitter/X

Post Tweet:
  - Navigate to home
  - Click tweet compose
  - Type content
  - Add media
  - Add alt text
  - Tweet

Create Thread:
  - Post first tweet
  - Click "+ Add another tweet"
  - Post subsequent tweets
  - Tweet all

LinkedIn

Create Post:
  - Navigate to feed
  - Click "Start a post"
  - Write content
  - Add hashtags
  - Add media if needed
  - Post

Share Article:
  - Click share button
  - Add commentary
  - Tag people/companies
  - Post

Testing Automation

UI Test Pattern

name: Test User Flow
steps:
  - Navigate to starting page
  - Perform action (click, type, etc.)
  - Assert expected result
  - Capture screenshot
  - Continue flow
  - Verify final state
  - Report results

assertions:
  - Element exists
  - Text content matches
  - URL is correct
  - Element is visible
  - Form submitted successfully

Regression Testing

name: Run Regression Suite
steps:
  - Load test scenarios
  - "For each scenario: Execute steps, Capture actual results, Compare to expected, Screenshot on failure"
  - Generate test report
  - Alert on failures

success_criteria:
  - All tests pass
  - No regressions introduced

Error Handling

Common Issues

Element Not Found

Solution:
  - Wait longer for page load
  - Check selector accuracy
  - Verify element exists on page
  - Try alternative selectors
  - Handle dynamic content

Timeout Errors

Solution:
  - Increase wait time
  - Check network speed
  - Verify page is responding
  - Add retry logic

CAPTCHA/Bot Detection

Solution:
  - Add human-like delays
  - Vary actions
  - Use residential proxies
  - Request manual intervention
  - Use CAPTCHA solving service

Session Expired

Solution:
  - Detect logout state
  - Re-authenticate
  - Resume from last step
  - Save progress frequently

Best Practices

  • Always respect robots.txt
  • Add delays between requests (1-3 seconds)
  • Use polite scraping (don't overload servers)
  • Handle errors gracefully
  • Take screenshots for debugging
  • Log all actions
  • Clean up resources (close browsers)
  • Rotate user agents
  • Use headless mode for production
  • Validate extracted data
  • Handle dynamic content (AJAX)
  • Set reasonable timeouts
  • Implement retry logic
  • Save progress incrementally

Advanced Techniques

JavaScript Execution

// Scroll to bottom
await browser_execute_script("window.scrollTo(0, document.body.scrollHeight)")

// Click hidden element
await browser_execute_script("document.querySelector('.hidden-btn').click()")

// Extract data
const data = await browser_execute_script("return document.querySelectorAll('.item').length")

// Modify page
await browser_execute_script("document.querySelector('.ad').remove()")

Handling Dynamic Content

AJAX Content:
  - Wait for specific element
  - Check for loading indicators
  - Monitor network requests
  - Use explicit waits

Infinite Scroll:
  - Scroll incrementally
  - Wait for new content
  - Check for end marker

Single Page Apps:
  - Wait for route changes
  - Monitor history API
  - Check URL changes

Data Extraction Patterns

# Extract table data
rows = await browser_get_text("table tr")
data = [row.split("\t") for row in rows]

# Extract lists
items = await browser_get_text("ul.products li")

# Extract with attributes
links = await browser_get_page_content()
# Parse for href attributes

# Extract JSON from page
json_data = await browser_execute_script("return window.__DATA__")

Security Considerations

  • Never store passwords in plain text
  • Use environment variables for credentials
  • Implement rate limiting
  • Respect website terms of service
  • Use HTTPS when possible
  • Validate and sanitize extracted data
  • Don't expose sensitive data in logs
  • Implement access controls
  • Use secure credential storage
  • Monitor for suspicious activity

Performance Optimization

  • Use headless mode when possible
  • Disable images if not needed
  • Disable CSS/JavaScript if not needed
  • Use browser pooling
  • Implement caching
  • Parallelize when appropriate
  • Clean up resources promptly
  • Use lightweight selectors
  • Minimize DOM queries

Dependencies

  • Playwright browser automation
  • Stable internet connection
  • Target website availability
  • Valid credentials (for authenticated actions)

Metadata

  • Domain: automation, testing
  • Complexity: Medium-High
  • Automation Level: Full
  • Human Verification: Optional (for CAPTCHA)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.