๐ง This project is under construction and contributions are welcomed! ๐ง
The long-term vision is to interact with any HTML form, and make HTML an API, thus the name, generalapi.
This project consists of a Chrome extension and a Node.js server to automate form filling on job application pages, including interacting with reCAPTCHA.
- Parses job application forms
- Fills out text inputs, checkboxes, and uploads resumes
- Scrolls to reCAPTCHA for manual interaction
- Adds a visual indicator to the reCAPTCHA element
-
Clone the repository:
git clone https://github.com/sandwriter/generalapi.git cd generalapi
-
Navigate to the
extension
directory:cd extension
-
Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions/
. - Enable "Developer mode" using the toggle in the top-right corner.
- Click the "Load unpacked" button and select the
extension
directory.
- Open Chrome and navigate to
- Click the extension icon in the Chrome toolbar.
- Click the "Fill Form" button to automatically fill out the form on the current tab.
- Parses HTML forms using GPT-3.5
- Provides an endpoint to handle form parsing and filling requests
- Node.js
- npm (Node Package Manager)
-
Navigate to the
server
directory:cd server
-
Install the dependencies:
npm install
-
Create a
.env
file in theserver
directory and add your environment variables:touch .env
Example
.env
file:OPENAI_API_KEY=your_openai_api_key LOGGLY_TOKEN=your_loggly_token LOGGLY_SUBDOMAIN=your_loggly_subdomain
-
Start the server:
npm start
-
The server will run on
http://localhost:3000
.
-
POST /parse-form
: Parses an HTML form and returns the filled form data.Request Body:
{ "formHtml": "<form>...</form>" }
Response:
{ "filledFormData": { "first_name": "John", "last_name": "Doe", "email": "[email protected]", "phone_number": "123-456-7890" } }
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.