{"id":21125430,"url":"https://github.com/utkarshverma439/searchsynth","last_synced_at":"2026-05-20T15:15:08.518Z","repository":{"id":263091391,"uuid":"889322639","full_name":"utkarshverma439/SearchSynth","owner":"utkarshverma439","description":"SearchSynth fetches and summarizes web search results using SerpApi and Groq for insightful analysis.","archived":false,"fork":false,"pushed_at":"2024-11-16T05:00:17.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T05:28:21.407Z","etag":null,"topics":["api","google-sheets-api","llm-agent","streamlit","webscraping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utkarshverma439.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-16T04:29:28.000Z","updated_at":"2024-11-16T05:02:41.000Z","dependencies_parsed_at":"2024-11-16T05:25:36.660Z","dependency_job_id":"83a876fa-da4b-46a3-93c3-c5e2d6ae9cd9","html_url":"https://github.com/utkarshverma439/SearchSynth","commit_stats":null,"previous_names":["utkarshverma439/searchsynth"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarshverma439%2FSearchSynth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarshverma439%2FSearchSynth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarshverma439%2FSearchSynth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarshverma439%2FSearchSynth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utkarshverma439","download_url":"https://codeload.github.com/utkarshverma439/SearchSynth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243573163,"owners_count":20312879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","google-sheets-api","llm-agent","streamlit","webscraping"],"created_at":"2024-11-20T04:33:56.040Z","updated_at":"2026-05-20T15:15:08.462Z","avatar_url":"https://github.com/utkarshverma439.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SearchSynth\n\n**SearchSynth** is an advanced web search and summarization tool that fetches search results from **SerpApi**, processes them to extract key information, and then further summarizes the results using **Groq** API. This app allows users to upload a CSV or connect a Google Sheet, specify a search query, and get summarized search results in a downloadable CSV format.\n\n## Features\n- **CSV Upload**: Upload your CSV with search queries or connect directly to a Google Sheet.\n- **Web Search**: Uses **SerpApi** to fetch search results based on your queries.\n- **Summarization**: Processes the search results and summarizes them.\n- **Groq Integration**: Sends the summarized results to **Groq** API for further refinement.\n- **Download Results**: Allows you to download a CSV with the final summarized search results.\n\n---\n\n## Table of Contents\n\n1. [Technologies Used](#technologies-used)\n2. [Installation](#installation)\n3. [Setup and Configuration](#setup-and-configuration)\n4. [How to Use](#how-to-use)\n5. [API Keys](#api-keys)\n6. [Licensing](#licensing)\n7. [Contributing](#contributing)\n\n---\n\n## Technologies Used\n\n- **Python 3.x**: Core language for the project.\n- **Streamlit**: For building the web-based user interface.\n- **pandas**: For data manipulation and handling CSV/Google Sheets data.\n- **gspread**: To interact with Google Sheets API.\n- **aiohttp**: For asynchronous HTTP requests.\n- **SerpApi**: For fetching search results from Google search.\n- **Groq API**: For further summarizing and processing search results using an AI language model.\n\n---\n\n## Installation\n\n### Prerequisites\n\n- Python 3.x\n- An IDE or text editor (e.g., Visual Studio Code, PyCharm)\n- Internet connection to access APIs\n\n### Steps to Install\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/yourusername/SearchSynth.git\n   cd SearchSynth\n   ```\n\n2. Install the required dependencies using `pip`:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. Create a `credentials.json` file for Google Sheets authentication (more details below).\n   \n4. Set up your API keys for **SerpApi** and **Groq** (explained in the next section).\n\n---\n\n## Setup and Configuration\n\n### Google Sheets Setup\n\n1. Create a project on [Google Cloud Console](https://console.cloud.google.com/apis/credentials).\n2. Enable the **Google Sheets API** and the **Google Drive API**.\n3. Create a service account and download the `credentials.json` file.\n4. Share your Google Sheet with the email address provided in your `credentials.json`.\n\n### API Keys\n\nYou will need to get your API keys for **SerpApi** and **Groq**.\n\n#### 1. **SerpApi**\n- Sign up and generate your API key at [SerpApi](https://serpapi.com/).\n  \n#### 2. **Groq**\n- Create an account on [Groq](https://www.groq.com/) and get your API key.\n\n### Adding Your API Keys to Streamlit\n\n1. Create a `secrets.toml` file in the `.streamlit` directory (create the directory if it doesn't exist).\n\n2. Add your API keys in the `secrets.toml` like this:\n\n   ```toml\n   [api_keys]\n   serpapi_api_key = \"YOUR_SERPAPI_KEY\"\n   groq_api_key = \"YOUR_GROQ_API_KEY\"\n   ```\n\n---\n\n## How to Use\n\n### Step 1: Upload CSV or Connect Google Sheet\n\n- **Upload CSV**: You can upload a CSV file containing your search queries.\n  - The CSV should have one column with search query terms.\n  \n- **Connect Google Sheet**: You can connect to your Google Sheet by entering the sheet URL. Ensure the sheet has a column containing the search queries.\n\n### Step 2: Define Search Query Template\n\n- Enter the template for the query you want to search. For example: `\"What is the best programming language for AI?\"`.\n  \n### Step 3: Fetch and Summarize Results\n\n- Click **Fetch and Summarize Results** to retrieve search results for each query. The app will fetch data from **SerpApi** and display a summarized view.\n  \n### Step 4: Process with Groq and Download Result\n\n- After summarizing the results, click **Process with Groq and Download Result** to further refine the summaries using the **Groq** API.\n- The results will be saved in a downloadable CSV file with a column named **Search Results** containing the final summaries.\n\n---\n\n## API Keys\n\nTo use **SearchSynth**, you need API keys for **SerpApi** and **Groq**.\n\n### How to Get API Keys\n\n1. **SerpApi**: \n   - Go to [SerpApi](https://serpapi.com/manage-api-key), sign up, and get your free or paid API key.\n   \n2. **Groq**:\n   - Go to [Groq](https://console.groq.com/keys), sign up, and get your API key for AI processing.\n\nOnce you have the API keys, store them in the `secrets.toml` file as mentioned in the **Setup and Configuration** section.\n\n---\n\n## Licensing\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Contributing\n\nWe welcome contributions! If you'd like to improve the project, feel free to fork the repository, create a branch, and submit a pull request. Please follow these guidelines for contributions:\n\n1. **Bug Fixes**: Create a new branch for any bug fixes or improvements.\n2. **Documentation**: If you're adding new features or changing existing ones, please update the README file.\n3. **Testing**: Ensure all tests pass before submitting a pull request.\n4. **Code Style**: Follow PEP8 and write clean, understandable code.\n\n---\n\n## Acknowledgements\n\n- **SerpApi**: For providing a powerful API to fetch real-time Google search results.\n- **Groq**: For its AI-powered summarization capabilities that help improve the quality of search result summaries.\n\n---\n\n## Contact\n\nIf you have any questions or suggestions, feel free to open an issue or contact me directly via [GitHub Issues](https://github.com/utkarshverma439/SearchSynth/issues) or [LinkedIn](https://www.linkedin.com/in/utkarshverma439/).\n\n---\n\n### Links\n\n- [SerpApi Documentation](https://serpapi.com/search-api)\n- [Groq API Documentation](https://console.groq.com/docs/overview)\n\n---\n\n### Final Thoughts\n\nThank you for checking out **SearchSynth**! It's a tool built to make web search and summarization easy and efficient. We hope this project helps you streamline your search process and get actionable insights with minimal effort. Feel free to contribute, suggest improvements, and make it even better!\n\n---\n\n### Example of the structure:\n\n```plaintext\n- /app.py                      # Main app file with Streamlit interface\n- /requirements.txt            # Python dependencies\n- /.streamlit/secrets.toml     # API keys for SerpApi and Groq\n- /credentials.json            # Credentials for connecting to Google Sheets (e.g., for accessing Google Sheets Data).\n- /LICENSE                     # License file for the project\n- /README.md                   # This README file\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshverma439%2Fsearchsynth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futkarshverma439%2Fsearchsynth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshverma439%2Fsearchsynth/lists"}