Automation Engineer VA (n8n + Web Scraping + Podio Integration)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Part Time

WAGE / SALARY

$8 USD hourly

HOURS PER WEEK

20

DATE UPDATED

Feb 24, 2026

JOB OVERVIEW

We are a U.S.-based real estate acquisitions company automating our lead intake process.

Important Application Instructions:
Please submit your application either through OnlineJobs.ph messaging or directly to ---------- sent to or CC’d to any other email address will not be considered.

We need a highly technical Automation Engineer to build and maintain an automated system that:

• Reads daily foreclosure lead emails
• Logs into a gated website
• Scrapes property detail pages after login
• Extracts structured data (Case Number, Balance Due, etc.)
• Pulls a property value estimate (Redfin/Realtor/County Websites)
• Applies custom financial logic (spread calculation)
• Dedupes against Podio
• Automatically creates Podio items if criteria are met
• Skips leads that do not meet our spread rule

This role is NOT basic admin work. This is technical systems building. You must be comfortable working with browser automation, HTML parsing, APIs, and workflow automation tools.

Core Responsibilities:

• Build automation workflows in n8n (preferred) or Make
• Use Playwright or Puppeteer to automate login-based scraping
• Extract structured data from HTML using selectors/XPath
• Handle session persistence, cookies, throttling, and retry logic
• Integrate with Podio API for search + create item
• Implement business logic for valuation rules and spread calculation
• Create fallback logic for missing data
• Build logging and error handling
• Maintain and improve automation reliability

You MUST have experience with:

• n8n (required)
• Playwright or Puppeteer (browser automation)
• Web scraping of login-protected websites
• HTML / DOM / CSS selectors / XPath
• REST APIs
• JavaScript (strong)
• Node.js
• Handling cookies, sessions, and authentication
• Debugging network requests in DevTools
• Basic financial/math logic implementation

Strongly Preferred Experience

• Podio API experience
• Real estate data experience
• Redfin/Realtor scraping experience
• Automation error handling + retry systems
• Building persistent browser sessions
• Working with Gmail API
• Data deduplication logic
• Rate limiting / anti-bot awareness

Important! This role requires problem-solving. Websites change. Selectors break. Sessions expire.

You must be able to:
• Debug broken scrapers
• Adjust selectors
• Inspect network calls
• Implement workarounds
• Build resilient systems

To Apply Please Include:

• Links to automation projects you’ve built or GitHub (if available)
• Experience scraping login-protected websites
• Tools you’ve used (Playwright, Puppeteer, etc.)
• Internet Speed Test

We look forward to working with you!

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0399
Total Execution Time  0.0415
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,523,088 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Automation-Engineer-VA-n8n-Web-Scraping-Podio-Integration-1586615
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0342 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1586615
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 761901
 LIMIT 1 
0.0264   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1586615
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-28',ej.date_added) duration_daysDATEDIFF('2026-06-28',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-06-28',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1586615' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1586615 
0.0018   UPDATE employer_jobs SET hit_counts '***Feb-24-2026=163***Feb-25-2026=33***Feb-26-2026=29***Feb-27-2026=12***Feb-28-2026=17***Mar-01-2026=5***Mar-02-2026=15***Mar-03-2026=7***Mar-04-2026=4***Mar-05-2026=17***Mar-06-2026=4***Mar-07-2026=2***Mar-08-2026=5***Mar-09-2026=2***Mar-10-2026=2***Mar-11-2026=4***Mar-12-2026=4***Mar-13-2026=3***Mar-15-2026=4***Mar-16-2026=1***Mar-17-2026=3***Mar-19-2026=1***Mar-20-2026=1***Mar-22-2026=4***Mar-23-2026=5***Mar-24-2026=2***Mar-25-2026=1***Mar-26-2026=5***Mar-27-2026=2***Mar-28-2026=3***Mar-29-2026=1***Mar-30-2026=1***Mar-31-2026=84***Apr-01-2026=48***Apr-03-2026=4***Apr-05-2026=1***Apr-06-2026=5***Apr-08-2026=1***Apr-09-2026=1***Apr-11-2026=1***Apr-12-2026=2***Apr-13-2026=1***Apr-14-2026=3***Apr-15-2026=1***Apr-16-2026=3***Apr-17-2026=4***Apr-18-2026=1***Apr-19-2026=2***Apr-20-2026=2***Apr-21-2026=6***Apr-22-2026=2***Apr-23-2026=6***Apr-24-2026=2***Apr-25-2026=2***Apr-26-2026=1***Apr-27-2026=1***Apr-28-2026=4***Apr-29-2026=3***Apr-30-2026=3***May-01-2026=3***May-02-2026=2***May-03-2026=1***May-06-2026=3***May-07-2026=3***May-08-2026=2***May-09-2026=1***May-11-2026=1***May-12-2026=1***May-13-2026=2***May-14-2026=1***May-15-2026=1***May-16-2026=2***May-17-2026=1***May-18-2026=1***May-21-2026=2***May-23-2026=1***May-24-2026=1***May-25-2026=2***May-26-2026=2***May-27-2026=4***May-29-2026=1***Jun-01-2026=5***Jun-02-2026=3***Jun-03-2026=1***Jun-05-2026=1***Jun-06-2026=3***Jun-07-2026=1***Jun-09-2026=1***Jun-10-2026=2***Jun-11-2026=1***Jun-14-2026=1***Jun-22-2026=3***Jun-23-2026=1***Jun-24-2026=2***Jun-25-2026=1***Jun-27-2026=1***Jun-28-2026=1' WHERE job_id'1586615'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Feb-2026=254***Mar-2026=192***Apr-2026=110***May-2026=38***Jun-2026=28' WHERE job_id'1586615'  
0.0003   SELECT date_sent
                FROM 
`jobseeker_sent_emails`
                
WHERE jobseeker_id NULL
                  
AND job_id 1586615
                  
AND status LIKE 'sent%'
                
ORDER BY id DESC
                LIMIT 1 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1586615 
0.0011   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '761901'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)