Skip to content

AI-powered agent that scrapes Freelancer.com for new projects, stores them in Dataverse via Power Automate, and uses a Copilot Studio agent to deliver personalized project recommendations and summaries.

Notifications You must be signed in to change notification settings

Traccyyyyy/freelancer-opportunity-finder

Repository files navigation

# Freelancer Opportunity Finder

## Overview

**Freelancer Opportunity Finder** is an AI-powered job monitoring assistant that automates the discovery and analysis of new project listings on Freelancer.com. It combines web scraping, Microsoft Power Platform (Dataverse, Power Automate), and a GPT-driven Copilot Studio agent to deliver tailored project recommendations and actionable insights to users.

---

## Architecture

### Part A: Data Collection & Ingestion

1. **Automated Scraping (Puppeteer)**
   - Uses Puppeteer to scrape new project listings from Freelancer.com, focusing on keywords relevant to platforms, SaaS, web apps, eCommerce, and more.
   - Filters out projects with low budgets or hourly rates.
   - Avoids duplicates by tracking sent projects in `sent_projects.json`.

2. **Data Delivery to Dataverse**
   - New, relevant projects are sent via webhook to a Microsoft Power Automate flow.
   - Power Automate inserts these projects into a Dataverse table for structured storage and later querying.

---

### Part B: AI Copilot Agent & User Interaction

1. **User Intent Recognition**
   - The Copilot Studio agent receives user queries (e.g., "Show me new SEO projects under $500").
   - Uses a GPT-based prompt to extract keywords and budget from user input, including synonyms and variations (see `docs/example-user-intent-prompt.txt`).

2. **Automated Search & Filtering**
   - The agent triggers a Power Automate flow to search and filter the Dataverse table based on extracted keywords and budget.

3. **Result Delivery**
   - The agent returns a list of matched projects to the user.

4. **Project Detail Inquiry**
   - Users can request more details about a specific project from the results.

5. **AI-Powered Summary & CTA**
   - The agent uses GPT to summarize the selected project and suggest potential next steps (calls-to-action) for the user.

---

## Key Files & Directories

- `send.js`: Puppeteer script for scraping Freelancer.com and sending new projects to Power Automate.
- `sent_projects.json`: Tracks URLs of already-sent projects to avoid duplicates.
- `package.json`: Node.js dependencies (`puppeteer`, `axios`, `dotenv`).
- `docs/`
  - `copilot-agent-logic.txt`: Contains the logic for the Copilot Studio agent, including two main topics:
    - **Content Analyser**: Handles user intent and project search.
    - **Detail Summary**: Handles project detail summarization and CTA.
  - `example-user-intent-prompt.txt`: Example of the GPT prompt used to extract keywords and budget from user input.
  - `power-automate-overview.png`, `power-automate-details-1.png`, `power-automate-details-2.png`: Screenshots illustrating the Power Automate flow and integration (step-by-step export is not possible).
  - `dataverse-schema.png`: Screenshot of the Dataverse table schema/columns for reference.
  - `test-and-error-handling.txt`: Guide for end-to-end testing and handling common errors.

---

## Setup & Usage

### Prerequisites

- Node.js (v16+ recommended)
- Microsoft Power Platform (Dataverse, Power Automate)
- Access to Copilot Studio (for agent configuration)
- A `.env` file with your `WEBHOOK_URL` for Power Automate

### Installation

```bash
npm install
```

### Running the Scraper

```bash
node send.js
```

- The script will scrape new projects, filter them, and send them to your Power Automate webhook.
- Sent projects are tracked in `sent_projects.json`.

### Copilot Studio Agent

- The agent logic and prompt examples are in the `docs/` directory.
- Configure the agent in Copilot Studio using the provided logic and prompts.
- The agent interacts with users, triggers Power Automate flows, and summarizes project details using GPT.

---

## Documentation

- See `docs/copilot-agent-logic.txt` for agent dialog logic.
- See `docs/example-user-intent-prompt.txt` for the user intent extraction prompt and example.
- See `docs/test-and-error-handling.txt` for testing and troubleshooting guidance.
- Power Automate flow screenshots: `docs/power-automate-overview.png`, `docs/power-automate-details-1.png`, `docs/power-automate-details-2.png`.
- Dataverse schema screenshot: `docs/dataverse-schema.png`.

---

## Missing or Recommended Information

- **Power Automate Flow Details**: Step-by-step export is not possible, but screenshots are provided for reference.
- **Dataverse Table Schema**: See `docs/dataverse-schema.png` for the current schema/columns.
- **Copilot Studio Agent Setup**: For best results, add a guide or screenshots for importing/configuring the agent topics in Copilot Studio.
- **Environment Variables**: Document all required environment variables in a `.env.example` file.
- **License & Contribution Guidelines**: If open source, add a license and guidelines for contributions.

---

## Contact

Have a question? Open an issue or start a discussion!

About

AI-powered agent that scrapes Freelancer.com for new projects, stores them in Dataverse via Power Automate, and uses a Copilot Studio agent to deliver personalized project recommendations and summaries.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published