I need a Python-based automation bot that reads Workday job application URLs from a .txt file and completes job applications end-to-end automatically using Playwright. IMPORTANT — Read Before Applying Every Workday job URL is configured differently by each employer. There is no fixed page structure, no fixed number of sections, no fixed field order. The bot must dynamically detect and handle whatever appears on the page at runtime. Do not apply if your solution relies on hardcoded selectors, fixed section orders, or assumes any specific page structure. The bot must work on any Workday job URL without code changes. Authentication — Three Scenarios The bot must detect which auth scenario applies and handle it automatically: Auth required first, then form fill Form fill starts first, then auth prompt appears mid-flow No auth at all, direct form fill only Login/Create Account must use email and password only. No OAuth. No "Sign in with Google, LinkedIn," or any third-party provider. If the platform triggers an email verification step after login, the bot must pause and keep retrying the sign-in automatically every 60 seconds until the user manually verifies their email, then continue from where it left off without any manual input. Form Filling — Core Personal Details These fields are commonly present but even here the bot must verify their existence before attempting to fill. Never assume a field is present: Full name, email, phone number Address, city, country "How did you hear about us" — if present, select from: Career Website, LinkedIn, Glassdoor, or Job Boards Any consent or legal checkboxes — check them if present Form Filling — Fully Dynamic Sections This is the core challenge of the project. Sections will vary completely across different job URLs. Some jobs will have all of the below, some will have only a few, some may have completely different custom sections not listed here. The bot must: Scan the page at runtime to detect which sections exist Fill only the sections that are actually present Skip gracefully if a section is missing Handle sections that appear conditionally based on previous answers Handle multi-step flows where new sections load after completing the previous one Never crash or stop because an expected section is not found Sections that may or may not appear include: Work experience (company, title, dates, description, reason for leaving) Education (institution, degree, field of study, graduation year) Skills (detect available skill options and select or add from a configurable list) Resume or CV upload (PDF from local path) Cover letter upload or text field (if present) Voluntary and EEO questions (gender, ethnicity, disability status, veteran status) Application-specific questions unique to that employer (free text, dropdowns, yes/no, radio buttons, checkboxes, multiple choice) Any additional custom sections that are not listed above The bot must handle any combination of these and any section it has never seen before without failing. AI-Powered Question Answering (OpenAI GPT-4) All free-text questions, application questions, and voluntary questions must be answered using the OpenAI API dynamically. The prompt must be crafted so the model: Reads the exact question text from the page Answers as the applicant in a professional, confident, and natural tone Answers "No" to anything involving criminal record, background issues, or conflicts of interest Answers "No" to questions about prior employment at this company or any related organization Keeps answers concise and human-sounding Adapts its answer based on the specific question — no generic copy-paste responses For dropdowns or multiple choice, selects the most favorable available option The AI must handle questions it has never seen before and still produce a sensible, favorable answer.